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


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设置和去除disabled属性的5种方法总结
May 16 Javascript
JavaScript中双叹号!!作用示例介绍
Sep 21 Javascript
解决JavaScript数字精度丢失问题的方法
Dec 03 Javascript
jQuery插件实现可输入和自动匹配的下拉框
Oct 24 Javascript
js 获取今天以及过去日期
Apr 11 Javascript
Mac系统下Webstorm快捷键整理大全
May 28 Javascript
在node中使用jwt签发与验证token的方法
Apr 03 Javascript
layui之数据表格--与后台交互获取数据的方法
Sep 29 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
Oct 26 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
Aug 28 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
Feb 14 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
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使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
从Ajax到JQuery Ajax学习
2007/02/14 Javascript
List Installed Hot Fixes
2007/06/12 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
详解ECMAScript6入门--Class对象
2017/04/27 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
小程序自定义日历效果
2018/12/29 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
2019/04/15 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
浅谈Python中range和xrange的区别
2017/12/20 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
pytorch多进程加速及代码优化方法
2019/08/19 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
Python如何使用vars返回对象的属性列表
2020/10/17 Python
如何一键升级Python所有包
2020/11/05 Python
scrapy处理python爬虫调度详解
2020/11/23 Python
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
英语专业推荐信
2013/11/16 职场文书
采购部岗位职责
2013/11/24 职场文书
协议书格式
2014/04/23 职场文书
化工实习心得体会
2014/09/09 职场文书
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis