ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
##### 'use strict' use strict 是es5的一条指令。 - **严格模式下禁止使用with语句** - **所有变量都要提前声明**! - **调用的函数的this值是undefined**,**而非严格模式下this指向window** - **通过call和apply调用函数时,其中的this值就是传入的第一个参数。(在非严格下,null和undefined值被全局对象和转换为对象的非对象值所代替)** - **给只读属性赋值或者给不可扩展的对象增加新属性,都会抛出类型异常(在非严格下只是操作失败,不会报错)** - **传入eval的代码不能声明变量或函数** - **函数里的arguments对象拥有传入函数值的静态副本。在非严格下,arguments对象具有“魔术般”的行为,arguments里的数组元素和函数参数都是指向同一个值的引用。** - **当delete后跟随非法的标识符(比如变量、函数、函数参数)时,会抛出语法错误异常,在非严格下,delete啥也没做,并返回false** - **试图删除一个不可配置的属性将抛出一个类型异常错误(非严格下,delete啥也没做,并返回false)** - **一个对象中**,**定义相同的属性名会抛出语法异常错误** - **严格模式中不允许使用八进制整数直接量(以0为前缀,而不是0x为前缀)的** - **标识符eval和arguments当做关键词,他们的值是不能更改的,不能给这些标识符复制,更不能讲他们声明为变量、用作函数名、函数参数或者catch块的标识符** - **arguments.caller和arguments.callee都会抛出一个类型异常错误。严格模式的函数同样具有caller和arguments属性,当访问这两个属性时将抛出类型异常错误**