-
Object.keys只保存enumerable属性为True的属性值查看全部
-
可以使用var my = cat && cat.a && cat.a.b来赋值,避免了属性不存在报错的情况 if(a != undefined)其实包含了a不等于undefined和a不为等于null两种情况查看全部
-
创建对象的方法: 1.字面量—— var obj = {x:1,y:2} 2.new构造器/原型链 'z' in obj判断obj对象中是否有属性z; obj.hasOwnProperty('z')判断z是否为obj对象的属性。 delete property 只能删除对象本身上的属性,不能删除原型链上的属性。 3.Object.create(对象) var obj = Object.create(对象参数) => obj.property 指向 '对象参数' '对象参数'.property指向Object(前提是'对象参数'不是null)查看全部
-
对象:对象中包含一系列的属性,这些属性是无序的,每个属性都有一个字符串key和对应的value; var obj ={ x:1,y:2}; obj.x;//1 obj.y;//2 对象的结构: 对象中的每个属性都有很多属性标签:是否可写的writable,是否可删除的enumerable,是否可枚举的configurable,value,get/set。。。 每一个对象都有一个原型[prototype] 每一个对象有一个[class],表示属于哪一个种类 每一个对象有一个[extensible],表示对象是否允许继续增加属性查看全部
-
严格模式:'use strict'; 1、不允许用with语句 2、不允许未声明的变量被赋值 3、arguments变为参数的静态副本 4、delete参数、函数名报错 5、 delete不可配置的属性报错 6、对象字面量重复属性名报错 7、禁止八进制的字面量 8、eval、arguments变为关键字,不可作为变量或函数名 9、eval独立作用域查看全部
-
函数声明被前置,可以提前调用,函数表达式不可以 注意: 1.顺序不确定,for - in 中遍历的属性并非一定按定义时的顺序,受引擎的影响 2.enumerable 为 false 时的属性将不会出现 3.for - in 对象属性时受原型链影响,若obj 的原型链上有z属性,在遍历时z 也会出现查看全部
-
try{ throw"test"; }catch(ex){ consloe.log(ex); }finally{ console.log("fianlly"); }查看全部
-
function(){ var a=b=1; } foo(); console.log(typeof a)//undefined console.log(typeof a)//number 用连等于使得b成为了全局变量查看全部
-
特殊运算符的种类: 1、条件运算符 c?a:b c为true 则取a,否则取b 2、逗号运算符 a,b 例如 var s = (1,2,3),则s依次赋值,最后输出为3 3、delete运算符 delete obj.x 删除对象obj中的x属性 在IE9下,obj中必须configurable:true 才可以删除,否则无效 4、in运算符 判断obj是否有值或window里是否有变量,返回布尔值 例如 attr in json 或 'document' in window 5、instanceof 判断对象类型 {} instanceof Object // true(返回布尔值) 6、new运算符 创建一个新对象 new obj / new array ... 7、this对象 全局用指向window,函数内指向函数本身,浮动指针 8、typeof 判断对象,返回对象类型 例如 typeof 100 === 'number' // true(判断对应类型字符串) 9、void 一元的,判断所有值,返回均为undefined 一般delete 运算符可以删除对象的属性,而如果使用方法Object.defineProperty(对象,'属性',{configurable:false})处理了对象,该属性就不会被删除,反之ture就是可以被删除。查看全部
-
1. 原始表达式 //常量、直接量、关键字、变量 3.14、"test"、null、i、k、j 2. 初始化表达式 //[1,2]、{x:1, y:2} 3. 函数表达式 //var fe = function(){}、(function(){})() 4. 属性访问表达式 //var o = {x:1}、o.x、o['x'] 5. 调用表达式 //func() 6. 对象创建表达式 //new Func(1,2)、new Object查看全部
-
等于的 逻辑查看全部
-
1.typeof :适合基本类型 和函数对象的检测,遇到null失效 2.instanceof基于原型链检测,适合自定义对象,也可以用来检测原生对象 在不同iframe和window间检测时失效。 3.Object.prototype.toString适合内置对象和基元对象 Object.prototype.toString.apply([]) //"[Object Array]" Object .prototype.toString.apply(function(){}); //"[Object function]" Object .prototype.toString.apply(null); //"[Object null]' Object .prototype.toString.apply(undefined); //"[Object object]" PS:ie6/7/8下存在兼容性问题,在检测null时会返回object 4.constructor构造器 每个对象都有个constructor属性,它指向该对象的构造函数类型,不过该属性的值可以被改写的,所以用它的判断并不可靠查看全部
-
包装对象: string boolean number var str="string"; var strObj=new String(); str是string(基本类型),本身是没有方法的。 当尝试把基本类型的str当做对象一样访问时,例如:str.length; 解释器会创建一个临时的包装对象,伪代码: [[tempObj]] = new String(str); [[tempObj]].length; // 返回具体的length; delete [[tempObj]]; // 销毁临时对象 重复访问str.length会重复创建这个临时对象。 所以str.t赋值可以成功,但再次访问str.t返回undefined,因为每次创建的临时包装对象都是不同的 clear()查看全部
-
js中对象的比较是通过引用来比较查看全部
-
六种数据类型:5种基本类型(数字,字符串,布尔值,null,undefined),1中对象类型Object(Function、Array...)查看全部
举报
0/150
提交
取消