Javascript全局变量var与不var的区别深入解析
2019独角兽企业重金招聘Python工程师标准>>>
这篇文章主要介绍了Javascript全局变量var与不var的区别。需要的朋友可以过来参考下,希望对大家有所帮助
相信你对全局变量一定不陌生,在函数作用域里用a=1这种形式定义的变量会是一个全局变量,在全局作用域里,用下面3种形式都可以创建对全局可见的命名:
代码如下:
<script>
var a = 1;
b = 2;
window.c = 3;
</script>
对于b=2这种方式, 它其实和c是一样的,在执行这个赋值语句的时候,会沿着作用域链寻找名字叫做b的变量,一直找到作用域链的顶端还没有找到,于是给window添加一个属性b然后赋值。
var与不var有两个区别:
1 var的全局变量不能被删除,因为delete智能删除对象的可删除的属性,而通过var 定义的全局属性会被标明不可删除。需要说明的是,delete不成功并不会抛错,delete的返回值是true|false。
2 var定义的全局变量会被提升,而不用var定义的全局变量不会被提升。可以看下面程序的执行结果:
代码如下:
<script>
alert(a);
var a=1;
</script>
代码如下:
<script>
alert(a);//error, a undefined
a=1;
</script>
转载于:https://my.oschina.net/wjj328938669/blog/541383
Javascript全局变量var与不var的区别深入解析相关推荐
- java 全局变量_Javascript中的局部变量、全局变量的详解与var、let的使用区别
前言 Javascript中的变量定义方式有以下三种方式: 1.直接定义变量,var与let均不写: a = 10; 2.使用var关键字定义变量 var a = 10; 3.使用let关键字定义变量 ...
- 在Javascript中 声明时用var与不用var的区别,== 和 ===的区别
今天,被问到两个JS问题,当时没回答到重点,问题虽然看起来简单,但是细节却马虎不得,在此做下记录: 1. 在Javascript中 声明时用"var"与不用"var&qu ...
- JavaScript重难点解析1(数据类型——var、let、const区别,类型补充,“===”、“typeof”、“instanceof”区别,Symbol数据类型)
JavaScript重难点解析1(数据类型) var.let.const区别: 类型补充 "==="."typeof"."instanceof&quo ...
- var和let、const区别
let和var都可以定义变量,而const定义的是常量 const a=123//无法更改值a = 1234 // 这时会报错,因为const定义的是常量 不可更改console.log(a) con ...
- JavaScript中的 let 和 var
文章目录 let 和 var let 的诞生 let与var区别 全局作用域 函数作用域 块作用域 let 和var 重新声明 const let 应用场景 let 和 var let 的诞生 在ES ...
- /var/tmp和/tmp目录区别
Linux临时目录/tmp与/var/tmp区别 /tmp与/var/tmp,这两个目录被用户用于存储临时性的文件,亦经常被程序存储临时性数据. 两个目录没有本质上的区别,最根本的区别仅仅是系统对其中 ...
- javascript php 区别,PHP 或者 JavaScript 这些弱类型 的|| 和 | 的区别, 附代码;
下面是实验代码:用php 写的,JavaScript应该也差不多: 我发现,php 和 JavaScript 差多了! 我附加 运行结果 和 代码: 区别 | || or \& \& ...
- java引用类型和值类型_[Java教程]JavaScript中值类型和引用类型的区别
[Java教程]JavaScript中值类型和引用类型的区别 0 2017-02-24 00:00:35 JavaScript的数据类型分为两类:原始类型和对象类型.其中,原始类型包括:数字.字符串和 ...
- JavaScript 访问对象属性和方法及区别
这篇文章主要介绍了浅析JavaScript访问对象属性和方法及区别的相关资料,仅供参考 属性是一个变量,用来表示一个对象的特征,如颜色.大小.重量等:方法是一个函数,用来表示对象的操作,如奔跑.呼吸. ...
最新文章
- 为什么ubuntu64位下C语言for循环不能超过2147483647次?(size_t )
- Java throw:异常的抛出
- ipsec ip替换_点到多点ipsec-vpn NAT穿透和固定IP共存
- oracle 得到一个树,Related to Oracle SQL 关于树形数据的遍历
- 02 | 服务治理:Nacos 如何实现微服务服务治理
- 二项式定理的几何视觉演示再次来袭,这次你看懂了吗?
- python3.5 安装PyCrypto
- python解析xml文件选用模块_Python标准库系列之xml模块
- c语言定义的几种易错的说明
- 域名变一定要购买云服务器才能有备案申请号吗?
- Spring使用IOC容器创建对象及ClassPathXmlApplicationContext与FileSystemXmlApplicationContext接口详解
- 在 Python 中使用函数式编程的最佳实践!
- 百度云文章的链接地址抓取工具
- C++设计模式10--命令模式(二)(Command)--降低请求发送者与接收者耦合
- 数据库字典收集整理,设计数据表时可拿来查考
- 二十四节气之夏至养生篇
- 【Linux】如何查看命令运行历史时间以及操作人IP
- 梦想贩卖机v2-1.069
- Dan Saks_const T vs T const
- X86服务器CPU的作用,为什么需要基于x86架构的至强处理器?