这个标题实在拗口,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"
- var book = {bname:"js权威指南","price":108};//bname没加引号,price加了
- for(var attr in book) {
- //两次输出都是string,说明js会动态将其转换成字符串类型
- alert( attr + ":" + typeof(attr) );
- }