先看一段代码:

var name = 'Tom';
function say() {if (name == undefined) {var name = 'Jack'console.log('goodbey ' + name)} else {console.log('hi' + name)}
}
say() //输出 goodbye Jack
var name = 'Tom';
function say() {if (name == undefined) {name = 'Jack'console.log('goodbey ' + name)} else {console.log('hi ' + name)}
}
say() //输出 hi Tom

从上面代码中,我们看出var a在函数中变量提升了,而a没有,以下做出更详细的总结:

var a :可以定义全局或者局部变量,a会变量提升;
a: 文档流执行a的赋值,a便成为全局变量,不存在变量提升。实际是定义了全局对象(window)的属性,可用delete删除。

注意点:

  1. 只有var定义,变量才会有变量提升。
  2. var a和a在浏览器环境下都是在window上定义a属性。
  3. for循环和if判断中var a,a会冒泡,只有在函数{}内var才不会冒泡。

js中 var a 和 a 的区别相关推荐

  1. JS中var、let、const区别? 用3句话概括

    使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象: 使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升: 使用const声明的是常量,在后面出现的代码中不能再修 ...

  2. js中var、let、const区别

    //1.var定义的变量可以修改,如果不初始化会输出undefined,不会报错. var a; console.log(a); //undefined//2.let是块级作用域,函数内部使用let定 ...

  3. html offsetwidth 字符串宽度,基于js中style.width与offsetWidth的区别(详解)

    作为一个初学者,经常会遇到在获取某一元素的宽度(高度.top值...)时,到底是用 style.width还是offsetWidth的疑惑. 1. 当样式写在行内的时候,如 时,用 style.wid ...

  4. 认清js中var a=b=1和var a=1,b=1的区别

    js中一次性定义多个变量的时候,可以用:var a=1,b=1这种中间用逗号隔开的方式,但有些时候为了省事,直接定义var a=b=1.那这两种写法方式最后效果是一样的吗?有没有什么区别呢?请大家看下 ...

  5. Js中var,let,const的区别

    一:区别: 1.var声明的变量属于函数作用域,而let和const声明的变量属于块级作用域:(js作用域在上篇文章) 2.var声明的变量存在变量提升,而let和const没有 3.var声明的变量 ...

  6. js中的target与currentTarget的区别转

    关于js中target与currentTarget的区别的关键在于他们所处在的事件流的阶段是不一样的,target处于事件流的目标阶段,currentTarget处理事件流的捕获.处于目标阶段和冒泡阶 ...

  7. js中构造函数与普通函数的区别

    构造函数不仅只出现在JavaScript中,它同样存在于很多主流的程序语言里,比如c++.Java.PHP等等.与这些主流程序语言一样,构造函数在js中的作业一样,也是用来创建对象时初始化对象,并且总 ...

  8. js中关于length与size的区别

    length与size的区别 用了很长时间的length的一直没考虑过其与size的区别,今天同事问起,特意查找资料,将两者的相同点与共同点列出来. 相同点:在jQuery中用于返回元素的个数,siz ...

  9. php中的foreach和js中的foreach的用法和区别

    PHP中的foreach循环: 主要用于遍历数组 例如: (1)// $colors=array("red","yellow","blue" ...

最新文章

  1. 注射“基因剪刀”治疗罕见遗传病,患者28天内无明显不良反应,诺奖得主很激动...
  2. 让Mac OS 10.x.x安装在Vmware虚拟机上!
  3. 四面体的表面积_JACS:武汉大学汪成课题组利用从平面至四面体的扭曲单体来合成COFs材料...
  4. oracle pl/sql 中目录的创建
  5. html5手机电商网页设计代码_Html5网站制作,干货!20个视觉体验和内容俱佳的优秀网页设计...
  6. java遍历斐波纳契数列_详解循环、迭代、递归、分治(Leet Code 509 斐波那契数列),实际运用...
  7. html button 自动提交,html+js表单form验证自动提交的2种提交方式button和
  8. XSS-Game level 11
  9. mysql建立数据库需要注意什么_创建数据库的语句是什么 MySQL数据库使用教程
  10. LaTeX(2)——LaTeX文档基本结构
  11. 在python中使用sort_详解python中sort排序使用
  12. 快速对表的某字段赋递增的数值
  13. 12.逻辑运算符与、或、非、双感叹号、双问号
  14. 如何写好一篇科技论文?
  15. unexpected indent错误
  16. Python+Vue计算机毕业设计个人学习博客系统wyz5v(源码+程序+LW+部署)
  17. 写给静不下心来的朋友们
  18. C++数据结构实验--图的基本操作
  19. python爬虫入门案例day10:珠宝图片
  20. mac出现文件夹问号_Macbook文件夹怎么设置隐藏或显示?开机带问号的文件夹怎么办?...

热门文章

  1. 华三服务器怎样用hdm安装linux,H3C服务器配置HDM用户指南
  2. 看inux系统中的c语言编译器,Linux系统自定义安装C语言gcc编译器图文详细教程
  3. php-fpm的重启方法
  4. bilinear 神经网络_基于多尺度双线性卷积神经网络的多角度下车型精细识别
  5. Linux 磁盘- 存储
  6. 单细胞算法-聚类-louvain算法
  7. 迅雷下载文件名为download的解决办法
  8. ansible一键部署脚本
  9. git 修改分支名称 --- git branch -m
  10. 知识图谱认知智能理论与实战----------第一章 知识图谱概述