-
数据类型查看全部
-
如何使用严格模式查看全部
-
严格等于: 类型,数值 null===null,undefined===undefined,NaN不==NaN, null==undefined相等,number==string相等(string转number),boolean==?转number,object==numberstring尝试对象转换为基本类型查看全部
-
小结:查看全部
-
类型检测的五种方式:typeOf instanceOf Object.prototype.toString constructor duck type查看全部
-
js中<br> “37”+7 //377<br> “37”-7 //30<br> 所以可以利js这一特性改变变量的类型<br> num+""<br> num-0查看全部
-
1. obj.toString()(如果是基本类型调用toString方法则返回值的字符串)对象调用toString()方法一般返回[object object]. toString()可以自己定义。 2. obj.valueOf()(如果是基本类型调用valueOf方法,会转化为数值),可以被自定义。 3. 在一个对象通过 +obj或者"string"+obj转成数值或字符串时,对象都是先尝试用valueOf先转化成基本类型,然后用toString转换成字符串。如果这两个方法都无效,或返回object,则报错。如果这两个方法都能返回相应的值,valueOf先执行,其结果会改变toString。查看全部
-
在属性中添加toJSON方法,来规定序列化的实现方法。查看全部
-
序列化方法: 1. 对象转字符串: JSON.stringify(obj) 注意: 对象中如果有属性值为undefine,该属性在被序列化时会被删除。属性值为NaN,infinity,在序列化时会写成null,属性值为Date,序列化时会写成UTC格式。 2. 字符串转对象: JSON.parse(str) 注意: 序列化中对象的属性名称,一定要用双引号括起来。查看全部
-
[[proto]],[class], extensible是对象的标签 1. 对象的extensible标签,控制对象是否可以扩展新属性,Object.preventExtensions(obj)可以将extensible标签置为false。不会改变对象的原有属性,但不能添加新属性。 2. Object.seal(obj),封印对象的属性,不仅不能新增属性,对象原有属性的configurable标签都被置为false 3. Object.freeze(obj),冻结对象,不仅不能增加新属性,对象原有属性所有标签都为false 4. 修改对象的extensible标签,只会影响当前对象本身,不会影响对象的原型链查看全部
-
Object.prototype.toString可以显示出对象的class,它将参数都转换为对象后处理。 所以Object.prototype.toString(1)和Object.protptype.toString(new Number(1))的返回值相同(都是number),而typeof new Number(1)则返回object,因为Number(1)确实是一个对象。查看全部
-
原型链查看全部
-
configurable为true, writeable为false,要修改属性的值,可以通过修改value标签(因为configurable为true)实现,也可以通过修改writable为true,进而对属性直接赋值。 configurable为false,writable为true时,只能通过直接复制修改属性值,不能编辑value属性,不能修改get set方法 configurable为false时,所有标签都不能被修改,除了将writable从true改为false查看全部
-
defineProperties的参数中,还可以设置属性的get set方法: Object.defineProperties(obj,{property1:{get:function(){}, set: function(value){}}})查看全部
-
Object.defineProperties(obj,{property1:{value:'abc', enumerable: true}, property2:{...},property3:{...}}) defineProperties可以接受json型的对象作为参数。除了显式注明的标签(obj.property1.enumerable),其他标签默认值都是false。查看全部
举报
0/150
提交
取消