這個(gè)標(biāo)題實(shí)在拗口,Javascript命名變量所遵循的規(guī)則
1、第一個(gè)字符必須是字母、漢字字符、 下劃線(_)或美元符號($)
2、剩下的可以是下劃線、漢字字符、 美元符號和任何字母、數(shù)字
以下聲明變量是正確的
var p,$p,_p;
var 長,寬;
以下是錯(cuò)誤的
var .p;//只能是字母、數(shù)字、下劃線或美元符號
var -p;//只能是字母、數(shù)字、下劃線或美元符號
var p*;//只能是字母、數(shù)字、下劃線或美元符號
var 4p,4長;//不能以數(shù)字開頭
var 長 度;//中間不能有空格
作為對象屬性時(shí),有兩種方式存取。一是點(diǎn)號(.)運(yùn)算符,一是中括號([])運(yùn)算符。
var p = {name:"Jack"};
alert(p.name);//點(diǎn)號
alert(p['name']);//中括號
1、點(diǎn)號要求后面的運(yùn)算元是合法的標(biāo)識符(即合法的變量命名),對于不合法的不可以使用2、中括號要求的則是一個(gè)字符串即可,不必是合法的變量命名。如4p是不合法的變量命名(因?yàn)橐詳?shù)字開頭),但卻可以作為對象屬性名(前提是字符串)
var p = {
"4p":"Jack",
"-3":"hello",
name:"Tom",
"我":"me",
"我 們":"we"
};
alert(p.4p);//不合法,語法分析時(shí)報(bào)錯(cuò),不能以數(shù)字開頭
alert(p.我);//合法,輸出"me"
alert(p.我 們);//不合法,語法分析時(shí)報(bào)錯(cuò)("我"和"們"之間有個(gè)空格)
alert(p["我 們"]);//合法,輸出"we",雖然"我"和"們"之間有空格,仍然可以用[]存取
alert(p['4p']);//合法,輸出"Jack"
alert(p.name);//合法,輸出"Tom"
用直接量聲明一個(gè)對象變量時(shí),屬性名有時(shí)候我們會(huì)加引號,有時(shí)候則不加,但無論加或不加,對象的屬性類型都是string
var book = {bname:"js權(quán)威指南","price":108};//bname沒加引號,price加了
for(var attr in book) {
//兩次輸出都是string,說明js會(huì)動(dòng)態(tài)將其轉(zhuǎn)換成字符串類型
alert( attr + ":" + typeof(attr) );
}