变量应用前必须申明:
不能间接对变量操作 delete:
静默失败转为异样
常见的静默失败:
- 给对象不可写属性赋值
- 给对象只读属性赋值
- 给不可扩大对象的新属性赋值
- 删除对象中不可删除的属性
函数 - 参数是惟一
函数 - 实参和形参的映射关系不存在
形参有默认值时,默认开启严格模式,即实参和形参的映射关系不存在:
a 外面的值是实参,arguments 是形参
不容许应用 eval()、with()
eval():将字符串解析为 js 语句
为什么不让用了,因为大弱小了,会引起一些安全漏洞
with():扭转函数执行时的上下文
eval、arguments 不能作为标识符
函数的默认 this 指向变为 undefined
不容许呈现八进制数
0b 结尾是二进制,0 结尾是八进制,0x 结尾是十六进制
因为 0 结尾会有歧义,有可能是补位
不能应用 caller 和 arguments.callee
callee 应用场景:匿名函数中须要调用自身、递归等性能:
代替计划:给匿名函数命名