快捷搜索:  汽车  科技

javascript有哪些变量类型(什么是JavaScript的变量提升)

javascript有哪些变量类型(什么是JavaScript的变量提升)var name = 'Tom'; (function() { if (typeof name == 'undefined') { let name = 'Jack'; console.log('Goodbye ' name); } else { console.log('Hello ' name); } })(); 欢迎关注,更多分享不错过elem = document.getElementById("demo"); // 查找元素 elem.innerHTML = x " " y; // 显示 x:5 和 y:undefined var y = 7; 立即调用函数,输出的结果分别是?一、先使用后初始化var name = 'Tom'; (function() { if (typeof name == 'undefined') { var name =

javascript有哪些变量类型(什么是JavaScript的变量提升)(1)

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

JavaScript 初始化不会提升

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

例子:

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

y发生了初始化:

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

一、先使用后初始化

var name = 'Tom'; (function() { if (typeof name == 'undefined') { var name = 'Jack'; console.log('Goodbye ' name); } else { console.log('Hello ' name); } })();

javascript有哪些变量类型(什么是JavaScript的变量提升)(2)

javascript有哪些变量类型(什么是JavaScript的变量提升)(3)

二、作用域发生了变化

var name = 'Tom'; (function(name) { if (typeof name == 'undefined') { var name = 'Jack'; console.log('Goodbye ' name); } else { console.log('Hello ' name); } })(name);

javascript有哪些变量类型(什么是JavaScript的变量提升)(4)

javascript有哪些变量类型(什么是JavaScript的变量提升)(5)

三、let 不允许变量提升

var name = 'Tom'; (function() { if (typeof name == 'undefined') { let name = 'Jack'; console.log('Goodbye ' name); } else { console.log('Hello ' name); } })();

javascript有哪些变量类型(什么是JavaScript的变量提升)(6)

javascript有哪些变量类型(什么是JavaScript的变量提升)(7)

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

猜您喜欢: