某些作业在javascript严格模式下无声地失败(Chrome)

时间:2016-02-25 01:08:14

标签: javascript google-chrome

MDN中的严格模式定义如下所示

  

在正常代码中默默失败的任何赋值(赋值给   不可写属性,赋予getter-only属性,   赋予不可扩展对象的新属性)将投入   严格模式

因此,在正常代码中静默失败的文档的赋值会在严格模式下抛出异常(如预期的那样)。

> var document = 1

// normal mode
> document
  #document

// strict mode
x Uncaught TypeError: Cannot assign to read only property 'document' of object [object Object]

但是在window的情况下,严格模式下没有错误。它只是默默地失败。

> var window = 1
> window
  Window {external: Object, chrome: Object, document: document…}

另一种情况是console可以重新分配而没有任何错误并保留分配。

> var console = 1
> console
  1

但是localStorage既没有保留任务也没有抛出异常。

> var localStorage = 1
> localStorage
  Storage {}

为什么选择窗户& localStorage即使在严格模式下也会默默地失败?其他人的行为是这样的?

(Chrome 48.0.2564.116)

0 个答案:

没有答案