作者forkome (初心者)
看板Ajax
標題[問題] Javascript語法請教
時間Fri Feb 14 17:39:55 2014
請問各位大大,最近在學javascript
所以去找版友所寫的作品來看
其中有幾句用google很難找到
return !!window.WebGLRenderingContext
一個驚嘆號是把true變false,但兩個驚嘆號的用法是?
因為是看別人的作品,所以思考方式都是逆思考
若想查類似!!的問題,或是了解較進階的用法
想請教大大們都是如何學習呢
目前會一些基本的用法if for及變數域、委派的概念
但很多較進階的用法都會將function給物件化,如JQuery就是這樣用
市面上的書大多都講較正常的使用方式,對於觀念都比較少提到
現在卡在要看別人的Code,但看不太懂,由下往上的學習好像又是錯誤的方式
不知有沒有比較推薦的網站還是書本可以學習嗎? 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.249.154.130
1F:推 s25g5d4:一個便當吃不夠都要吃兩個了 驚嘆號一個不對再補一個 02/14 17:48
2F:→ s25g5d4:就是... true 還是 true, false 還是 false 02/14 17:48
3F:推 mrbigmouth:兩個驚嘆號可以把原本不是布林值的物件轉換成布林值 02/14 17:50
4F:→ mrbigmouth:!!'' => false !!{} => true 02/14 17:51
5F:→ mrbigmouth:以你舉的例子, 其目的應該是要檢查瀏覽器內是否已存在 02/14 17:52
6F:→ mrbigmouth:WebGLRenderingContext定義 不存在就返回false 02/14 17:52
7F:→ mrbigmouth:存在就返回true 02/14 17:52
8F:→ mrbigmouth:這是用來防止相同script被載入/執行兩次的常見作法 02/14 17:53
9F:→ forkome:M大謝謝回覆,可以再請教一下,防止被執行兩次的意思嗎 02/16 19:36
10F:→ forkome:而在設計上,為何不直接window.WebGLRenderingContext 02/16 19:37
11F:→ forkome:回傳true或false呢? 02/16 19:37
12F:推 mrbigmouth:WebGLRenderingContext可能直接就是該程式的物件本身 02/17 13:58
13F:→ mrbigmouth:你如果直接存另一個變數為true/false就多佔一個廣域變 02/17 13:59
14F:→ mrbigmouth:數 02/17 13:59
15F:推 taikobo:原來還有這種用法,受教了 02/17 18:23
16F:→ forkome:目前的理解為window.WebGLRenderingContext可能會是null 02/18 11:40
17F:→ forkome:或是undefined的情況發生,故「!」可將轉Boolean值 02/18 11:41
18F:→ forkome:不知這樣解理對不對,感謝M大的回覆 02/18 11:41
19F:推 s25g5d4:是 02/18 12:26
20F:推 mrbigmouth:對 關於js書籍 推薦歐萊禮的javascript設計模式跟ja 02/18 19:40
21F:→ mrbigmouth:vascript優良部份兩本 02/18 19:40