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


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 相关文章推荐
JS获取后台Cookies值的小例子
Mar 04 Javascript
常用的JS验证和函数汇总
Dec 23 Javascript
javascript查询字符串参数的方法
Jan 28 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
Jan 17 Javascript
Node.js中的require.resolve方法使用简介
Apr 23 Javascript
JavaScript实现全选取消效果
Dec 14 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
Jan 02 Javascript
vue iview组件表格 render函数的使用方法详解
Mar 15 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
May 12 Javascript
基于vue实现一个禅道主页拖拽效果
May 27 Javascript
Vue分页器实现原理详解
Jun 28 Javascript
JavaScript array常用方法代码实例详解
Sep 02 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
一个ORACLE分页程序,挺实用的.
2006/10/09 PHP
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
js 右侧浮动层效果实现代码(跟随滚动)
2015/11/22 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
vue通过cookie获取用户登录信息的思路详解
2018/10/30 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
2019/04/30 Javascript
jquery 遍历hash操作示例【基于ajax交互】
2019/10/12 jQuery
JS替换字符串中指定位置的字符(多种方法)
2020/05/28 Javascript
利用 JavaScript 实现并发控制的示例代码
2020/12/31 Javascript
[01:44]《为梦想出发》—联想杯DOTA2完美世界全国高校联赛
2015/09/30 DOTA
实例讲解python函数式编程
2014/06/09 Python
Python基于twisted实现简单的web服务器
2014/09/29 Python
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
Python 中的lambda函数介绍
2018/10/10 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
简单了解python数组的基本操作
2019/11/26 Python
python 导入数据及作图的实现
2019/12/03 Python
检测tensorflow是否使用gpu进行计算的方式
2020/02/03 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
python 19个值得学习的编程技巧
2020/08/15 Python
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
产品开发计划书
2014/04/27 职场文书
年终考核实施方案
2014/05/26 职场文书
个人求职自荐信范文
2014/06/20 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
永不妥协观后感
2015/06/10 职场文书
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis