js一些要点
js中:
undefined == null?? --> true
false == null??????????--> false
false == undefined --> false
undefined === null?? --> false
?
true && 任意對象 ? ? ? --> 返回右邊的任意對象
?
關于js立即執行函數:
function (){ /*codde*/ }(); function aa(){/*codde*/}();這樣不會執行并且拋出異常
(function aa(){/*codde*/}()); (function aa(){/*codde*/})();都是正確方式,推薦第一種。
?
js中普通對象 和 new函數()對象?以及 普通函數() 區別
1,普通函數(),表示執行一次函數,返回結果為內部return的結果。沒有為undefined
2,var a = new 函數(),也會執行一次函數,但會將執行完后的函數上下文作為一個對象返回給a,可以通過a.i 調用函數內部this.i聲明的內部變量(這就是聲明屬性的方法)。(單純的var i只是局部變量,不是屬性)。
3,var a = {}普通對象,通過a.i引用內部i:value方式的值。
?
函數內變量作用域:
函數內 var i=0;是局部變量,能屏蔽全局上的i變量。
但函數內直接使用 i=0;表示一個全局變量。
?
js中閉包的典型用法:
1 <input type='button' id='b1'/> 2 <input type='button' id='b2'/> 3 <input type='button' id='b3'/>上面3個button,功能一樣——每當被點擊,就alert出自己目前為止一共被點擊了多少次;?
那么這個記錄點擊次數的變量放在哪里?這3個button的功能完全一樣,事件函數可以寫成一個,但卻需要分別設立變量來存儲自己被點擊了多少次,那么這個時候閉包的作用就來了:把他們的事件監聽函數設置為同一個函數的閉包,這樣一來3個button的點擊次數就獨立變化了,且沒有全局變量產生;?
就像下面這樣的代碼:?
function genCount(){var i = 0;return function(){i++;alert(i);} } var a = genCount(); var b = genCount(); a(); b(); b(); b(); a();上述例子,來自該貼中pf_miles的回帖:http://www.iteye.com/topic/569395
還有一個例子,代碼比較長,地址在這里:http://blog.chinaunix.net/uid-13164110-id-3066361.html
?
以后還是得多寫博客,不然記得好好的東西說忘就忘
?
轉載于:https://www.cnblogs.com/lordrobert/p/4020774.html
總結
- 上一篇: FL2440移植LINUX-3.4.2
- 下一篇: Apache URLRewrite 原理