課程
/前端開發
/JavaScript
/JavaScript深入淺出
為什么這樣設計?
2015-03-25
源自:JavaScript深入淺出 3-1
正在回答
這是語法規則決定的,其實是一個非常不好的設定。
至于為什么這么設定,這個就好像為什么你的名字就是這樣。。。。因為就是這么起的。
Timi_Sakura
賦值是從右往左進行的,也就是說這一行先執行b=1,這時候b就是全局變量了,沒有被var過。然后是var a = b;
a被聲明了,是局部變量。
(function(){var a=b=5})();
console.log(b);
console.log(a);
為何b有值,a沒有
林中飛虎
var a=b=1;計算優先級 創建全局變量b=1,再在函數中定義一個變量a,a=b
應為你賦值給a,b=1,是不存在的,var a=b=1,就可以等同于,b=1;var a=b;
旋律丶秋涼
是因為下一節提到的給未聲明的變量賦值,此變量就變為全局變量?那么嚴格模式下應該不可以這樣聲明的吧。
舉報
由淺入深學習JS語言特性,且解析JS常見誤區,從入門到掌握
6 回答怎么全是全局變量了?
1 回答這里的this,為什么指向的是全局變量
1 回答關于全局變量
2 回答在函數作用域里面 如果不用var這類的聲名單單只是b=1 這樣的b是在全局中聲明的嘛?函數外面是不是也能訪問的到這個b
3 回答全局變量的輸出
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-03-26
這是語法規則決定的,其實是一個非常不好的設定。
至于為什么這么設定,這個就好像為什么你的名字就是這樣。。。。因為就是這么起的。
2017-06-09
賦值是從右往左進行的,也就是說這一行先執行b=1,這時候b就是全局變量了,沒有被var過。然后是var a = b;
a被聲明了,是局部變量。
2017-03-23
(function(){var a=b=5})();
console.log(b);
console.log(a);
為何b有值,a沒有
2016-11-15
var a=b=1;計算優先級 創建全局變量b=1,再在函數中定義一個變量a,a=b
2016-02-23
應為你賦值給a,b=1,是不存在的,var a=b=1,就可以等同于,b=1;var a=b;
2015-03-25
是因為下一節提到的給未聲明的變量賦值,此變量就變為全局變量?那么嚴格模式下應該不可以這樣聲明的吧。