js对象属性的命名规则
来源:互联网 发布:哪里多淘宝模板下载 编辑:程序博客网 时间:2024/06/08 16:02
JS标识符的命名规则,即变量的命名规则:
- 标识符只能由字母、数字、下划线和‘$’组成
- 数字不可以作为标识符的首字符
对象属性的命名规则
- 通过[]操作符为对象添加属性时,属性名称可以是任何字符串(包括只包含空格的字符串和空字符串);
- 通过.操作符为对象添加属性时,属性名称必须是合法的标识符名称;
- 如果属性名包含非法的标识符字符,则只能采用obj[“propertyName”]的形式;
- 如果属性名是合法的标识符,读取时即可以采用obj.propertyName,也可以采用obj[“propertyName”]的形式;
举例:
var obj = new Object();obj["home addr"]="Tianjin";obj["!@#$%"]="!@#$%";obj[""]="empty string";obj[" "]="string contains only space";
在控制台中查看如下:
纯数字属性名的特殊性
纯数字属性名的使用比较特殊,可以通过对象字面量和obj[number]的形式为对象添加纯数字属性,解释器会自动将数字转换为数字字符串。
定义实例:
var obj = {1:"first"}obj[2]="second";obj["3"]="third";
以上三种为对象添加纯数字属性的方法是等效的,控制台查看如下:
读取的方式有两种:
- obj[number]
- obj["number"]
需要注意,采用obj.number的方式读取纯数字属性名称时浏览器会报错,如下
布尔属性名的特殊性
布尔属性名和纯数字属性名有着相似的行为,如下
采用[]操作符读取对象属性时,js解释器执行的动作
采用obj[propertyName]的形式读取或创建对象属性时,解释器首先会检查propertyName是值类型字面量还是用户定义的变量,如果propertyName是值类型的字面量,则解释器自动将其转换为字符串后再读取或创建属性,如obj[1],obj[true]会被转换成obj["1"]、obj["true"].
如果propertyName是变量名称(或者是表达式),则解释器会读取变量内容(或对表达式求值),如果变量的值是字符串,则直接读取属性,如果是其他类型的数据,则转换为字符串后再读取属性。举例如下:
定义对象:
定义变量:
读取属性:
更特殊的,为obj添加undefined属性:
使用未初始化的变量c读取obj的undefined属性:
由于c没有初始化,所以将c转换为字符串的结果是“undefined”,而obj存在“undefined”属性。
阅读全文
0 0
- js对象属性的命名规则
- javaScript中对象的属性名命名规则
- JavaScript--JS操作属性注意的命名规则
- js面向对象编程命名规则
- js变量的命名,定义规则
- 模式对象的命名规则和命名空间
- js命名规则
- js变量命名规则
- js对象的属性
- JS的 for in循环读取对象属性的顺序遵循的规则
- JavaScript - HTML属性命名规则
- 循环读取时 JS 对象属性的顺序遵循怎样的规则?
- 游戏对象的属性与命名
- Java中的类、方法、属性的命名规则
- Java中的类、方法、属性的命名规则
- Java中包、类、方法、属性、常量的命名规则
- Java中包、类、方法、属性、常量的命名规则!
- Java中的类、方法、属性的命名规则
- JavaWeb使用cookie实现记住密码,密码加密
- 文章标题
- 23种设计模式(2)-建造者模式
- 剑指offer面试题分类总结
- 深入浅出 妙用Javascript中apply、call、bind
- js对象属性的命名规则
- 使用监听器调用上下文监听器从数据库取常量
- 【微信公众号开发】自我学习第一章:服务器配置的提交
- centos7.3+mysq5.7.18 binary安装
- Hive表联合查询语句参考
- 半路出家, 我的iOS自学之路-1-C语言
- 哈希表(散列表)原理详解
- mysql分表和表分区详解
- HTML5 CSS3 诱人的实例 :模仿优酷视频截图功能