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


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模仿ie的自动完成类似自动完成功的表单
Dec 12 Javascript
js定时器的使用(实例讲解)
Jan 06 Javascript
javascript鼠标滑动评分控件完整实例
May 13 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
Jan 20 Javascript
DOM中事件处理概览与原理的全面解析
Aug 16 Javascript
基于vue.js实现图片轮播效果
Dec 01 Javascript
JS常见算法详解
Feb 28 Javascript
jquery对table做排序操作的实例演示
Aug 10 jQuery
Vue组件通信的四种方式汇总
Feb 08 Javascript
详解vuex之store源码简单解析
Jun 13 Javascript
详解基于Vue的支持数据双向绑定的select组件
Sep 02 Javascript
node+multer实现图片上传的示例代码
Feb 18 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的异常处理类Exception的使用及说明
2012/06/13 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
JSON 教程 json入门学习笔记
2020/09/22 Javascript
jquery禁止回车触发表单提交
2014/12/12 Javascript
js使用心得分享
2015/01/13 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
JQuery的加载和选择器用法简单示例
2019/05/13 jQuery
微信小程序如何使用globalData的方法
2019/06/06 Javascript
原生JS实现留言板
2020/03/26 Javascript
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
python 实现文件的递归拷贝实现代码
2012/08/02 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
详解爬虫被封的问题
2019/04/23 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
HTML5+lufylegend实现游戏中的卷轴
2016/02/29 HTML / CSS
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
设置器与访问器的定义以及各自特点
2016/01/08 面试题
银行会计职员个人的自我评价
2013/09/29 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
车贷收入证明范本
2014/09/14 职场文书
培训师岗位职责
2015/02/14 职场文书
中学生自我评价范文
2015/03/03 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
《正比例》教学反思
2016/02/23 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题