按书上说在js文件第一行中写入'use strict'和在node命令中启用--use_strict参数的效果是一样的,但我实际测试中却有差异。如下:
'use strict'
function demo(){
console.log(this.a);
}
const a = 1;
demo();
我执行这段代码,直接报错:TypeError: Cannot read property 'a' of undefined 符合预期
但我去掉第一行,执行node --use_strict test.js,正常输出undefined,这两种方式启用严格模式的方法明显有差异呀,我错过了什么?
node 命令行参数:
10.x LTS
12.x
都没有找到
--use_strict
。========================
node 背后使用的的引擎是 v8 ,所以可以将许多 v8 的选项传给 node ,再由 node 转给 v8。这些选项并非由 node 维护,node 也不能控制,所以在 node 的文档中是找不到的。
但是,node 提供了一个选线,
node --v8-options
来列出所有的 v8 选项。node 12.6.0 中,其中第一个就是:
但是对于这些 v8 选项,出了这里列出的说明之外,貌似很难找到官方的说明。
========================
另外有一片 stackoverflow 的回答大家可以看看:https://stackoverflow.com/a/5...