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

前端技术 2023/09/05 JavaScript

这个标题实在拗口,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) );
}

本文地址:https://www.stayed.cn/item/14394

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。