JavaScript中对象是否需要加引号?
对象的属性名是包括空字符串在内的所有字符串。
那么问题来了,我们平时定义的对象如下,是没有引号""or''的,这样不加引号有没有错呢?
答案是,加不加分情况!但加了肯定没问题...
一般情况下
一般情况下,加不加引号都一样,
var object= {
name: 'Leonardo',
'age': 21,
};
document.write('name: ' + object['name'] + '<br />');
document.write('age: ' + object.age + '<br />');
执行结果是:
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 + '<br />');
这种情况就会报错,因为如果没有引号,key就会依照标识符原则。
(1)标识符由字母、数字和下划线组成
(2)标识符的第一位必须是字母或者下划线,不能是数字
如果加上引号这是可以的,所以引号下的'key'中可以说任何字符包括空格。但同时取值也需要用[' ']的方式。
var obj = {
'123name': 'Leonardo',
}
document.write('name: ' + object['123name'] + '<br />')
;
扩展
甚至还可以这样:
var obj = {
'123name': 'Leonardo',
'': '空',
' ': '一个空格',
}
document.write('name: ' + obj['123name'] + '<br />');
document.write(obj[''] + '<br />');
document.write(obj[' '] + '<br />');
JavaScript中对象是否需要加引号?的更多相关文章
- javascript中对象字面量的理解
javascript中对象字面量与数组字面量 第一部分 我们知道JavaScript中的数据类型有基本数据类型和引用类型,其中Object类型就是非常常用的类型.那么如果创建一个Object类型的实例 ...
- 关于JavaScript中对象的继承实现的学习总结
一.原型链 JavaScript 中原型链是实现继承的主要方法.其主要的思想是利用原型让一个引用类型继承另一个引用类型的属性和方法.实现原型链有一种基本模式,其代码如下. function Super ...
- javascript中对象的深度克隆
记录一个常见的面试题,javascript中对象的深度克隆,转载自:http://www.2cto.com/kf/201409/332955.html 今天就聊一下一个常见的笔试.面试题,js中对象的 ...
- JavaScript中对象的属性
在JavaScript中,属性决定了一个对象的状态,本文详细的研究了它们是如何工作的. 属性类型 JavaScript中有三种不同类型的属性:命名数据属性(named data properties) ...
- JavaScript中对象转换为原始值的规则
JavaScript中对象转换为原始值遵循哪些原则? P52 对象到布尔值对象到布尔值的转换非常简单:所有的对象(包括数字和函数)都转换为true.对于包装对象亦是如此:new Boolean(fal ...
- 【你不知道的javaScript 上卷 笔记7】javaScript中对象的[[Prototype]]机制
[[Prototype]]机制 [[Prototype]]是对象内部的隐试属性,指向一个内部的链接,这个链接的作用是:如果在对象上没有找到需要的属性或者方法引用,引擎就 会继续在 [[Prototyp ...
- javascript中对象字面量与数组字面量
第一部分 我们知道JavaScript中的数据类型有基本数据类型和引用类型,其中Object类型就是非常常用的类型.那么如果创建一个Object类型的实例呢?下面我介绍两种方法: 第一:构造函数法. ...
- javascript中对象和数组的异同点
一.JS声明对象或数组 JS对象:{ } JS数组:[ ] 对象 var b={m:'123',n:'abc'};alert(b.m);alert(b.n); 一维数组 var a=[1,2,3];a ...
- JavaScript中对象的含义与this的指向
JavaScript中的对象:无序属性的集合 -其属性可以包含基本值.对象或函数.对象就是一组没有顺序的值.我们可以吧JavaScript中的对象想象成键值对,其中值可以是数据和函数.对象的行为和特征 ...
随机推荐
- QQFishing QQ钓鱼站点搭建
答:为什么要写这个代码? 当然不是做黑产去盗别人扣扣,也没有啥查看别人隐私信息的癖好,搭建该站点的适用对象为->使用社会工程学定向钓鱼攻击的安全渗透人员 另外管理员界面后端写的很丑+很烂,除了我 ...
- PHP中双引号引起的命令执行漏洞(Kuwebs代码审计 )
在代码审计一书中提到Kuwebs的配置文件中可以利用PHP可变变量的特性执行代码 在PHP语言中,单引号和双引号都可以表示一个字符串,但是对于双引号来说,可能会对引号内的内容进行二次解释,这就可能会出 ...
- 0、tensorflow学习开始
结合tensorflowtf 2.x , tensorflow 1.x, pytorch来深入理解深度学习架构,用博客来记录这一系列,日后也方便回顾,博客中也会加入个人理解和感悟 参考的博客列表如下: ...
- jupyterlab 增加新内核的方法ipykernel
参考: https://blog.csdn.net/C_chuxin/article/details/82690830
- Hangfire&Autofac与ASP.NET CORE注入失败
Hangfire.Autofac与ASP.NET CORE注入失败 项目里面使用了Hangfire,因为之前没用过吧,遇到了个问题,就是使用了ico容器后,再用Hangfire总是注入不上对象,总是后 ...
- C#声明一个100大小的数组 随机生成1-100之间不重复的数
面试题:C#声明一个100大小的数组 随机生成1-100之间不重复的数下面是C#的实现方式,编译测试通过 public static void InsertRandomArray() { int[] ...
- 第 4篇 Scrum 冲刺博客
一.站立式会议 1.站立式会议照片 2.昨天已完成的工作 登录信息的匹配 3.今天计划完成的工作 ①售货员页面功能 ②销售排行 4.工作中遇到的困难 ①页面按钮太过复杂,逻辑错乱 ②有的同学数据库驱动 ...
- 数组编程题(github每日一题)
/** * 随机生成一个长度为 10 的整数类型的数组,例如 [2, 10, 3, 4, 5, 11, 10, 11, 20], * 将其排列成一个新数组,要求新数组形式如下,例如 [[2, 3, 4 ...
- basic english
color/visual see look color dark light beautiful shade black blue brown clear gray green orange red ...
- docker下安装svn-server
参考资料,搭建过程比较详细:https://www.jianshu.com/p/a25fac7e7811 我按照上面资料搭建后,将其重新制作成了新的镜像theorydance/svn-server:1 ...