作者poopoo888888 (阿川)
看板Ajax
標題[ js ] js的變數名稱問題
時間Fri May 13 15:38:42 2011
網路上查了資料
說js的變數命名必須以字母開頭或是底線,後面可以是數字或字母
但我在看這個網站的source code
http://chat.latest.gaejava.appspot.com/
卻發現有這樣的語法
var $content = $('#content');
var $msg = $('#msg');
var token;
我知道$('#content')和$('#msg')是jquery的語法
但我不懂為什麼會寫出var $content這樣的code?
不是說必須以字母或是底線開頭嗎?
請教各位大大了 謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.181.202
1F:推 mesak:加上$ 是為了辨別已套上 JQUERY方式 $content && content 05/13 17:35
2F:→ mesak:$content 比較容易辨認是已經 被 JQUERY 選擇的物件 05/13 17:35
3F:→ mesak:content 光看像是 一般文字變數 05/13 17:36
4F:推 s25g5d4:就像樓上講的... 另外這有助於效能提升 比起每次都跑一次 05/13 20:35
5F:→ s25g5d4:$() 先把它存到變數裡會比較快 05/13 20:37
6F:→ s25g5d4:$開頭是為了辨識方便 我自己用.each時也會先建一個$_this 05/13 20:38
7F:→ s25g5d4:另外就是如果selector已經無法指定該元素(例如class已經 05/13 20:38
8F:→ s25g5d4:改變) 先存到變數裡的jQuery物件並不會因此失效 05/13 20:39
9F:→ poopoo888888:非常感謝兩位大大!! 獲益良多!! 05/13 21:02
10F:→ poopoo888888:但還是有個問題「以字母或是底線開頭」這句話是錯的? 05/13 21:02
11F:→ poopoo888888:所以也可以用其他亂七八糟的符號開頭嗎? 05/13 21:03
12F:推 mesak:一般會設定為底線是為了跟 廣域變數區別開 主要是認知為私有 05/13 21:10
13F:→ mesak:變數, 能不能用亂七八糟的符號我就不知道了.....我只用過 05/13 21:11
14F:→ mesak:$ _ - 其他都沒用過.... 05/13 21:11
15F:→ s25g5d4:應該是只有$跟_是例外 05/13 21:51
16F:→ s25g5d4:像! % & * ( ) +這些想也知道不行 @#^我測過也不行 05/13 21:52
17F:→ poopoo888888:我知道了 很謝謝兩位大大的回答^^!! 05/14 00:12
18F:推 rexkimta:本身是運算元的都不行。 減號不行吧? 05/14 11:39
19F:→ mesak:我的減號是變數串接 XD 沒打清楚 05/16 10:34