專欄剛剛開通, 先把自己以前寫的一些沒人看的答案搬運過來填補一下空白.
變數的問題,莫過於宣告和賦值兩個步驟,而這兩個步驟是分開的。
函式宣告被提公升時,宣告和賦值兩個步驟都會被提公升,
而普通變數卻只能提公升宣告步驟,而不能提公升賦值步驟。
變數被提公升過後,先對提公升上來的所有物件統一執行一遍宣告步驟,
然後再對變數執行一次賦值步驟。
而執行賦值步驟時,會優先執行函式變數的賦值步驟,再執行普通變數的賦值步驟。
當你明白這三點後,一切都豁然開朗了。
首先來看乙個demo:
(function();
var a;
alert(typeof a); //function
})();
先提公升兩個a,然後執行函式的賦值步驟,a沒有被賦值,故結果為function
再看乙個:
(function();
var a = 1;
})();
先提公升兩個a,再執行函式的賦值步驟,
因為在alert語句執行以前,還未執行a = 1的賦值步驟,函式不會被覆蓋,故為function
來個最有說服力的:
(function();
alert(typeof a); //number
})();
在alert語句執行之前,a = 1步驟和函式賦值步驟均已執行,
而且函式還在a = 1賦值語句之後,但是仍然輸出number,
就是因為函式的賦值步驟會先於a = 1的賦值步驟,函式被覆蓋,故輸出number。
js 事件委託的一些想法
原生 js 的事件委託可以利用事件冒泡來實現 核心思想是利用 target target 是處於事件目標階段的元素 currenttarget 是註冊了事件的元素 jquery 的 on 方法可以方便的實現事件委託 下面是相關 和小結 個人筆記,較雜亂 add 原生 js 的事件委託實現 windo...
最近一些想法
1.it系統的建設中,當前的方 似乎仍舊沒有足夠重視對目標的認識 這造成的結果,以盲人摸象來形容,實際上是太輕了。今天上街看給小孩玩的電動小象形狀會唱歌但不會動的那種汽車,小孩的媽媽說,咱們去騎小象吧,這給了我乙個認識 我們建模的時候甚至在更早的步驟中進行分析和抽象的時候,往往就是這麼做的。即便不是...
談一些想法
睡不著,做夢驚醒。不知不覺,又是乙個6月8號過去了,如果一切正常的話,應該又有一大批的學弟學妹們走下了考場,滿懷憧憬地準備迎接人生的下乙個十字路口。一年前的我,現在應該坐在家裡,想著我報考什麼學校和專業吧。最開始可能想去北京,報考計算機或者機械,或者別的什麼專業。去年填報志願的時候,人工智慧炒的非常...