js对象属性的命名规范

2023-11-07

1.首先,我们要知道,js对象属性命名有三种方法
(1)对象字面量形式命名。这时的属性,可以是任意的字符串(包括空串和空格字符串),也可以是js的变量形式。(即以字母,下划线,$开头。后面跟字母,数字,下划线和$),还可以是纯数字。

 let obj = {
        a1: 1,
        a2: 'we',
        'hello world!': 23,
        " ": 1212,
        1: 'we are family'
    }

(2)通过点号来命名或访问.,这时的属性名必须是正确的js变量。

  let obj = {
        a1: 1,
        a2: 'we',
        'hello world!': 23,
        " ": 1212,
        1: 'we are family'
    }
    obj._2232a = 'hello';

(3)[]来命名或访问,这时,属性名是任意的字符串。

let obj = {
        a1: 1,
        a2: 'we',
        'hello world!': 23,
        " ": 1212,
        1: 'we are family'
    }
    obj[''] = 123;

2.当对象的属性是以数字为属性名时,可以用obj.[1]obj.['1']来访问。但是不能用点号.访问。
3.当对象的属性是布尔值时,也可用obj.[true]obj.['true']来访问。还可以用.来访问。

let obj = {
        a1: 1,
        a2: 'we',
        'hello world!': 23,
        " ": 1212,
        1: 'we are family',
        true: true
    }
    console.log(obj.true);

4.采用[]操作符读取对象属性时,js解释器执行的动作
采用obj[propertyName]的形式读取或创建对象属性时,解释器首先会检查propertyName是值类型字面量还是用户定义的变量,如果propertyName是值类型的字面量,则解释器自动将其转换为字符串后再读取或创建属性,如obj[1],obj[true]会被转换成obj[“1”]、obj[“true”].
如果propertyName是变量名称(或者是表达式),则解释器会读取变量内容(或对表达式求值),如果变量的值是字符串,则直接读取属性,如果是其他类型的数据,则转换为字符串后再读取属性
5.看一个特殊点的例子

let obj = {
        undefined: undefined
    }
    let a;
    console.log(obj[a]); 输出undefined

首先a是变量,所以js会将它转换为字符串。a没有赋值,它的值为undefined,所以obj[a]转为obj["undefined"],则值为undefined。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js对象属性的命名规范 的相关文章

  • ES6知识点总结——学习网站及环境搭建

    1 ES6学习网站 ES6官网 https 262 ecma international org 6 0 阮一峰ES6学习电子书 https es6 ruanyifeng com docs let W3Cschool ES6中文教程 htt
  • 微信小程序播放音乐并同步一次显示一行歌词

    主要是对于歌词部分的描述 gitee项目仓库地址 https gitee com manster1231 master cloud music 点个star哦 1 总体思路 先在加载页面时异步获取歌词 根据 musicId 我们可以获取到该
  • git提交代码报 vue-cli-service lint found some errors. Please fix them and try committing again

    原因 问过度娘在提交代码的时候 它会在提交代码前运行做代码风格检查 如果代码不符合相应规则 则报错 解决 直接把pre commit文件删除 进入项目 git文件夹 hooks 删除 如何你的项目文件夹下没有找到 git文件夹 检查一下看看
  • js获取数组中最大最小值及对应索引值(下标)

    1 使用原生Js实现该功能 主要是通过循环实现 getMaxMin data key gt if data return false let maxIndex 0 let minIndex 0 let maxNum data 0 key 0
  • JS中的delete

    delete 操作符用于删除对象的某个属性 如果没有指向这个属性的引用 那它最终会被释放 语法 delete expression expression 的计算结果应该是某个属性的引用 例如 delete object property d
  • JavaScript学习(二)javascript基础

    例1 p 我是第一段文字 p p 我是第二段文字 p
  • 【面试题】说一下promise的理解

    一 什么是Promise ES6 异步编程的一种解决方案 比传统的方案 回调函数和事件 更加的合理和强大 大家都知道传统解决异步编程用的是回调函数套回调函数 简称回调地域 以前用JQuery的朋友应该是相当熟悉了 维护起来很难搞 回调地域
  • ES6知识点总结二:解构赋值

    3 解构赋值 ES6 允许按照一定模式 从数组和对象中提取值 对变量进行赋值 这被称为解构 数组 const courseArr es6 es7 es8 const a courseArr 0 const b courseArr 1 con
  • Vue.js中的v-model指令(双向绑定)

    Vue js中v model的作用 v model的作用和使用场景 1 v model的作用 双向绑定 2 v model双向绑定的使用场景 表单 3 总结 v model的作用和使用场景 你好 Vue js作为现在最为常用的前端框架之一
  • ES6知识点总结一:const、let、箭头函数

    1 ES6常量及变量的声明const let ES6 新增了let命令来声明变量 const用来声明常量 ES6新增的let和const拥有 块级作用域 ES5只有 全局作用域 和 函数作用域 const与var区别 var声明的变量可以重
  • ES6入门

    一 let和const命令 1 let命令 类似于var 但是只在let所在的代码块有效 不存在变量提升 即一定要先声明后使用 暂时性死区 待理解 不允许重复声明 2 块级作用域 内层不影响外层 3 const命令 const声明一个常量
  • ES6 method写法与TypeError: is not a constructor

    公司前端最近开始强推ESlint 很多文件需要逐步修改为符合ESlint规则的形式 结果遇到了一个神奇的问题 有一段类似这样的代码 let obj init function el 此处ESlint检查提示 Expect method sh
  • Object.entries()方法使用详解

    一 概述 对象的数据处理方法 我们熟知的有很多 比如Object keys Object values for in等 本文将其与其它常见使用方法进行对比 详细解析其特性 二 对比 for in Object entries 方法的优势 1
  • Promise 捕获错误

    你好 我是南一 这是我在准备面试八股文的笔记 如果有发现错误或者可完善的地方 还请指正 万分感谢 前言 今天做项目时 遇到Promise抛出错误捕获不到的情况 然后我就去找了 阮一峰ES6入门重新学了一遍 又加深了对Promise的理解 分
  • js 处理树形结构数据

    js 处理树形结构数据 数据 let data id 1 address 安徽 parent id 0 id 2 address 江苏 parent id 0 id 3 address 合肥 parent id 1 id 4 address
  • 3分钟玩转:ES6 模块化

    ES6 模块 ES6 使用 export 和 import 导出和导入模块 导出模块 一个模块就是一个独立的 JS 文件 该文件内的变量外部无法获取 若希望能让外部获取模块内的变量 则要用 export 关键字暴露变量 分别暴露 命名行内导
  • 【JS 构造

    个人格言 时间是亳不留情的 它真使人在自己制造的镜子里照见自己的真相 Git专栏 Git篇 JavaScript专栏 js实用技巧篇 该专栏持续更新中 目的是给大家分享一些常用实用技巧 同时巩固自己的基础 共同进步 欢迎前来交流 你的一键三
  • 【ES6】Reflect反射机制

    文章目录 一 Reflect概述 二 用法详解 1 Object gt Reflect 2 修改Object方法的返回结果 3 命令式操作 gt 函数式操作 4 与Proxy对象的方法一一对象 5 apply 总结 一 Reflect概述
  • 137-----JS基础-----类的操作

    一 代码 不算难 如果后续操作到类的话 可以直接使用下面封装好的接口到自己的tool中
  • 前端基础(三)- ES7~ES12

    为了方便记忆和称呼 ES2015之后的新知识点我们都统称ES6语法 就没必要去划分得那么细 ES7 2016 Array prototype includes includes方法可以判断一个数组是否包含某个指定的值 如果存在返回true

随机推荐

  • python之base64编码解码

    Python 2 7 16 default Dec 13 2019 18 00 32 GCC 4 2 1 Compatible Apple LLVM 11 0 0 clang 1100 0 32 4 macos10 15 objc s on
  • 排序算法时间复杂度、空间复杂度、稳定性比较

    排序算法分类 排序大的分类可以分为两种 内排序和外排序 放在内存的称为内排序 需要使用外存的称为外排序 排序算法的时间复杂度和空间复杂度 排序算法 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性 冒泡排序 O n O n
  • python斐波那契数列前20项_Python每日一练之实现斐波那契数列

    概述 今天主要分享下怎么用Python实现斐波那契数列 大家有空可以玩一下 需求 用Python脚本实现斐波那契数列 思路 斐波那契数列 也称兔子数列 是指1 1 2 3 5 8 13 21 34 55 89 144 这样一个数列 在这个数
  • matlab求长径比,基于数值模拟的气膜孔冷却效率经验公式的修正

    1 引言 燃气轮机叶片冷却的基本方式主要分为内部冷却与外部冷却 而外部冷却中气膜冷却具有明显优势和较强应用前景 是一种广泛采用的冷却技术 气膜冷却的原理如图1所示 通过在高温部件表面开设槽或者小孔 使冷却气体以射流的方式注入到主流高温燃气中
  • 如何使用ChatGPT写论文?

    使用ChatGPT写论文详细操作步骤 说明 ChatGPT是一款ai产品 尽管它非常强大 对我们来说本质上也仅仅是一个辅助工具 切勿让AI完全取代我们的思考能力 目前的ChatGPT写论文还不能一步到位 只能通过一些技巧来完成整篇论文 使用
  • 10个python入门小游戏,零基础打通关,就能掌握编程基础

    不会python就不能用python开发入门级的小游戏 当然不是 我收集了十个python入门小游戏的源码和教程 并且即使你没有python基础 只要跟着这十个小游戏的开发详细教程去做 以及有了全部的源码 那就能自己开发出这样十个pytho
  • andriod build system

    1 入口 build core main mk 2 build core base rules mk 3 AndriodProducts mk 在原生的bulid system里面会 吧所有的改名字的 makefile都 inlucde进去
  • 云服务器被攻击了,怎么处理比较合适,你的服务器在发生什么

    云服务器遭受攻击时可能会出现以下问题 服务器瘫痪 攻击者可能会使用分布式拒绝服务 DDoS 攻击来使服务器无法响应请求 从而导致网站或应用程序无法正常运行 数据泄露 攻击者可能会窃取服务器上的敏感数据 例如用户名 密码或个人信息 服务器被入
  • 怎么使用Groovy+Spock做单元测试?

    1 背景 平时我们写代码 免不了要进行一些测试 如果没有使用单元测试 对于简单的程序 我们可以写一个main方法 调试查看指定的方法是否符合预期 对于一个服务系统 我们可以使用PostMan等工具来模拟一下真实请求 查看输入输出是否符合预期
  • adb命令卸载(系统app)遇到:Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]

    普通卸载 所有软件的包名 adb shell pm list packages 卸载命令 adb uninstall 包名 Failure DELETE FAILED INTERNAL ERROR 之后rm apk卸载 貌似只能一次卸载一个
  • 聊聊运算放大器---施密特与迟滞比较器

    很多人把施密特触发器与迟滞比较器混为一谈 以为是一样的东西 其实不然 虽然二者都是带有2个门限的正反馈比较器 还是有具体区别的 1 施密特触发器可以买到专用的芯片 如74HC14 其门限电压UT UT 是固定值 注意均为正电压 2 迟滞触发
  • KubeSphere 社区双周报

    KubeSphere 从诞生的第一天起便秉持着开源 开放的理念 并且以社区的方式成长 如今 KubeSphere 已经成为全球最受欢迎的开源容器平台之一 这些都离不开社区小伙伴的共同努力 你们为 KubeSphere 提出了很多建设性意见
  • Vue基础之模板语法介绍

    目录 前言 一 插值 二 指令 三 过滤器 四 计算属性和监听属性 五 vue实现购物车案例 前言 上篇我分享了关于Vue的入门 简单的入了个门 本篇文章将要分享的内容为Vue的模板语法 一 插值 1 1 文本 1 2 html 1 3 属
  • 大数据基础——MySql篇

    MySql 什么是数据库 数据库 保存数据的仓库 他在电脑中是一个文件系统 然后把数据都保存在这些特殊的文件中 并且使用固定的语言 SQL语言 去操作文件中的数据 数据库就是按照数据结构来组织 存储和管理数据的建立在计算机存储设备上的仓库
  • 数据库面试

    数据库知识点 是否了解内存数据库 顾名思义就是将数据放在内存中直接操作的数据库 相对于磁盘 传统的数据库管理系统把所有数据都放在磁盘上进行管理 所以称做磁盘数据库 内存的数据读写速度要高出几个数量级 因此内存数据库的最大特点就是性能好 速度
  • 让CPU画出图形(其实很简单的)

    本例子是当初微软的一个题目 希望windows任务管理器的CPU的占有率 是一个正旋曲线 如果是你 你会如何解决这个问题呢 先上图吧 由于cpu要处理其他电脑程序 只能画出来大概的模样 其实我当时想这个问题时候 是不是考虑对cpu进行操作
  • JS中Symbol的介绍

    1 引入Symbol类型的背景 ES5 的对象属性名都是字符串 这容易造成属性名冲突的问题 举例 使用别人的模块 对象 又想为之添加新的属性 这就容易使得新属性名与原有属性名冲突 2 Symbol类型简介 symbol是一种原始数据类型 其
  • 计算机网络---第五章传输层---UDP

    1UDP的端口号是53 需要应用层提供可靠性服务 2网络层的复分用指的是协议 传输层的复分用指的是进程 3UDP首部为8B 伪首部长度为12B 5使用UDP协议的原因在于要找到目的进程以及更加可靠 6IP电话实时媒体会议流媒体使用UDP 7
  • MySQL复习

    MySQL学习 1 初始MySQL 1 1 什么是数据库 数据库 DB BataBase 作用 存储数据 管理数据 1 2 数据库分类 关系型数据库 SQL MySQL Oracle sql Server 各个表之间 表中行和列之间的关系进
  • js对象属性的命名规范

    1 首先 我们要知道 js对象属性命名有三种方法 1 对象字面量形式命名 这时的属性 可以是任意的字符串 包括空串和空格字符串 也可以是js的变量形式 即以字母 下划线 开头 后面跟字母 数字 下划线和 还可以是纯数字 let obj a1