严格模式(ES5新增语法)

严格模式(ES5新增语法)

由于js的作用域和隐式声明变量等语法会造成很多预想不到的错误,所以ES5中新增了一个严格模式的语法,用于严格规范代码的书写。

使用语法:

"use strict";

使用说明:

1、要放在代码的最前面,也就是在script标签中的第一行或者某个函数中的第一行,否则会失效

2、严格模式可以规范当前script标签或者当前函数中的代码,不能规范别的script标签中的代码和别的函数

规范的语法:

1、不允许隐式声明变量(不允许省略var定义变量)

//严格模式
// 'use strict'
// a=10
// console.log(a)
//输出:a is not defined
//输出翻译:a没有定义
//普通模式
// a=10
// console.log(a)
//输出:10

2、 禁止函数中的形参重名

// 严格模式// 严格模式
// 'use strict'
// function fn(a,a){
//     console.log(a);
// }
// fn(1,2)
//输出:Duplicate parameter name not allowed in this context
//输出翻译:此上下文中不允许重复参数名
//普通模式
// function fn(a,a){
//     console.log(a);
// }
// fn(1,2)
//输出:2

3、 禁止函数中的this代表window(普通函数中的this本身是代表window的)

/ 严格模式
// 'use strict'
// function fn(){
//     console.log(this);
// }
// fn()
//输出:undefined
// 普通模式
// function fn(){
//     console.log(this);
// }
// fn()
//输出:window

为什么要使用严格模式?

1、 可以让代码更加规范

2、 可以让代码运行起来更快,提高运行效率

注意:当合并文件时,第一行的严格模式代码回失效,建议包在一个自执行函数中

上一篇:ES5中的变量提升


下一篇:ES5和ES6的区别以及ES6常用特性