JavaScript-显示全局变量和隐式全局变量的区别

吴纲
• 阅读 5292

一、JS全局变量

1.1 显示全局变量

变量已经声明后再赋值,也就是变量有使用 var 声明。

1.2 隐式全局变量

变量未经声明就赋值,也就是变量没有使用 var 声明。

1.3 示例

JavaScript-显示全局变量和隐式全局变量的区别

(1)在 JavaScript 中全局变量其实是global对象(window)的属性,因此两种方式声明的全局变量都可以通过 window 拿到。

1.4 delete 删除属性

JavaScript-显示全局变量和隐式全局变量的区别

(1)两者的区别在于是否能通过 delete 操作符删除

(2)delete 操作符可以删除一个对象的属性,但如果属性是一个不可配置(non-configurable)属性,删除时则会返回 false(严格模式下会抛出异常)。

阅读更多

参考文章 javascript 显示全局变量与隐式全局变量的区别

点赞
收藏
评论区
推荐文章
Souleigh ✨ Souleigh ✨
4年前
JavaScript - 关于 var、let、const 的区别使用
一、var在ES5中,顶层对象的属性和全局变量是等价的,用var声明的变量既是全局变量,也是顶层变量注意:顶层对象,在浏览器环境指的是window对象,在Node指的是global对象var a  10;console.log(window.a) // 10使用var声明的变量存在变量提升的情况console.log(a) // undefine
Karen110 Karen110
4年前
一篇文章带你了解JavaScript 函数闭包
大家好,我是前端进阶者。JavaScript变量属于本地或者全局范围,使用闭包可以让私有变量成为可能。一、全局变量一个函数可以访问所有定义在函数内部的变量。functionmyFunction()vara4;returnaa;但是函数也可以访问定义在函数之外的变量。vara4;//全局变量funct
Wesley13 Wesley13
4年前
IOS全局变量
IOS中的全局变量和JAVA中的全局变量定义和使用方法不一样,在Java中,只需要将变量定义为static就行了。而在IOS中这种方法不适合。IOS中定义全局变量有三种方法:1.使用extern关键字在AppDelegate.m或AppDelegate.h中写入你需要的全局变量名,例如:int name;注意定义全局变量时候不能初始化,否则报错
Stella981 Stella981
4年前
Rust学习笔记#2:变量声明、绑定与引用
!(https://oscimg.oschina.net/oscnet/up2a26b061f3ae6214fc3a12b58a2ad0e8433.JPEG)变量声明基础知识Rust中的变量分局部变量和全局变量两种,且必须先声明后使用,常见的声明语法为://声明局部变量,使用let关键字letva
Wesley13 Wesley13
4年前
C语言面试题大汇总之华为面试题 Eddy整理
1、局部变量能否和全局变量重名?  答:能,局部会屏蔽全局。要用全局变量,需要使用"::";局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。2、如何引用一个
Stella981 Stella981
4年前
JavaScript 使用闭包保护变量 防止污染
使用JavaScript编写插件或团队协作时,可使用闭包来解决此类以下两个问题:1、定义过多全局变量,可能会造成全局变量命名冲突;2、在插件内定义变量,需要保护该变量不被轻易修改;优点:可以把局部变量驻留在内存中,可以避免使用全局变量;在调用过后不会被垃圾机制回收;缺点:避免滥用闭包,占用更多内存的缺点,用完要及时让垃圾回收器回收(fn
Stella981 Stella981
4年前
JFina教程JfinalUIB 代码笔记 (3)
通常我们使用jfinal开发都会写自己的BaseController来做一些公共全局变量的声明,或者用来实现一些公共方法,JfinalUIB也不例外。参数的封装主要是在ParamPkgInterceptor类中实现,采用的是jfinal的拦截器。首先得到controller和BaseController声明的一些全局变量字段BaseCon
Wesley13 Wesley13
4年前
C++切割文件
voidCFileCutter::DoSplit(){intnCompleted0;//计数CStringstrSourceFilem_strSource;//取得全局变量赋值给局部变量,方便操作CStringstrDestDirm_strDest;
Stella981 Stella981
4年前
Lua程序设计
        Lua中全局变量不需要声明。只需将一个值赋予一个全局变量就可以创建一个全局变量了。在Lua中访问一个未初始化的变量不会引发错误,访问结果是一个特殊的nil值。例如:print(b)   nilb  10 print(b)  10通常没有必要删除一个全局变量。如果一个变量只有较短的生存周期,那
Wesley13 Wesley13
4年前
C语言内存优化——继续含泪总结
之前分析了基本数据类型的优化,现在开始涉及全局和局部变量的优化,话说这个东西我从没想过还能这样优化的喂!全局变量/Globalvariables全局变量不会被分配在寄存器上,修改全局变量需要通过指针或者调用函数的方式间接进行。所以编译器不会将全局变量存储在寄存器中,那样会带来额外的、不必要的负担和存储空间。所以在比较关键的循环中,我们要
Stella981 Stella981
4年前
JavaScript 声明全局变量的三种方式
JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍。声明方式一:使用var(关键字)变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量。声明方式二:没有使用var,直接给标识符e赋值,这样会隐式的声明了全局变量e。即使该语句是在一个function内,当该funct