JavaScript中的严格模式

慕课网《JavaScript深入浅出》课程笔记

严格模式
修复JavaScript上部分不足,提供更强错误检查能力,语法更加严谨
function func(){
‘use strict’;
} //函数内设置严格模式

‘use strict’;
function func(){
} //整体使用严格模式

严格模式下的新变化
1。不允许使用with
使用with方法后会报syntaxerror的错误

2。不允许未声明的变量赋值

3。arguments变为参数的静态副本

!function(a){
  arguments[0] = 100;
  console.log(a);
 }(1);
 //100
 这里要注意,假如不传参数,那么结果就是undefined

!function(a){
  'use strict';
  arguments[0] = 100;
  console.log(a);
 }(1);
 //1
arguments变为参数的静态副本,不会对原来的arguments产生影响

!function(a){
  'use strict';
  arguments[0].x = 100;
  console.log(a.x);
 }({x:1});
 //100

4。delete参数、函数名以及不可配置的属性会报错

5。对象字面量重复属性名报错

!function(){
  'use strict';
  var obj = {x:1,x:2};
  }();

6。禁止八进制字面量

!function(){
  'use strict';
  console.log(0123);
  }();

7。eval、arguments变为关键字,不能作为变量、函数名

8。eval独立作用域

!function(){
  'use strict';
  eval('var evalVal = 2;');
  console.log(typeof evalVal);
  }();
//undefined

JavaScript中的严格模式_第1张图片

你可能感兴趣的:(javascript)