-
typeof类型
查看全部 -
‘z’in obj; // true z是原型上的
obj.hasOwnProperty('z') // false z 不是obj对象上的
查看全部 -
类型检测小结
查看全部 -
a为基本类型,当访问.length(尝试以对象的方式使用)方法时,浏览器会智能转换为包装对象,当访问完成后(或者a.t = 3)立即销毁,即a.t为undefined。
查看全部 -
typeof 遇到null失效,是历史遗留问题,instanceof在不同window和iframe间可能失效
查看全部 -
javascript中的类型检测
typeof,instaceof,Object.prototype.toString,constructor,duck type查看全部 -
巧用"+/-"来转换类型,数字的字符串+数字→字符串,数字字符串-数字→数字
查看全部 -
32+ 32 → 64
"32"+ 32 →"3232"
"32"-32 → 0
查看全部 -
extensible标签
决定对象是否可以扩展,对象上的属性是否可以添加
Object.isExtensible()默认为true
Object.preventExtensions(obj);//将对象设置为不可以扩展
Object.seal()
方法封闭一个对象,阻止添加新属性并将所有现有属性标记为不可配置。当前属性的值只要原来是可写的就可以改变。Object.isSealed(obj);//true/false判断是否被seal
Object.freeze(obj); 冻结对象:不可写,不可改,不可添加属性,不可删除属性
Obgect.isFFrozen(obj);//判断是否被冻结 true/false
以上方法不会影响原型链
查看全部 -
class标签类型
确定方式:Object.prototype.toString.call();
call()接受传入的任何数据
slice(8,-1)是截取字符,从第8个到最后一个全部删除
查看全部 -
判断数据类型
查看全部 -
属性标签 图标
查看全部 -
get/set与原型链
赋值、查询的时候会从原型链上赋值查找
赋值:obj是没有z属性的,往上查找,到foo函数的时候,有z的属性和foo函数对应的get/set方法,不会在obj对象上添加新的属性。
configurable//能否使用delete、能否需改属性特性、或能否修改访问器属性、,false为不可重新定义,默认值为true.
查看全部 -
如果指向处理某个对象上的属性,不想(key in obj遍历原型链上的属性,只需要加一个if判断if(obj.hasOwnProperty(key)){}
查看全部 -
继前例子
是否枚举的方法
Object.defineProperty方法(对象,属性名字, 对象标签);//此方法默认的属性是false,不可枚举
对象标签:{enumerable:false,value:1000} //加粗为false则不可枚举
查看全部
举报