【问题标题】:How we have a return value of pop() function in JavaScript?我们如何在 JavaScript 中获得 pop() 函数的返回值?
【发布时间】:2021-12-28 06:46:41
【问题描述】:

最近在学习C++背景的JS时,发现数组的pop()函数在JS中有返回值。

现在,在 C++ 中,我们没有 pop_back() 方法的返回值,因为根据 Cargill 的一篇论文,不可能像回答 here 那样设计一个异常安全的堆栈弹出函数

那么在 JS 中是如何工作的还是我遗漏了什么?

【问题讨论】:

  • “那么 JS 的工作情况如何” — specification 可以回答这个问题。

标签: javascript c++ arrays


【解决方案1】:

JavaScript 中没有出现任何“T 引发的异常”情况,因为根本没有调用赋值或构造运算符。 JavaScript 是一种垃圾收集语言,所以一切都是实际对象的句柄。 调用 pop 只是将数组缩小 1 并返回存在的句柄,而无需执行任何其他操作。

如果你想用 C++ 来推理它,一切都是 std::shared_ptr<T>,所以 pop 只需将其移动构造为它的返回值,这是无异常的。

【讨论】:

    猜你喜欢
    • 2012-11-11
    • 2022-07-04
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    相关资源
    最近更新 更多