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


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中需要注意的细节问题小结
Dec 06 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
Feb 03 Javascript
浅谈javascript的原型继承
Jul 25 Javascript
JavaScript设计模式之代理模式介绍
Dec 28 Javascript
如何使用Vuex+Vue.js构建单页应用
Oct 27 Javascript
prototype.js简单实现ajax功能示例
Oct 18 Javascript
浅谈如何使用 webpack 优化资源
Oct 20 Javascript
vue toggle做一个点击切换class(实例讲解)
Mar 13 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
Jun 14 Javascript
JavaScript实现选项卡效果的分析及步骤
Apr 16 Javascript
微信小程序实现多选框全选与取消全选功能示例
May 14 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
Apr 24 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
JS实现php的伪分页
2008/05/25 PHP
laravel请求参数校验方法
2019/10/10 PHP
laravel入门知识点整理
2020/09/15 PHP
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
js实现查询商品案例
2020/07/22 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
Python中的魔法方法深入理解
2014/07/09 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
python去除扩展名的实例讲解
2018/04/23 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
python对XML文件的操作实现代码
2020/03/27 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
商务主管岗位职责
2013/12/08 职场文书
如何签定毕业生就业协议书
2014/09/28 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL