变量声明时命名与变量作为对象属性时命名的区别解析
2013-12-06 16:44
501 查看
这篇文章主要介绍了变量声明时命名与变量作为对象属性时命名的区别。需要的朋友可以过来参考下,希望对大家有所帮助
这个标题实在拗口,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']);//中括号
unity3d http://www.unitymanual.com/
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) );
}
这个标题实在拗口,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']);//中括号
unity3d http://www.unitymanual.com/
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) );
}
相关文章推荐
- 实现自定义的BaseAdapter
- 星号图
- C语言通过递归实现反向计算
- Android手机ROOT之后更改字体文件导致无法启动的问题
- 关于减少BUG的思考
- wcf 速成,转的啊 第一天
- Shell [] {}
- 互斥锁属性PTHREAD_MUTEX_RECURSIVE
- ALSA中Widget、route、kcontrol 命名规则
- java poi 读取03、07excel表格的内容
- sudo apt-get XXX解决方法
- Linux 下的notifier chain 机制的注册和触发讲解
- Eclipse ee + Maven3 + jrebel 的 Dynamic Web 搭建
- mysql插入数据后返回自增ID的方法
- css中display:inline-block display:-moz-inline-box display:-moz-inline-stack 的区别
- struts2中action执行流程和源码分析
- 【Javascript Trick系列】二、table相关操作
- VMware不能完全卸载问题
- curl库的使用,32-64
- 十五周——电子词典