什么是JavaScript的变量提升?

发布时间:2020-03-25 04:22:32发布者:admin浏览数:
什么是JavaScript的变量提升?立即调用函数中的变量提升问题

变量提升(hoisting):函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最顶部

JAVAScript 初始化不会提升

JavaScript 只有声明的变量会提升,初始化的不会。

例子:

var x = 5; // 初始化 xvar y = 7; // 初始化 yelem = document.getElementById("demo"); elem.innerHTML = x + " " + y; // 显示 x:5和 y:7

y发生了初始化:

elem = document.getElementById("demo"); // 查找元素 elem.innerHTML = x + " " + y; // 显示 x:5 和 y:undefinedvar y = 7;立即调用函数,输出的结果分别是?

一、先使用后初始化

var name = 'Tom';(function() { if (typeof name == 'undefined') { var name = 'Jack'; console.log('Goodbye ' + name); } else { console.log('Hello ' + name); }})();什么是JavaScript的变量提升?立即调用函数中的变量提升问题


什么是JavaScript的变量提升?立即调用函数中的变量提升问题

二、作用域发生了变化

var name = 'Tom';(function(name) {if (typeof name == 'undefined') { var name = 'Jack'; console.log('Goodbye ' + name); } else { console.log('Hello ' + name); }})(name);什么是JavaScript的变量提升?立即调用函数中的变量提升问题


什么是JavaScript的变量提升?立即调用函数中的变量提升问题

三、let 不允许变量提升

var name = 'Tom';(function() {if (typeof name == 'undefined') { let name = 'Jack'; console.log('Goodbye ' + name); } else { console.log('Hello ' + name); }})();什么是JavaScript的变量提升?立即调用函数中的变量提升问题


什么是JavaScript的变量提升?立即调用函数中的变量提升问题

欢迎关注,更多分享不错过



  站长教程分类
程序开发 |  系统教程 |  软件应用 |  图形图像 |  网络应用 |  站长教程 |  网站建设 |  视频教程 |  硬件维护 |  IT资讯 |  中国it动力网
本站发布的系统与软件仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件!
如侵犯到您的权益,请及时通知我们,我们会及时处理。
Copyright @ 2019 中国it动力网 网站导航