在我的日常工作中,我主要使用 C#,偶尔使用 javascript,所以请 javascript 大师不要粗暴地判断我的问题!
- Array通过提供
push
和pop
方法实现Stack, 但是peek
不见了,为什么? (是的,实现起来很简单,但仍然) - Array 实现了 Queue,但是
操作被命名为
push
-shift
或unshift
-pop
而不是enqueue
和dequeue
,为什么命名不同?这是受 Python 和 Ruby 启发的吗? - 为什么将 Array、Stack 和 Queue 的 API 合并到一个对象中,而不是分离接口(interface)并为其创建不同的对象?是因为实现便宜吗?
- 从语义上讲,在许多语言(C#、C++、Java)中,数组是内存中的一个连续 block ,并且不可调整大小。另一方面,允许轻松添加元素的基本集合是列表(ArrayList 或 LinkedList 等)。如果 Array 在 javascript 中被命名为 List 不是更好吗?
- Array 是如何在底层实现的?我在哪里可以找到非常详细的描述?
最佳答案
JavaScript 是在 10 天内发明的,从那以后就再也没有添加过 peek,主要是因为它易于实现,也许有一天。
和你知道的不一样
它是一种高级编程语言,也可以查看类型化数组
本来可以用其他方式命名的,现在已经太晚了。
它取决于引擎,主要类似于 Python
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
关于JavaScript Array、Stack、Queue——这种特定 API 设计背后的动机是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43824909/