-
for...in语句 一般用来遍历对象的属性查看全部
-
new Object() == new Object() // false [1,2] == [1,2] //false查看全部
-
不允许用with 所有变量必须声明, 赋值给为声明的变量报错,而不是隐式创建全局变量。 eval中的代码不能创建eval所在作用域下的变量、函数。而是为eval单独创建一个作用域,并在eval返回时丢弃。 函数中得特殊对象arguments是静态副本,而不像非严格模式那样,修改arguments或修改参数变量会相互影响。 删除configurable=false的属性时报错,而不是忽略 禁止八进制字面量,如010 (八进制的8) eval, arguments变为关键字,不可作为变量名、函数名等 一般函数调用时(不是对象的方法调用,也不使用apply/call/bind等修改this)this指向null,而不是全局对象。 若使用apply/call,当传入null或undefined时,this将指向null或undefined,而不是全局对象。 试图修改不可写属性(writable=false),在不可扩展的对象上添加属性时报TypeError,而不是忽略。 arguments.caller, arguments.callee被禁用查看全部
-
特殊运算符: 1、逗号运算符 a,b 例如 var s = (1,2,3),则s依次赋值,最后输出为3 2、delete运算符 delete obj.x 删除对象obj中的x属性 在IE9下,obj中必须configurable:true 才可以删除,否则无效 3、in运算符 判断obj是否有值或window里是否有变量,返回布尔值 例如 attr in json 或 'document' in window 4、instanceof 判断对象类型 {} instanceof Object // true 5、typeof 判断对象,返回对象类型 例如 typeof 100 === 'number' // true 6、void 一元的,判断所有值,返回均为undefined查看全部
-
模拟重载的情况查看全部
-
JS类型检测 typeof 会返回一个字符串,适合函数判断和基本类型的判断(特殊null返回的数据类型是“object”) instanceof判断对象类型,但是不同的window和iframe对象类型检测不能用 Object.prototype.toString.apply([]) === "[object.Array]"//在IE6,7,8下,对null和undefined检测失效查看全部
-
= = =严格等于,如果类型不同,会返回FALSE查看全部
-
闭包-封装查看全部
-
object.prototype.toString 说实话- -,这个没用过,所以涨知识了 Object.prototype.toString.apply([]) //"[Object Array]" Object .prototype.toString.apply(function(){}); //"[Object function]" Object .prototype.toString.apply(null); //"[Object null]' ... PS:ie6/7/8下存在兼容性问题,在检测null时会返回object 4)constructor构造器 每个对象都有个constructor属性,它指向该对象的构造函数类型,不过该属性的值可以被改写的,所以用它的判断并不可靠 5)duck type 百度了为啥叫“鸭子类型”,有这样的话:“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。” 大概意思就是说当某个对象具备某种类型的特征或者行为时就可以被判断为某种类型,不知道是不是“能力检测”那种意思- 适合基本类型及function检测,遇到null失效。 [[Class]] 通过{}.toString拿到,适合内置对象和基元类型,遇到null和undefined失效(IE678等返回[object Object])。 instanceof 适合自定义对象,也可以用来检测原生对象,在不同iframe和window间检测时失效。查看全部
-
1.类型检测 1)typeof(基本类型检测) 对所有基本类型的返回值 typeof Number //“Number” typeof String //"string" typeof Boolean //"boolean" typeof null //"object" typeof undefined //"undefined" typeof object //"object" 对函数类型的返回值 typeof function //"function" 2)由于typeof只适用于判断基本类型,对object,Date,Array进行检测时只会统一返回“object”(很显然这不是我们想要的,我们想知道它的具体类型),这时就要用到instanceof了,instanceof在检测对象时会返回具体类型,如: new array() instanceof Array //true new Date() instanceof Date //true ... 如果想用instanceof去检测基本类型只会统一返回false,另外由于instanceof是基于原型链的,所以有下列结果: //定义父类 function Parent(){} //定义子类 function Child(){} //让子类继承父类 Child.prototype = new Parent(); //此时再new一个子类实例,使用instanceof new Child() instanceof Child; //true new Child() instanceof Parent //true 通过原型链索引,new的是子类实例,子类继承父类,所以子类实例既是子类类型又属于父类类型 PS:instanceof在跨iframe或者window时由于存在多个window对象,所以在使用instanceof检测时会返回false查看全部
-
学习资料: 《JavaScript权威指南》 MDN:https://developer.mozilla.org/zh-CN/learn/javascript查看全部
-
对象之间的继承查看全部
-
函数定义方式对比查看全部
-
javascript没有块级作用域查看全部
-
val = +val; 一元操作符的使用,让传入的值转换成相应的数字,如果原来就是数字或者转换成功,则后续操作就用数字进行,如果转换失败,将返回NaN...查看全部
举报
0/150
提交
取消