js 对象命名

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

posted @ 2023-02-17 15:29  小黄H  阅读(101)  评论(0编辑  收藏  举报