變數聲明時命名與變數作為對象屬性時命名的區別解析_javascript技巧

來源:互聯網
上載者:User

這個標題實在拗口,Javascript命名變數所遵循的規則

1、第一個字元必須是字母、漢字字元、 底線(_)或貨幣符號($)

2、剩下的可以是底線、漢字字元、 貨幣符號和任何字母、數字

以下聲明變數是正確的

複製代碼 代碼如下:

var p,$p,_p;
var 長,寬; 

以下是錯誤的
複製代碼 代碼如下:

var .p;//只能是字母、數字、底線或貨幣符號
var -p;//只能是字母、數字、底線或貨幣符號
var p*;//只能是字母、數字、底線或貨幣符號
var 4p,4長;//不能以數字開頭
var 長 度;//中間不能有空格

作為對象屬性時,有兩種方式存取。一是點號(.)運算子,一是中括弧([])運算子。
複製代碼 代碼如下:

var p = {name:"Jack"};
alert(p.name);//點號
alert(p['name']);//中括弧

1、點號要求後面的運算元是合法的標識符(即合法的變數命名),對於不合法的不可以使用

2、中括弧要求的則是一個字串即可,不必是合法的變數命名。如4p是不合法的變數命名(因為以數字開頭),但卻可以作為對象屬性名稱(前提是字串)

複製代碼 代碼如下:

var p = {
"4p":"Jack",
"-3":"hello",
name:"Tom",
"我":"me",
"我 們":"we"
};

alert(p.4p);//不合法,文法分析時報錯,不能以數字開頭
alert(p.我);//合法,輸出"me"
alert(p.我 們);//不合法,文法分析時報錯("我"和"們"之間有個空格)
alert(p["我 們"]);//合法,輸出"we",雖然"我"和"們"之間有空格,仍然可以用[]存取
alert(p['4p']);//合法,輸出"Jack"
alert(p.name);//合法,輸出"Tom"

用直接量聲明一個物件變數時,屬性名稱有時候我們會加引號,有時候則不加,但無論加或不加,對象的屬性類型都是string
複製代碼 代碼如下:

var book = {bname:"js權威指南","price":108};//bname沒加引號,price加了
for(var attr in book) {
     //兩次輸出都是string,說明js會動態將其轉換成字串類型
     alert( attr + ":" + typeof(attr) );
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.