我正在尝试编写 AngularJS 和 JavaScript 函数,但我对关键字 'use strict'
有疑问。假设代码类似于下面的内容,保存在 script 标记内的 html 文件中。现在记住我们正在使用 'use strict'
关键词。和window.x
没有在 html 中的任何地方定义。当我在 Google Chrome 上加载 HTML 文件时,为什么它不提示 window.x
?不是没有定义吗?它输出为 window.x: undefined
。那么,任何 undefined variable 不应该被 AngularJS 检测到,并在 Google Chrome 控制台或其他东西中作为错误显示出来吗?为什么 Chrome 不提示 undefined variable ?
(
function() {
'use strict';
var x = "hello";
console.log("window.x:", window.x); //undefined
console.log("x:", x); //hello
angular.module('myFirstApp', [])
.controller('MyFirstController', function() {
});
})();
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
最佳答案
'use strict'
不检查属性是否存在/访问( window.x
试图在 x
上查找属性 window
) - 这会太昂贵。相反,它确保变量被声明。
关于javascript - angularjs 和 window.x 中的“use strict”未定义,但仍然运行文件而没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51215990/