严格模式(javascript)

368 阅读1分钟

JavaScript系列之 严格模式 篇

何为严格模式

JavaScript 严格模式(strict mode)即在严格的条件下运行

为什么使用严格模式

  • 消除代码运行的一些不安全之处,保证代码运行的安全
  • 提高编译器效率,增加运行速度
  • 为未来新版本的Javascript做好铺垫

严格模式使代码向更合理,更安全,更严谨方向发展

基本用法

1.为整个js代码开启严格模式

所有语句之前放一个特定语句 "use strict"; (或 'use strict';)

"use strict";
'use strict';

2.为function代码开启严格模式

在函数内部代码前放入"use strict";(或 'use strict';)

function strict() {
  "use strict"
  function nested() {
    return "And am I";
  }
  return "Hi I'm a strict mode function! " + nested();
}

重要注意点

1.不允许使用未声明的变量

x = 1; //不报错,默认为全局变量

strict ();
function strict() {
  "use strict";
  y = 2; //报错,y未定义
}

2.不能用delete删除变量、对象、函数

var obj = {a:1};
delete obj; //fasle

var b = 1;
delete b; //fasle

function fn(){
  return 1;
}
delete fn; //fasle

3.函数的参数名不能重复

function sum(a, a, c) { // !!! 语法错误
  "use strict";
  return a + a + c; // 代码运行到这里会出错
}

4.禁止this关键字指向全局对象

对于一个开启严格模式的函数,如果没有指定this的话它值是undefined

function f(){ 
    "use strict";
    console.log(this);//undefined
}