js变量声明时命名与变量作为对象属性时命名区别


这个标题实在拗口,javascript命名变量所遵循的规则

1、第一个字符必须是字母、汉字字符、 下划线(_)或美元符号($)

2、剩下的可以是下划线、汉字字符、 美元符号和任何字母、数字

  1. //以下下声明变量是正确的
  2. var p,$p,_p;
  3. var 长,宽;

  4. //以下是错误的
  5. var .p;//只能是字母、数字、下划线或美元符号
  6. var -p;//只能是字母、数字、下划线或美元符号
  7. var p*;//只能是字母、数字、下划线或美元符号
  8. var 4p,4长;//不能以数字开头
  9. var 长 度;//中间不能有空格
作为对象属性时,有两种方式存取。一是点号(.)运算符,一是中括号([])运算符。
  1. var p = {name:"Jack"};
  2. alert(p.name);//点号
  3. alert(p['name']);//中括号

1、点号要求后面的运算元是合法的标识符(即合法的变量命名),对于不合法的不可以使用

2、中括号要求的则是一个字符串即可,不必是合法的变量命名。如4p是不合法的变量命名(因为以数字开头),但却可以作为对象属性名(前提是字符串)

  1. var p = {
  2. "4p":"Jack",
  3. "-3":"hello",
  4. name:"Tom",
  5. "我":"me",
  6. "我 们":"we" };


  7. alert(p.4p);//不合法,语法分析时报错,不能以数字开头

  8. alert(p.我);//合法,输出"me"

  9. alert(p.我 们);//不合法,语法分析时报错("我"和"们"之间有个空格)
  10. alert(p["我 们"]);//合法,输出"we",虽然"我"和"们"之间有空格,仍然可以用[]存取

  11. alert(p['4p']);//合法,输出"Jack"
  12. alert(p.name);//合法,输出"Tom"
ps:用直接量声明一个对象变量时,属性名有时候我们会加引号,有时候则不加,但无论加或不加,对象的属性类型都是string

  1. var book = {bname:"js权威指南","price":108};//bname没加引号,price加了
  2. for(var attr in book) {
  3.      //两次输出都是string,说明js会动态将其转换成字符串类型
  4.      alert( attr + ":" + typeof(attr) );
  5. }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值