我正在使用Chrome的JavaScript控制台' (版本:35.0)我无法使用'使用严格的'如预期的那样。
对于以下代码段:
var obj={x:1,y:2}
//Define new property with 'writable' flag as false.
Object.defineProperty(obj, "z", {value:3, writable:false, enumerable:false, configurable:false})
// Try to change the property 'z',
"use strict"; obj["z"]=4
输出:4
根据我的理解,改变不可写的'属性将以非严格模式静默失败并抛出“TypeError”#39;在严格模式下,但我没有看到例外。
console.log(obj)
对象{x:1,y:2,z:3}
即使属性值没有改变,但我期待一个例外。 如果我做错了,请更正?
答案 0 :(得分:59)
使用严格模式的最简单方法是使用IIFE(立即调用函数表达式),如下所示:
(function()
{
'use strict';
var foo = 123;//works fine
bar = 345;//ReferenceError: bar is not defined
}());
要在控制台中创建换行符,请先使用 shift + enter ,或先在单独的编辑器中编写代码,然后将其复制粘贴到控制台。设置一个小提琴是好的和花花公子,但只需使用为其编写的标记测试您的代码(即:只需清除浏览器缓存和测试)。
但是,我还是建议您安装node.js。使用JSHint测试代码或验证代码(语法和编码风格)要容易得多。还有很多方法可以检查和运行node.js的代码,因此它是一个非常好的开发工具