JS 标识符的命名规则,即变量的命名规则:

  • 标识符只能由字母、数字、下划线和‘$’组成
  • 数字不可以作为标识符的首字符

对象属性的命名规则

  • 通过[]操作符为对象添加属性时,属性名称可以是任何字符串(包括只包含空格的字符串和空字符串);
  • 通过.操作符为对象添加属性时,属性名称必须是合法的标识符名称;
  • 如果属性名包含非法的标识符字符,则只能采用 obj[“propertyName”]的形式;
  • 如果属性名是合法的标识符,读取时即可以采用 obj.propertyName,也可以采用 obj[“propertyName”]的形式;

js 对象属性名

  • js 对象的属性名在保存时是 string
let a = {
1: "b",
1: "w", //报错,属性名1重复
true: "0",
true: "1", //报错,属性名true重复
};

采用[]操作符读取对象属性时,js 解释器执行的动作

  • 采用 obj[propertyName]

    的形式读取或创建对象属性时,解释器首先会检查 propertyName 是值类型字面量还是用户定义的变量,如果 propertyName 是值类型的字面量,则解释器自动将其转换为字符串后再读取或创建属性,如 obj[1],obj[true]会被转换成 obj["1"]、obj["true"].

  • 如果 propertyName 是变量名称(或者是表达式),则解释器会读取变量内容(或对表达式求值),如果变量的值是字符串,则直接读取属性,如果是其他类型的数据,则转换为字符串后再读取属性

最新文章

  1. 【WPF】整个自定义按钮后台添加
  2. 使用EntityFramework6完成增删查改和事务
  3. [转]VC的DDK编译环境构建
  4. SNMP SNMP协议
  5. Java基础 —— 概述
  6. Spring AOP Example – Advice
  7. 如何将中国知网CNKI中的文献导入EndNote X6
  8. JAVAEE——SSH项目实战02:客户列表和BaseDao封装
  9. C#委托与事件学习笔记
  10. BZOJ.3926.[ZJOI2015]诸神眷顾的幻想乡(广义后缀自动机)
  11. 修改host文件——mac
  12. myeclipse和jdk的安装和配置
  13. 团队项目第二周spec设计
  14. ES Grafana
  15. Linux下利用Valgrind工具进行内存泄露检测和性能分析
  16. Spring Boot(一):入门篇
  17. 小米笔记本装MAC(黑苹果),外接USB蓝牙,禁止笔记本自带的蓝牙方法
  18. Dubbo剖析-SPI机制
  19. Failure to transfer org.springframework.boot:spring-boot-starter-parent:pom:2.0.1.RELEASE from https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempt
  20. How to Install and Configure Bind 9 (DNS Server) on Ubuntu / Debian System

热门文章

  1. SQLSERVER 的复合索引和包含索引到底有啥区别?
  2. 原生js实现jsonp
  3. P8775 [蓝桥杯 2022 省 A] 青蛙过河
  4. linux 基础之输入输出重定向
  5. LIS求解(包括优化)
  6. Docker使用阿里云拉取配置源也无法拉取的镜像-github镜像镜像gcr.io
  7. vue 解决循环引用组件/动态组件/组件未注册报错
  8. 标准&有效的项目开发流程
  9. OSI七层协议补充与socket套节字
  10. 如何通过Java应用程序添加或删除 PDF 中的附件