美文网首页
JS中隐含全局变量与明确定义的全局变量的不同

JS中隐含全局变量与明确定义的全局变量的不同

作者: 贪恋冬天的幸福 | 来源:发表于2019-10-27 18:38 被阅读0次

JS中隐含全局变量与明确定义的全局变量有细微的不同,不同之处在于能否使用delete操作符撤销变量。

  • 使用var创建的全局变量(这类变量在函数外部创建)不能删除。
  • 不使用var创建的隐含全局变量(尽管它是在函数内部创建)可以删除。
    这表明隐含全局变量严格来讲不是真正的变量,而是全局对象的属性。属性可以通过delete操作符删除,但变量不可以。
// 定义三个全局变量
let global_var = 1;
global_novar = 2; 
(function(){
  global_fromfunc = 3;
}());

// 企图删除
delete global_var;
delete global_novar;
delete global_fromfunc;

// 测试删除情况
console.log(typeof global_var); //"number"类型
console.log(typeof global_novar); //"undefined"类型
console.log(typeof global_fromfunc); //"undefined"类型

参考资料:《JavaScript 模式》 Stoyan Stefanov 著 陈新 译

相关文章

  • JS中隐含全局变量与明确定义的全局变量的不同

    JS中隐含全局变量与明确定义的全局变量有细微的不同,不同之处在于能否使用delete操作符撤销变量。 使用var创...

  • 小程序全局变量

    在app.js里面定义全局变量 在要用到全局变量的某个js文件中

  • 微信小程序全局常量,全局js文件使用

    方法一:app.js 内设置全局变量(如屏宽,屏高的设置) 1、app.js文件 定义全局变量 设置全局变量 a...

  • js问题

    js中let和var定义变量的区别,主要体现在作用于的不同。 var定义的变量是全局变量或者函数变量。 let定义...

  • Cocos Creator 常用技巧总结

    1: 全局变量 如何定义和使用全局变 定义和使用方法与JS中是否相同。 创建这样一个Globals.js脚本,就可...

  • Objective-C添加类属性

    先回顾一下静态变量与全局变量的一些知识。 头文件中定义全局变量和静态变量的区别。 源文件中定义全局变量和静态变量的...

  • ios全局变量

    全局变量介绍与注意点 // 定义全局变量 BluetoothConnectionState _GlobalBlue...

  • 前端高频词汇(一)--闭包

    在JavaScript中变量分为两种:全局变量和局部变量;顾名思义,全局变量就是定义在全局作用域下面的变量,js中...

  • JS毒瘤

    1. 全局变量 JS中所有的糟糕特性中,最为糟糕的一个就是它对全局变量的依赖。许多编程语言都有全局变量,JS的问题...

  • 微信小程序之全局变量(globalData)的定义和调用

    一、在小程序文件app.js里面定义全局变量 二、在页面上使用或修改在页面中引入 改变全局变量值

网友评论

      本文标题:JS中隐含全局变量与明确定义的全局变量的不同

      本文链接:https://www.haomeiwen.com/subject/pelmvctx.html