這是我申請寫的第一篇文章,想把這兩天學習的關於js的變數和函式提公升機制(
hoisting
)記錄下來。
從網上看到這麼一段**:
varc = 2;
functionc()
a = 10; //這可不是對外面的全域性變數a定義哦
console.log(a); //10(區域性變數
)vara = 11;
console.log(a); //11(區域性變數)
return;
functiona(){
alert("abc");
b();
console.log(a); //1(全域性變數)
上面的例子等價於下面這樣:
varb =functionb(){
vara =functiona(){
alert("abc");
console.log(a);
a = 10;
console.log(a);
a = 11;
console.log(a);
return;
vara;
a = 1;
b();
console.log(a);
不知道寫的這點東西對大家有沒有一點幫助呢?
js變數提公升機制
宣告 declare var a function sum 預設值undefined 定義 defined a 12 定義其實就是賦值操作 變數提公升階段 帶 var 的只宣告未定義 帶 function 的宣告 和賦值都完成了。變數提公升只發生在當前作用域 例如 開始載入頁面的時候,只對全域性作用...
js函式 變數提公升 hoisting
其實我只是想複習下變數提公升的,然後看到了函式提公升,然後再看到了函式宣告 函式表示式.有必要懷著敬仰之心提及園子裡的tom大叔的解密命名函式表示式,不愧是大叔,好好地腦補了下基礎知識.在ecmascript中,建立函式的最常用的兩個方法是函式表示式和函式宣告,兩者期間的區別是有點暈,因為ecma規...
關於js的各種變數提公升機制
js中,傳統宣告變數是var function es6中是let const import。今天說一下前四種的異同。let 和 const letconst都是宣告乙個變數,但是const宣告的變數不允許指標重新指向,且const宣告的時候必須賦值,否則會報錯。變數賦值本質上就是乙個指標指向的過程。...