JS严格模式下常见问题

2018-08-22  本文已影响0人  砺剑锋成

开启严格模式(”use strict”):

  1. SyntaxError: Duplicate data property in object literal not allowed in strict mode.
原因:
在对象中声明相同的属性名

例如:
var obj ={ 
‘name’: 1, 
‘name’: 2 
};
  1. SyntaxError: Strict mode function may not have duplicate parameter names .
原因:
在函数声明中相同的参数名

例如:
function fix(a,b,a) {     
     return a+b;     
 }
  1. SyntaxError: Octal literals are not allowed in strict mode.
原因:
不能用前导0声明8进制直接量

例如:
 var a = 012;
  1. SyntaxError: Assignment to eval or arguments is not allowed in strict mode
原因:
不能重新声明、删除或重写eval和arguments这两个标示符

例如:
var eval = ……;
  1. SyntaxError: Delete of an unqualified identifier in strict mode.
原因:
用delete删除显示声明的标识符、名称和具名函数

例如:
function temp() { 
 ‘use strict’; 
 var test = 1; 
 delete test; 
}
  1. SyntaxError: Unexpected strict mode reserved word
原因:代码中使用扩展的保留字,例如 interface,let,yield,package,private等

7.SyntaxError: Strict mode code may not include a with statement

原因:严格模式下是禁止使用with的
上一篇下一篇

猜你喜欢

热点阅读