如何在Chrome“JavaScript控制台”中使用“严格”模式
我在Chrome的“JavaScript控制台”(版本:35.0)上练习JavaScript,我无法按预期使用'use strict'子句。
对于以下代码片段:
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”,但是我没有看到exception。
console.log(obj)
对象{x:1,y:2,z:3}
即使属性值没有改变,但我期待着一个例外。 如果我做错了,请纠正
使用严格模式最简单的方法是使用一个IIFE(即时调用函数expression式),如下所示:
(function() { 'use strict'; var foo = 123;//works fine bar = 345;//ReferenceError: bar is not defined }());
要在控制台中创build一个新行,请使用shift + enter ,或者先在独立编辑器中编写代码,然后将其复制粘贴到控制台。 设置一个小提琴是一切都很好,但只是testing你的代码与它写的标记(即:只是清除浏览器caching和testing)。
不过,我还是敦促你安装node.js。 使用JSHinttesting代码或validation代码(语法和编码风格明智)要容易得多。 还有很多方法可以检查和使用node.js的代码,所以它是一个非常好的开发工具
- 清除谷歌浏览器中的JavaScript控制台
- jQuery的event.preventDefault()不工作在Firefox(包括JSFiddle)
- 如何检测Youtube上的页面导航并在页面呈现之前修改HTML?
- 在Chrome中inputtypes=“数字”时忽略maxlength
- 你如何检查铬检查员?
- Chrome中不再允许使用selectionStart / selectionEndinputtypes=“数字”
- 如何在Visual Studio中debugging时强制Chrome浏览器重新加载.css文件?
- 在Chrome中停用相同的原产地策略
- 如何在Chrome开发者工具或Firefox的Firebug中validationXPathexpression式?