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


Posted in Javascript onDecember 06, 2013

这个标题实在拗口,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) ); 
}
Javascript 相关文章推荐
JavaScript 解析Json字符串的性能比较分析代码
Dec 16 Javascript
仿jQuery的siblings效果的js代码
Aug 09 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
Nov 02 Javascript
使用javascript实现监控视频播放并打印日志
Jan 05 Javascript
JQuery实现动态添加删除评论的方法
May 18 Javascript
javascript实现连续赋值
Aug 10 Javascript
JS简单实现父子窗口传值功能示例【未使用iframe框架】
Sep 20 Javascript
webpack打包js文件及部署的实现方法
Dec 18 Javascript
Vue render深入开发讲解
Apr 13 Javascript
vue 路由嵌套高亮问题的解决方法
May 17 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
js删除指定位置超链接中含有百度与360的标题
Jan 06 Javascript
JavaScript作用域与作用域链深入解析
Dec 06 #Javascript
深入解析JavaScript中的变量作用域
Dec 06 #Javascript
关于Javascript作用域链的八点总结
Dec 06 #Javascript
Javascript变量作用域详解
Dec 06 #Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
Dec 06 #Javascript
Javascript中克隆一个数组的实现代码
Dec 06 #Javascript
浅析JavaScript中的同名标识符优先级
Dec 06 #Javascript
You might like
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
2013/04/27 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
微信小程序人脸识别功能代码实例
2019/05/07 Javascript
解决layui数据表格排序图标被超出的表头挤出去的问题
2019/09/19 Javascript
vue页面切换项目实现转场动画的方法
2019/11/12 Javascript
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
OpenLayers加载缩放控件使用方法详解
2020/09/25 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
Python中处理unchecked未捕获异常实例
2015/01/17 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
Python进阶篇之字典操作总结
2016/11/16 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
python爬取本站电子书信息并入库的实现代码
2020/01/20 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
2020/02/07 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
环境科学专业研究生求职信
2013/10/02 职场文书
金融专业毕业生推荐信
2013/11/26 职场文书
数控机械专业个人的自我评价
2014/01/02 职场文书
中文教师求职信
2014/02/22 职场文书
创先争优活动承诺书
2014/08/30 职场文书
网站出售协议书范文
2014/10/10 职场文书
学校节水倡议书
2015/04/29 职场文书
交通安全学习心得体会
2016/01/18 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
一文读懂go中semaphore(信号量)源码
2021/04/03 Golang
web前端之css水平居中代码解析
2021/05/20 HTML / CSS