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


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浏览器6/7版本加载不同样式表的实现代码
Dec 26 Javascript
node.js中的fs.fsync方法使用说明
Dec 15 Javascript
jQuery中 prop() attr()使用详解
May 19 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
Sep 08 Javascript
详解js的异步编程技术的方法
Feb 09 Javascript
最通俗易懂的javascript变量提升详解
Aug 05 Javascript
使用Fullpage插件快速开发整屏翻页的页面
Sep 13 Javascript
javascript计算对象长度的方法
Oct 25 Javascript
微信小程序实现自上而下字幕滚动
Jul 14 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
Apr 02 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
Nov 09 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
Mar 10 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
详解:――如何将图片储存在数据库里
2006/12/05 PHP
php根据年月获取季度的方法
2014/03/31 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
js数组的操作详解
2013/03/27 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
JavaScript callback回调函数用法实例分析
2018/05/08 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
2019/11/19 Javascript
Python实现图片拼接的代码
2018/07/02 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
Django日志及中间件模块应用案例
2020/09/10 Python
Python实现Excel自动分组合并单元格
2021/02/22 Python
彻底弄明白CSS3的Media Queries(跨平台设计)
2010/07/27 HTML / CSS
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
如何用PHP实现邮件发送
2012/12/26 面试题
百度软件工程师职位
2013/02/14 面试题
Java语言程序设计测试题改错题部分
2014/07/22 面试题
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
代理班主任的自我评价
2014/02/04 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
蓝颜请假条
2014/04/11 职场文书
公司募捐倡议书
2014/05/14 职场文书
人工作失职检讨书
2015/05/05 职场文书
花田少年史观后感
2015/06/16 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL