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


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 相关文章推荐
jQuery中文入门指南,翻译加实例,jQuery的起点教程
Jan 13 Javascript
JScript中的undefined和"undefined"的区别
Mar 08 Javascript
页面中body onload 和 window.onload 冲突的问题的解决
Jul 01 Javascript
HTML Dom与Css控制方法
Oct 25 Javascript
JS+CSS实现的蓝色table选项卡效果
Oct 08 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
Jan 21 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
Apr 04 Javascript
JS实现的文件拖拽上传功能示例
May 21 Javascript
Vue中使用matomo进行访问流量统计的实现
Nov 05 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
Jul 21 Javascript
Vue使用axios引起的后台session不同操作
Aug 14 Javascript
vue实现动态表格提交参数动态生成控件的操作
Nov 09 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按行读取文件时删除换行符的3种方法
2014/05/04 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
PDO::inTransaction讲解
2019/01/28 PHP
拖拉表格的JS函数
2008/11/20 Javascript
jQuery表单验证插件formValidator(改进版)
2012/02/03 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
js点击选择文本的方法
2015/02/09 Javascript
jQuery实现移动 和 渐变特效的点击事件
2015/02/26 Javascript
JavaScript中使用自然对数ln的方法
2015/06/14 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
jQuery实现链接的title快速出现的方法
2017/02/20 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
[01:32]2014DOTA2西雅图邀请赛 CIS我们有信心进入正赛
2014/07/08 DOTA
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
Python遍历numpy数组的实例
2018/04/04 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
简单了解Python生成器是什么
2019/07/02 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
Python搭建HTTP服务过程图解
2019/12/14 Python
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
爱国演讲稿400字
2014/05/07 职场文书
球队口号
2014/06/18 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
夫妻婚内购房协议书
2014/10/05 职场文书
2015年党员承诺书
2015/01/21 职场文书
大学迎新生欢迎词
2015/09/29 职场文书
争做文明公民倡议书
2019/06/24 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python