看板 Ajax 關於我們 聯絡資訊
js 的 undefined 是全域變數,但非保留字,所以可以改變值,不過書上寫「千萬 別這麼做」。我試著改變他的值,但也看不出有什麼影響,例如 var a; var undefined = "aa"; alert(typeof a); // 一樣顯示 undefined 以我的功力是看不出改 undefined 有什麼用處,但這個網頁: http://www.cnblogs.com/leadzen/archive/2009/02/18/1387750.html 留言 43 樓表示 jquery 的結構可確保 undefined 不是被惡意修改過的值。 想請教高手,惡意修改 undefined 可以做什麼事呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.175.50
colmash:可以讓接手你工作的人debug時幹翻吧XDDDD 12/04 11:58
mchen11:XD......(筆記) 12/04 12:30
musie:有些回圈會檢查next是不是undefined 你改了 就變無窮回圈 12/04 13:35
musie:這是最常見的情形吧 12/04 13:35
mchen11:請問m大 如我文中舉的例子 就算把undefined改了 檢查 12/04 15:44
mchen11:typeof a 還是一樣顯示 undefined 看來不會影響檢查啊? 12/04 15:44
nenpow:有些瀏覽器像Chrome不會讓你改undefined的值 12/04 17:30
nenpow:你可能必須要在比較舊的瀏覽器才試的出來 12/04 17:31
grence:if(b==undefined)b=123 12/04 21:43
mchen11:謝謝g大,這個例子很好 12/05 09:17
mchen11:我測過了 IE8 可以改 undefined 而 Chrome FireFox 不能 12/05 09:18
mchen11:只是我在想 一般應該都會用 if(!b){b=123} 這樣子的話 12/05 09:21
mchen11:改 undefined 不曉得還有什麼重大影響 12/05 09:22
gpmm:!b 在 false/0/undefined 都吃,undefined 有自己單獨的情境 12/05 11:42
mrbigmouth:如果都用typeof檢查undefined當然沒影響 12/06 09:38
mrbigmouth:但jQuery內部用的是 === undefined這種檢查法 12/06 09:38
mrbigmouth:所以jQuery當然有必要確保undefined不被改 12/06 09:38
mrbigmouth:jQuery還必須兼容各家瀏覽器 12/06 09:39
mrbigmouth:至於jQuery為啥用=== undefined的檢查法...我猜可能在 12/06 09:40
mrbigmouth:某些瀏覽器的效率會有差(吧?) 12/06 09:40
mchen11:我覺得樓上m大解釋的很有道理 少用一個 typeof 的檢查動作 12/06 17:53
mchen11:的確執行得比較有效率(少一個動作) 12/06 17:57
s25g5d4:jQuery不是用closure包起來了 undefined應該不會被影響吧 12/06 21:31