javascript - 严格模式下是否定义了全局 var 关键字?

标签 javascript

草率模式(非严格模式):

<小时/>
function sloppyFunc() {
   sloppyVar = 123;
}
sloppyFunc(); // creates global variable `sloppyVar`
console.log(sloppyVar); // 123

严格模式:

<小时/>
function strictFunc(){
   'use strict';
   strictVar = 123;
}
strictFunc(); // ReferenceError: strictVar is not defined

有没有办法在功能 block 内以严格模式声明全局变量?

最佳答案

您可以向窗口读取和写入属性。

function strictFunc(){
   'use strict';
   window.strictVar = 123;
}
strictFunc(); 
console.log(strictVar); // 123

dystroy 提醒我这只能在浏览器中使用。为了提供完整的答案,以下是在 Node.js 中执行此操作的方法:

function strictFunc(){
   'use strict';
   GLOBAL.strictVar = 123;
}
strictFunc(); 

关于javascript - 严格模式下是否定义了全局 var 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24756780/

相关文章:

javascript - 如何将数组中的 json 插入 highcharts?

javascript - 其他浏览器窗口在 Meteor.logout() 之后不会返回用户登录页面

javascript - 当 minDate 和 maxDate 与 Eonasdan datetimepicker 在同一天时,无法选择日期和时间

javascript - Jquery 使用提交到选择列表添加带有输入值的选项

javascript - 在 React 中设置状态

javascript - 如何在 jQuery 中将秒转换为分钟,同时用当前时间更新元素?

javascript - 如何使这个轮播连续?

javascript - 无法理解 javaScript 函数的定义

php - 验证表单中的电话号码....真的卡住了

javascript - Web Worker 素数计算