JS变量提升原理与用法实例浅析


Posted in Javascript onMay 22, 2020

本文实例讲述了JS变量提升。分享给大家供大家参考,具体如下:

该篇介绍什么是变量提升,写给像我一样的JS新手看的

简单来说变量提升就是 JS会把var变量的声明自动提升到作用域的顶部,即使你不想这样

一个例子: (局部变量与全局变量同名时 , 局部变量覆盖全局变量)

var a="全局变量";
function test()
{
  document.writeln(a);
  var a="局部变量";
  document.writeln(a);
}
test();

上例的两个输出结果是

undefined局部变量

第一个输出并没有输出全局变量a而是undefined ,这就是变量提升导致的

上例等同与下例:

var a="全局变量";
function test()
{
  var a;
  document.writeln(a);
  a="局部变量";
  document.writeln(a);
}
test();

test函数内即使局部变量a还没定义,就已经覆盖了全局变量,可见其声明已经生效了,

变量声明会自动提升到作用域的顶部, 即使该语句并没执行

如下例:

var x=100;
var y=200;
function test()
{
  document.writeln(x);
  document.writeln(y);
  if(false)
  {
    var x=1;
  }
  return;
  var y=2;
}
test();

输出结果:

undefinedundefined

等同如下形式:

var x=100;
var y=200;
function test()
{
  var x,y;
  document.writeln(x);
  document.writeln(y);
  if(false)
  {
    x=1;
  }
  return;
  y=2;
}
test();

那么怎么解决这个问题呢?

用let变量!let变量执行到定义部分才会装载,具体用法请自行查询!

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《JavaScript常用函数技巧汇总》、《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
10款非常有用的 Ajax 插件分享
Mar 14 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
Jun 05 Javascript
jquery插件开发之实现jquery手风琴功能分享
Mar 10 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
Apr 06 Javascript
javascript实现简单的页面右下角提示信息框
Jul 31 Javascript
js确认框confirm()用法实例详解
Jan 07 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
Sep 26 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
Oct 10 jQuery
4 种滚动吸顶实现方式的比较
Apr 09 Javascript
ES6 Object属性新的写法实例小结
Jun 25 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
Oct 28 Javascript
ant design pro中可控的筛选和排序实例
Nov 17 Javascript
JavaScript直接调用函数与call调用的区别实例分析
May 22 #Javascript
js事件机制----捕获与冒泡机制实例分析
May 22 #Javascript
JavaScript使用prototype属性实现继承操作示例
May 22 #Javascript
详解如何修改 node_modules 里的文件
May 22 #Javascript
Node.js API详解之 readline模块用法详解
May 22 #Javascript
vue+canvas实现移动端手写签名
May 21 #Javascript
基于canvas实现手写签名(vue)
May 21 #Javascript
You might like
一个程序下载的管理程序(二)
2006/10/09 PHP
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
php汉字转拼音的示例
2014/02/27 PHP
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
2007/04/27 Javascript
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
JS常用算法实现代码
2016/11/14 Javascript
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
[00:52]DOTA2第二届亚洲邀请赛预选赛宣传片
2017/01/13 DOTA
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
python中requests库session对象的妙用详解
2017/10/30 Python
Python设计模式之MVC模式简单示例
2018/01/10 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
纯CSS3打造动感漂亮时尚的扇形菜单
2014/03/18 HTML / CSS
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
护士岗前培训自我评鉴
2014/02/28 职场文书
高中生评语大全
2014/04/25 职场文书
媒矿安全生产承诺书
2014/05/23 职场文书
危货运输企业安全生产责任书
2014/07/28 职场文书
培训科主任岗位职责
2014/08/08 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
优秀教师申报材料
2014/12/16 职场文书
布达拉宫的导游词
2015/02/02 职场文书
苏州园林导游词
2015/02/03 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python