js对象key是否可以是字符串,数字

JavaScript018

js对象key是否可以是字符串,数字,第1张

可以是数字,object对应的key没有限制,只是如果是数字,取值的时候就不能用英文句号(.),只能用[]的方式取值。

举例:

<script>

var obj={1:3}//这里1就是一个数组的key

alert(obj[1]+2)//取值的时候需要用[],而不能用obj.1的方式

</script>

原文:

https://my.oschina.net/u/3888522/blog/1831525

比如name:take,old:13这个key就是指name和old。而值就是指take和13。

尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的脚本语言来推广和宣传,但是JavaScript具有非常丰富的特性。

1997年,在ECMA(欧洲计算机制造商协会)的协调下,由Netscape、Sun、微软、Borland组成的工作组确定统一标准:ECMA-262。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,浏览器对象模型。

产生背景:

JavaScript最初由Netscape的Brendan Eich设计,最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”。

因此语法上有类似之处,一些名称和命名规范也借自Java,但JavaScript的主要设计原则源自Self和Scheme。JavaScript与Java名称上的近似,是当时Netscape为了营销考虑与Sun微系统达成协议的结果。微软同时期也推出了JScript来迎战JavaScript的脚本语言。

发展初期,JavaScript的标准并未确定,同期有Netscape的JavaScript,微软的JScript和CEnvi的ScriptEase三足鼎立。为了互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript),两者都属于ECMAScript的实现。

obj['key'],点"."

1 .出现的bug,如果这个key的值是false,这里就会判断没有,或者value是undefined也一样

2 .可以看到这俩都不行

3 .如果对象上不存在改属性,则会返回undefined.这种方式可以判断对象的自由属性和继承属性.如果对象自身没有检测的属性,而原型链上有该属性,就会返回原型链上的属性值

1 .返回一个布尔值,指示对象自身属性是否有指定的属性

2 .原型链上的不会被访问到,和in不同,会忽略到从原型链上继承到的属性

3 .即使属性的值是null,undefined,只要属性存在,hasOwnProperty依旧会返回true

4 .注意:这个方法没有被保护,也就是说方法可以自定定义一个这样的方法,来让他的返回值永远是true或者false

1 .!!('work' in obj)

2 .如果指定的属性在指定的对象或其原型链中,则in 运算符返回true

3 .使用delete删除的属性返回false

4 .值为undefined的属性是可以的

1 .和in方法完全一样,但是第一个参数不是对象会报错

2 .这个方法更加形象

3 .原型链上的方法同样可以会返回true

1 .判断指定名称的属性是否为实例属性并且是可枚举的.

2 .

1 .也就是说,判断自身属性的时候用除了in的所有方法,判断继承属性使用in

2 .