-
对象的属性
writable 不可写(修改属性值)
configurable: false 不可以被删除
enumerable: false 不可枚举(查找对象的key的时候查不到)
查看全部 -
如果通过get/set方法设置和访问对象属性的时候,当通过obj.x方式添加属性的时候会先检查原型链上是否有get/set方法,如果有的话不会在对象上新创建一个属性,所以值设置不成功。
解决方法就是通过defineProperty设置属性
查看全部 -
get/set方法例子
查看全部 -
使用Object.defineProperty() 创建对象属性的话,默认enumerable等属性都为false,但是通过obj.x 的方式设置的话默认都为true
Object.defineProperty(cat, 'price', {enumerable: false, value: 1000})
表示在对象cat上增了一个值为1000的属性price,默认enumerable就是false,所以可以不用写
查看全部 -
Object.create创建对象传入一个参数
var obj = Object.create({x: 1}) 让obj这个对象的原型指向这个参数对象
参数对象的原型指向Object.prototype,所以可以拿到obj.toString
查看全部 -
访问时会不断往原型链上查找属性值,但是修改的时候不会修改原型链上的值,如果在对象中直接找不到则会自动创建一个属性值在对象上,如下图
查看全部 -
对象的原型链结构如下图,
'z' in obj 返回了true,表示z是属于这个对象的属性,但是它不是直接这个对象上的,而是obj原型链上的属性,所以使用obj.hasOwnProperty('z') 返回了false
查看全部 -
严格模式总结
查看全部 -
严格模式下修改arguments不会影响形参(对象除外,参数是对象的话还是会影响),非严格模式下传入的参数不为空时会受到arguments的影响
查看全部 -
原始数据类型有 number string null undefind 布尔
引用数据类型(对象) object 又包含 function array Date
ES6新增类型 Symbol查看全部 -
try...catch...finally
try后面必须至少跟一个catch语句或者finally语句,即可能存在三种格式
try {...} catch(e) {...} 捕获到异常执行catch语句
try {...} finally {...} 不管中间有无异常都要执行finally
try {...} catch(e) {...} finally{...} 两者结合
如下图嵌套语句执行顺序,首先内部try抛出异常,catch语句捕获异常,同时又抛出了一个异常,然后执行内部finally语句,外层catch捕获内层异常
查看全部 -
很认真的看完了一节查看全部
-
隐式转换
“37”-7 //30,-号表示数值加减,结果数值
“37”+7 //377,+号表示字符串拼接,结果字符串
巧用+/-规则转换类型 num-0 num+''
严格等于===
类型不同返回false
NaN!=NaN NaN与任何类型都不相等,包括它本身
对象通过引用去比较
查看全部 -
继承的方式
查看全部 -
VO填充顺序
查看全部
举报