js里面函數(shù)和變量的聲明被提升到函數(shù)的最頂部
變量可以先使用,再聲明
x = 5; // 變量 x 設(shè)置為 5
elem = document.getElementById("demo"); // 查找元素
elem.innerHTML = x; // 在元素中顯示 x
var x; // 聲明 x
但是聲明時(shí)被初始化了的變量不會(huì)被提升,例如
var x = 5; // 初始化 x
elem = document.getElementById("demo"); // 查找元素
elem.innerHTML = x + " " + y; // y 是 undefined
var y = 7; // 初始化 y
js的變量提升(標(biāo)識(shí)符提升)是一個(gè)“低劣”的設(shè)計(jì),使用中會(huì)產(chǎn)生許多困擾,因此es6引入let和const來(lái)解決這個(gè)問(wèn)題