自学js第十天:JS对象和this和执行上下文( 二 )


二.JS的字面量
字面量()是用于表达源代码中一个固定值的表示法().
? 几乎所有计算机编程语言都具有对基本值的字面量表示, 诸如: 整数, 浮点数以及字符串; 而有很多也对布尔类型和字符类型的值也支持字面量表示; 还有一些甚至对枚举类型的元素以及像数组, 记录和对象等复合类型的值也支持字面量表示法.
字面量(),在高级语言中 我们可以通过更直观更高效的方式直接赋予变量 具体 值 , 当需要使用值得时候 才会去根据值得类型和内容进行包装解析; 先存储 后解释。
中字面量包括
1. 整数类型字面量( )
var num1 = 123; var num2 = 1.1;
2. 字符串字面量( )
var str = '张晓华'; //张晓华 就是字符串文字字面量var str = '123'; //张晓华 就是字符串数字字面量
3.引用类型数组字面量(array )
var arr = [1,2,3,4,5]; //[1,2,3,4,5] 就是数组字面量
4.引用类型对象字面量是一个花括号( ) 通过var obj = { }
var obj = {name:'橘子',age: 1,favorite: '小鱼干'}/*{name:'橘子',age: 1,favorite: '小鱼干'}就是对象字面量*/
5.函数字面量( ) ,(即匿名函数表达式)
var fn = function(){alert('你好');}/*function(){alert('你好');}就是函数var fn 的字面量*/
三.中的对象分类.中的对象分为3种: 1.内置对象、 2.浏览器对象(DOM 和 BOM)、 3.自定义对象.
是基于对象的语言, 不可以自己创建一个原生对象,只能访问内置对象属性和调用已有的内置对象方法 。但是可以通过基于创建狭义概念上的对象 。
//JS的内置对象类,对象类内有各种各样的方法.Number //数字Boolean // 布尔String //字符串Object //对象,老祖宗类Function //函数引用类型Array//数组Date //时间Math //数学Null //空 RegExp //正则表达式的对象
四.对象创建方式(字面量对象 和 new实例化对象) (js对象都是通过key : value冒号+键值对赋值的)创建对象有三种基础方式: 1.对象字面量: 2.原生单个对象实例化: ( 升级:工厂模式对象) 3.自定义构造函数:
var myCat = {name: '橘子',//特征color: 'orange',//特征age: 1,//特征favorite: '小鱼干',//特征speak: function (){//行为console.log('喵~~喵~喵~~~');}}console.log(myCat);//PS:很神奇 ,只要引用修改并且赋值了,哪怕是未定义的属性或行为都算是创建为对象的属性.myCat.sex = true; //引用.创建属性值myCat.age = 3; //引用.修改属性值myCat.speak(); //引用.调用行为方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img--86)(C:\Users\tuyue\\Local\Temp\23.png)]
//格式:var 变量 = new Object内置对象()var myCat = new Object();myCat.name = '橘子';//和java一模一样的访问(引用.的方式)myCat.color = 'orange';myCat.age = 1;myCat.favorite = '小鱼干';myCat.speak = function(){console.log('喵~~喵~喵~~~');}
//案例1:关于createCa函数类的封装function createCat(name,age,color){var cat = new Object();cat.name = name;cat.color = color;cat.age = age;cat.favorite = '小鱼干';cat.speak = function(){console.log('喵~~喵~喵~~~');}return cat;//切结写完要return 返回引用 ,返回cat引用变量,即返回new Object();}var myCat = createCat('橘子',1,'orange'); //通过形参和实参对应来赋值var myCat1 = createCat('小黑',1,'black');var myCat2 = createCat('小黑',1,'black');//案例2; 关于 createstudent函数类的封装function createStudent(name, age, sex) {var obj = new Object(); //new 构造函数();obj.name = name;obj.age = age;obj.sex = sex;obj.speak = function () {console.log('我要学习,学习使我快乐,学习让我成长!');}return obj;}var stu1 = createStudent('小明', 99, 0,);stu1.age =10; //修改var stu2 = createStudent('小里', 99, 0,);var stu3 = createStudent('小王', 99, 0,);console.log(typeof stu1); //object ,类型还是obj,无法通过typeof判断具体对象,全部都是object类型console.log(stu3 instanceofObject); //true,只能通过instanceof亲子鉴定布尔,来判断对象.