严格模式-

严格模式

在脚本中书写 "use strict"; 下方的所有代码都会开启严格模式!
为对象替换原型: Object.setPrototypeOf(对象, 原型对象)
只会为当前对象替换原型, 不会影响其他 同构造函数 构造的对象
为构造函数替换原型:构造函数.prototype = 新原型对象
for..in.. : 会遍历 原型链中 所有的属性 -- 不含不可遍历的属性
Object.keys : 只读取对象自身的属性, 不读原型
利用此方法来判断空对象: Object.keys(对象).length==0
严格模式: 开启之后可以让系统帮你规避很多错误, 以后所有的	框架 默认都会开严格模式!
防止意外的全局变量声明: 变量名 = 值; 被禁止使用, 必须用 var let const声明
同 为了方式全局变量声明: 全局中的函数, 其中的this指向undefined 而不是 window
构造函数应该是new 调用的, 一旦忘记写new了, 则不会向window注入属性
静默失败 改为 不静默!
很多失败, 例如修改只读属性的值, 之前不报错. 严格模式下会报错!
callee: 是 arguments的一个属性, 保存了当前执行的函数
用途: 匿名函数做递归时, 函数内部代表当前函数 -- 性能低下
替代方式; 用命名函数来实现递归函数即可!
精确配置属性:
每个属性都可以有 6 个配置项
value: 默认值
configurable: 是否可以重新配置
	enumerable: 是否可以遍历
writable: 是否可写
get: getter, 读取属性时触发 对象.属性名

作用: 计算属性

set: setter, 为属性赋值时触发 对象.属性名 = 值
作用: 赋值检测 -- 如果属性带有一些要求: 年龄(1-100) 手机号	(格式..)
直接声明属性: {属性名: 值} 其配置项默认都是true, 可写,可改,可遍历
用Object.defineProperty(对象, 属性名, 配置项) : 新增属性所有配置默认是false, 不可写, 不可改, 不可遍历
get 和 set 属性 与 write 和 enumerable : 互斥, 不能同时存在
同时配置多个属性: Object.defineProperties(对象, {多个属性...})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值