对象的属性名是包括空字符串在内的所有字符串。

那么问题来了,我们平时定义的对象如下,是没有引号""or''的,这样不加引号有没有错呢?

答案是,加不加分情况!但加了肯定没问题...

一般情况下

一般情况下,加不加引号都一样,

var object= {

name: 'Leonardo',

'age': 21,

};

document.write('name: ' + object['name'] + '
');

document.write('age: ' + object.age + '
');

执行结果是:

name: Leonardo

age: 21

也就是说,如果是字符串,而且属性名是合法的(不是javascript的保留字)是允许不用引号括起来属性名。

另外,我又注意到了,调用对象的属性名的时候,我们知道,有两种写法:

第一种object.name 还是 stooge."name" 呢?

第二种object[name] 还是 stooge["name"] 呢?

实验结果表明:

第一种object.name

可以这么写,也就是说,这种写法也是默认支持不用引号括起来属性名。(必须符合标识符原则)

第二种object["name"]

应该这样写,此种写法类似数组,一定要在[ ]中加入对应有引号的字符串,才能识别出键。(万能写法)

特殊情况

var obj = {

123name: 'Leonardo',

}

document.write('name: ' + object.123name + '
');

这种情况就会报错,因为如果没有引号,key就会依照标识符原则。

(1)标识符由字母、数字和下划线组成

(2)标识符的第一位必须是字母或者下划线,不能是数字

如果加上引号这是可以的,所以引号下的'key'中可以说任何字符包括空格。但同时取值也需要用[' ']的方式。

var obj = {

'123name': 'Leonardo',

}

document.write('name: ' + object['123name'] + '
');

扩展

甚至还可以这样:

var obj = {

'123name': 'Leonardo',

'': '空',

' ': '一个空格',

}

document.write('name: ' + obj['123name'] + '
');

document.write(obj[''] + '
');

document.write(obj[' '] + '
');

so,看了这篇博客之后,你是加呢还是不加呢~~

js的object的key需要引号吗,JavaScript中对象是否需要加引号?相关推荐

  1. JavaScript中对象(Object)的方法

    JavaScript中对象方法总结: 资料来源:网道-互联网开发文档 [https://wangdoc.com/] 1.Object.getPrototypeOf(Object) Object.get ...

  2. JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题的解决方法

    JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题的解决方法 参考文章: (1)JS IOS/iPhone的Safari浏览器不兼容Javascript中的D ...

  3. js的object的key需要引号吗_今天你用书名号了吗?

    此文为英语标点使用指南.牛津大学发布的University of Oxford Style Guide中出现的英文标点有14种,它们是: 以下简要总结各标点的使用. 句号.问号.感叹号用于句末,结束句 ...

  4. javascript 无法修改 数组中对象_谈谈JavaScript中对象建立(Object)

    在这篇文章中我将会着重说明如何创建JavaScript里的对象(Object). 对象(Object)是什么? 在开始介绍如何创建对象前,我们要知道对象是什么.对象(Object)简单地来说,就是一堆 ...

  5. HTML中属性值是否加引号规则详解

    说明: 当属性值是一个单词或者一整串(中间不含空格)的字符时:可以不加引号 当属性值是多个单词或者一整串(中间含空格)的字符时:需要加引号 备注:以上是老师的原话,个人实验发现,具体加不加引号是以是值 ...

  6. php循环给数组每个值加引号,php数组非数字键名加引号的必要性!

    我们可以看出, 基本上, 使用引号,和不使用引号的效率损失在3倍以上 那么, 这些效率损失到哪里去了呢? 我们分别看下, 俩个文件生成的OPCODE序列: good.php : filename: / ...

  7. html 反引号 用法,JavaScript中的反引号符号(`)的用法是什么?

    ES6提供了一种新类型的字符串文字,使用反向标记作为分隔符.这些文字确实允许嵌入基本的字符串插值表达式,然后自动解析和评估它们. let  person = {name:'RajiniKanth',a ...

  8. js数组查找最接近_如何从javascript中的对象数组中获取最接近的先前id

    我对您的代码进行了一些更改,现在应该可以正常工作了.看一看. const array = [{id:3}, {id:4}, {id:10}, {id:15}]; // you should order ...

  9. JavaScript中Object的总结

    基于原型继承,动态对象扩展,闭包,JavaScript已经成为当今世界上最灵活和富有表现力的编程语言之一. 这里有一个很重要的概念需要特别指出:在JavaScript中,包括所有的函数,数组,键值对和 ...

最新文章

  1. 让Flash背景透明兼容Firefox、IE 6和IE 7的代码
  2. linux下安装MySQL出错file /usr/share/mysql/charsets/latin2.xml from install of MySQL-......
  3. java快速排序泛型,如何进行对C# .NET通用泛型进行快速排序?
  4. 电脑小米路由器设置虚拟服务器,小米路由器在Win7系统中设置网络映射教程
  5. php论坛有哪些_建网站的软件哪个好?建网站的软件有哪些?
  6. 和菜鸟一起学linux之DBUS基础学习记录
  7. 网友评论:Struts漏洞为什么来势凶猛
  8. python输入变量输出常量_Python输入input、输出print
  9. 超酷jQuery进度条加载动画集合
  10. eclipse新建java项目_用eclipse创建Java项目(以一个初学者的角度全面教学)
  11. 家庭农场海边作弊工具的Andr​​oid的ios
  12. cachecloud 安装
  13. 买书问题的动态规划实现
  14. sql2008服务器运行哪个,SQL SERVER 2008R2 暂用服务器内存直到服务器死机。
  15. 局域网我的世界找不到服务器,我的世界局域网为什么连接不到服务器
  16. 计算广告笔记05-搜索广告与竞价广告
  17. const与const
  18. UNIX网络编程:卷2-读书笔记
  19. 数据库的基本操作(一)
  20. EBox4300 Dev Start

热门文章

  1. ISOOSI网络模型的通俗解析
  2. 全文翻译(三) TVM An Automated End-to-End Optimizing Compiler
  3. Camera噪声问题
  4. 编译器设计-符号表-中间代码生成
  5. 多篇开源CVPR 2020 语义分割论文
  6. 2021年大数据Spark(三十五):SparkStreaming数据抽象 DStream
  7. 关于python文件读写小结
  8. python 定义空集合 和定义空字典的
  9. android studio 导入库提示失败的处理方法以及androidstudio 清理缓存的方法
  10. 通过T-SQL语句实现数据库加解密功能