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的区别深入解析相关推荐

  1. java 全局变量_Javascript中的局部变量、全局变量的详解与var、let的使用区别

    前言 Javascript中的变量定义方式有以下三种方式: 1.直接定义变量,var与let均不写: a = 10; 2.使用var关键字定义变量 var a = 10; 3.使用let关键字定义变量 ...

  2. 在Javascript中 声明时用var与不用var的区别,== 和 ===的区别

    今天,被问到两个JS问题,当时没回答到重点,问题虽然看起来简单,但是细节却马虎不得,在此做下记录: 1. 在Javascript中 声明时用"var"与不用"var&qu ...

  3. JavaScript重难点解析1(数据类型——var、let、const区别,类型补充,“===”、“typeof”、“instanceof”区别,Symbol数据类型)

    JavaScript重难点解析1(数据类型) var.let.const区别: 类型补充 "==="."typeof"."instanceof&quo ...

  4. var和let、const区别

    let和var都可以定义变量,而const定义的是常量 const a=123//无法更改值a = 1234 // 这时会报错,因为const定义的是常量 不可更改console.log(a) con ...

  5. JavaScript中的 let 和 var

    文章目录 let 和 var let 的诞生 let与var区别 全局作用域 函数作用域 块作用域 let 和var 重新声明 const let 应用场景 let 和 var let 的诞生 在ES ...

  6. /var/tmp和/tmp目录区别

    Linux临时目录/tmp与/var/tmp区别 /tmp与/var/tmp,这两个目录被用户用于存储临时性的文件,亦经常被程序存储临时性数据. 两个目录没有本质上的区别,最根本的区别仅仅是系统对其中 ...

  7. javascript php 区别,PHP 或者 JavaScript 这些弱类型 的|| 和 | 的区别, 附代码;

    下面是实验代码:用php 写的,JavaScript应该也差不多: 我发现,php 和 JavaScript 差多了! 我附加 运行结果 和 代码: 区别 | || or \& \& ...

  8. java引用类型和值类型_[Java教程]JavaScript中值类型和引用类型的区别

    [Java教程]JavaScript中值类型和引用类型的区别 0 2017-02-24 00:00:35 JavaScript的数据类型分为两类:原始类型和对象类型.其中,原始类型包括:数字.字符串和 ...

  9. JavaScript 访问对象属性和方法及区别

    这篇文章主要介绍了浅析JavaScript访问对象属性和方法及区别的相关资料,仅供参考 属性是一个变量,用来表示一个对象的特征,如颜色.大小.重量等:方法是一个函数,用来表示对象的操作,如奔跑.呼吸. ...

最新文章

  1. 为什么ubuntu64位下C语言for循环不能超过2147483647次?(size_t )
  2. Java throw:异常的抛出
  3. ipsec ip替换_点到多点ipsec-vpn NAT穿透和固定IP共存
  4. oracle 得到一个树,Related to Oracle SQL 关于树形数据的遍历
  5. 02 | 服务治理:Nacos 如何实现微服务服务治理
  6. 二项式定理的几何视觉演示再次来袭,这次你看懂了吗?
  7. python3.5 安装PyCrypto
  8. python解析xml文件选用模块_Python标准库系列之xml模块
  9. c语言定义的几种易错的说明
  10. 域名变一定要购买云服务器才能有备案申请号吗?
  11. Spring使用IOC容器创建对象及ClassPathXmlApplicationContext与FileSystemXmlApplicationContext接口详解
  12. 在 Python 中使用函数式编程的最佳实践!
  13. 百度云文章的链接地址抓取工具
  14. C++设计模式10--命令模式(二)(Command)--降低请求发送者与接收者耦合
  15. 数据库字典收集整理,设计数据表时可拿来查考
  16. 二十四节气之夏至养生篇
  17. 【Linux】如何查看命令运行历史时间以及操作人IP
  18. 梦想贩卖机v2-1.069
  19. Dan Saks_const T vs T const
  20. X86服务器CPU的作用,为什么需要基于x86架构的至强处理器?

热门文章

  1. 你还在用Swagger?试试这个神器!
  2. 高并发场景下的限流策略
  3. 计算机视觉组队学习预告!提前进群
  4. 是时候改变自学编程方法了,这篇国外网友的分享被fast.ai创始人等点赞
  5. 美国新规:自动驾驶车,从此不需要驾驶位了
  6. 告别「灭霸式审稿」,IJCAI-21 的投稿者爽到家!
  7. 机器学习基础:朴素贝叶斯及经典实例讲解
  8. 分布式多层次限流概述
  9. 分组表管理之获取用户组表列表数据
  10. 抽取文档主题之gensim实现