当前位置: 首页 > 面试题库 >

Javascript数组是原语吗?

甄阿苏
2023-03-14
问题内容

数组仅仅是伪装的对象吗?为什么/为什么不呢?它们以什么方式(这样/不是)?

我一直认为JS中的数组和对象本质上是相同的,主要是因为访问它们是相同的。

var obj = {'I': 'me'};
var arr = new Array();
arr['you'] = 'them';

console.log(obj.I);
console.log(arr.you);
console.log(obj['I']);
console.log(arr['you']);

我误导/误会/错误吗?关于JS文字,原语和字符串/对象/数组/等等,我需要了解什么?

数组/对象仅仅是变相的字符串吗?为什么/为什么不呢?它们以什么方式(这样/不是)?


问题答案:

数组是对象。

但是,与常规对象不同,数组具有某些特殊功能。

  1. 数组在其原型链中还有一个附加对象,即Array.prototype。该对象包含可以在数组实例上调用的所谓Array方法。

  2. 数组具有一个length属性(该属性是实时的,ergo,它会自动更新)(

  3. 数组具有用于定义新属性的特殊算法。如果你设置一个新的属性到一个数组和属性的名称是可以强制转换为一个整数刺(如'1''2''3',等),那么特殊算法应用(它是在规范中定义第123页)

除了这三件事,数组就像常规对象一样。



 类似资料:
  • 问题内容: 使用Mockito,我想在其参数列表中使用方法调用,但是我没有找到如何编写该方法的方法。 我只想要像Mockito那样的东西? 问题答案: 我会尝试

  • 问题内容: 在玩完ES6之后,我真的开始喜欢可用的新语法和功能,但是我确实对类有疑问。 新的ES6类只是旧原型模式的语法糖吗?还是幕后还有更多事情要做?即: vs: 问题答案: 是的,也许,但是一些语法糖有牙齿。 声明一个类将创建一个函数对象,该函数对象是该类的构造函数,并使用在类主体内提供的代码以及与该类同名的命名类。 类构造函数具有一个普通的原型对象,类实例以常规的JavaScript方式从该

  • 问题内容: 如果方法具有局部变量: 然后分配一个新值: 这会分配一个新的内存位置吗?还是只替换原始值? 这是否意味着基元是不可变的? 问题答案: 这会分配一个新的内存位置吗?还是只替换原始值? Java并没有真正保证变量将与内存位置相对应。例如,如果编译器发现您从未真正使用过它的值,或者如果它可以在代码中进行跟踪,则您的方法可能以存储在寄存器中的方式进行了优化,或者甚至根本不存储。直接使用适当的值

  • 本文向大家介绍JavaScript中判断原生函数检查function是否是原生代码,包括了JavaScript中判断原生函数检查function是否是原生代码的使用技巧和注意事项,需要的朋友参考一下 我总是经常碰到需要检查某个function是否是原生代码的情况 —— 这是功能测试中一个很重要的内容: 函数是浏览器内置支持的,还是通过第三方类库模拟的。要检测这一点,最简单的办法当然是判断函数的 t

  • 数组是一种使用整数作为键(integer-key-ed)属性和长度(length)属性之间关联的常规对象。此外,数组对象还继承了 Array.prototype 的一些操作数组的便捷方法。——MDN 数组可以存放多个值。数组的数不是指数字,而是指数据,数组可以存放任意数据类型的值。 从理论上讲,在内存允许的情况下,数组的长度是无限的。 1. 创建数组 数组由中括号 [] 包裹,每一项之间用逗号 ,

  • 问题内容: 我在这个项目中使用Rhino的javax.scripting。 我有一个Java方法可返回Java对象(Double,Long,Integer等)。我想从javascript调用该方法,并将结果作为Javascript基本类型引用。但是,javacript会将返回类型识别为Object。 如何强制将其转换为JavaScript原语? 这个问题与http://groups.google.