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


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代码
Dec 15 Javascript
JS异常处理的一个想法(sofish)
Mar 14 Javascript
js简单实现让文本框内容逐个字的显示出来
Oct 22 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
Apr 23 Javascript
jquery+正则实现统一的表单验证
Sep 20 Javascript
javascript产生随机数方法汇总
Jan 25 Javascript
浅谈Sticky组件的改进实现
Mar 22 Javascript
js自定义select下拉框美化特效
May 12 Javascript
vue元素实现动画过渡效果
Jul 01 Javascript
JS实现判断图片是否加载完成的方法分析
Jul 31 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
Nov 28 Javascript
ES6 Map结构的应用实例分析
Jun 26 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网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
php邮件发送的两种方式
2020/04/28 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
2010/12/04 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
必备的JS调试技巧汇总
2016/07/20 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
解决Vue项目中tff报错的问题
2020/10/21 Javascript
Python 多线程,threading模块,创建子线程的两种方式示例
2019/09/29 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
Django ModelForm操作及验证方式
2020/03/30 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
python代码实现猜拳小游戏
2020/11/30 Python
用HTML5实现鼠标滚轮事件放大缩小图片的功能
2015/06/25 HTML / CSS
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
乐观大学生的自我评价
2014/01/10 职场文书
办理生育手续介绍信
2014/01/14 职场文书
软件项目开发计划书
2014/05/01 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB