-
包装对象 1.就是将基本类型包装起来的对象 比如var str = "string";是一个string类型 var strObj = new String("string");就是一个包装对象 2.截图中有个例子 如果尝试以对象的方式使用基本类型时,JavaScript会自动将基本类型转化成一个临时的包装对象,比如图中的a.t = 3是合法的。 但是注意使用完之后临时包装对象会被销毁。再使用a.t是undefined查看全部
-
隐式转换 1.+和-会有各自的用法 比如数字之间可以使用+-,变成一个数字 但是字符串+数字就是一个字符串拼接,比如'37'+37='3737' 字符串-数字就是数字之间的减法,比如37-'10'=27 2.===是严格相等 首先必须是类型相同,比如数字和数字,string和string 但是new object === new object不为true,因为他们即使内容相同,指针不是同一个,所以是false 还有NaN === NaN(false),因为NaN不等于任何类型,连它自己也不相等 3.==类型不同,尝试转换的规则 null==undefined相等 number==string,转number,比如1=="1.0"(true) boolean==number,转number,比如1==true(true) object==number|string,转基本类型,比如new String('hi') =='hi'(true)查看全部
-
注意:不同的window或iframe间的对象类型检测不能使用instanceof,因为是不同的构造器。 instanceof原理: 判断右边的构造器的prototype属性是否出现在它左边对象的原型链上查看全部
-
JavaScript的数据类型 共有6种数据类型,其中5个是基本类型: number string boolean null undefined 还有一个是对象object,object包含了很多的类型 function Array Date等等查看全部
-
in:寻找至Object.prototype hasOwnProperty('z'):只在实例中寻找是否包含z属性查看全部
-
注意的细节: 修改Student对象的原型prototype上的属性,会影响到之前创建的实例; 如果整个修改Student.prototype,则不会影响之前创建的实例,只会影响到以后创建的实例。查看全部
-
extensible是否可以扩展查看全部
-
//bind(null)的函数是没有原型的 function abc(){} abc.prototype Object { … } var binded = abc.bind(null); typeof binded "function" binded.prototype undefined //是没有原型的查看全部
-
var obj = Object.create(null); //是没有Object.prototype的查看全部
-
严格模式:查看全部
-
with语句已不建议继续使用查看全部
-
c?a:b c sure then select a c false then select b查看全部
-
继承的实现方式: //Student的原型指向Persion的原型 Student.prototype = Object.create(Persion.prototype); //重置一下Student的原型结构中的constructor。如不重置,会默认指向Persion Student.prototype.constructor = Student;查看全部
-
对象.prototype的结构查看全部
-
对象属性的命名规则: 1.通过[]操作符为对象添加属性时,属性名称可以是任何字符串(包括只包含空格的字符串和空字符串); 2.通过.操作符为对象添加属性时,属性名称必须是合法的标识符名称; 3.如果属性名包含非法的标识符字符,则只能采用obj[“propertyName”]的形式; 4.如果属性名是合法的标识符,读取时即可以采用obj.propertyName,也可以采用obj[“propertyName”]的形式; 采用obj[propertyName]的形式读取或创建对象属性时,解释器首先会检查propertyName是值类型字面量还是用户定义的变量,如果propertyName是值类型的字面量,则解释器自动将其转换为字符串后再读取或创建属性,如obj[1],obj[true]会被转换成obj["1"]、obj["true"].如果propertyName是变量名称(或者是表达式),则解释器会读取变量内容(或对表达式求值) 对象作为key时,先会被隐式转换为字符串,其值为[object Object]。所以obj[{}]其实是obj.[object Object],然后{x:1}也是对象,转换后key值一样是[object Object],其实导致了重写查看全部
举报
0/150
提交
取消