Strong Mode 介绍
In 未分类 on 2015年06月30日 by view: 2,835
7
If it is too strong, then you are too weak.

就算是背景吧

随着 ES2015 的到来,JavaScript 引进了许多新特性,很多很强大的特性完全可以弥补 JS 本身语法上的弱点,比如让很多初次尝试 JS 的程序员感到不习惯的变量提升问题、没有块级作用域问题等问题。

strong mode

ES5 增加了 strict mode,现在 V8 又实现了一种新的模式——strong mode

strong modestrict mode 的升级版,在语法要求上更严格了,同时正因为这些严格的要求,让开发者得以规避语言本身一些糟粕或者让人困惑的地方。

开启 strong mode

跟开启 strict 一样,js 文件第一行或者 function 第一行加上'use strong';
使用--strong_mode 标志位,需要 Chrome Cancry 或者 iojs v2.0 以及上。

!!! 注意了:如果 iojs 使用--use_strong 标志位,将开启全局 strong,不管代码里有没有'use strong;',一律当作 strong mode 运行,因此很有可能伤及 nodejs 本身的模块和第三方不支持 strong mode 的模块,同样的--use_strict 也是全局开启 strict 模式,都请慎用。

strong mode 有哪些改变

下面将涉及到一些 ES2015 的新特性,这里不做详细讲解,感兴趣的读者可以关注后续 ES2015 系列相关文章。

Deprecate sloppy equality

废弃了==和!=两个比较操作符,强制使用===和!==。

避免了一些意想不到的结果,大家都懂的。

node --strong_mode example.js

Deprecate 'var'

废弃了 var 关键字,变量声明使用 const 或者 let。

const 和 let 不存在变量提升的问题,也可以创造块级作用域。

node --strong_mode example.js

Deprecate 'delete'

废弃了 delete 操作符,需要 delete 的地方可以使用 set 或者 map 的 delete,可能数据结构需要改变。

node --strong_mode example.js