sách gpt4 ăn đã đi

连接字符串中的 Javascript 构造

In lại 作者:搜寻专家 更新时间:2023-11-01 05:04:06 31 4
mua khóa gpt4 giày nike

下面显示了一段简单的javascript:

var mystring = ("random","ignored","text","h") + ("ello world")

这个字符串会生成 hello world。我有两个问题:

  • 如何调用 ("random","ignored","text","h") 构造(它不是一个数组,因为数组有不同种类的括号?)
  • 有人可以从技术上解释为什么这个字符串会导致 hello world 吗? (即为什么只考虑构造中的“h”字符?)

câu trả lời hay nhất

您遇到了鲜为人知的 comma operator !

括号和逗号运算符创建一组按顺序求值的表达式,然后返回最后一个。所以 ('foo', 'bar') 的计算结果将只是 'thanh'。然而,因为每个表达式都被评估,(foo(), bar()) 将调用 both foo()bar( ) 在返回 thanh() 返回的值之前。

一步一步,您的代码运行为:

var mystring = ("random","ignored","text","h") + ("ello world")
var mystring = "h" + ("ello world")
var mystring = "h" + "ello world"
var mystring = "hello world"

许多(甚至大多数)语言都有此运算符,但很少使用。当使用 ES6 lambdas 作为 giảm bớt 的主体时,它会很有帮助,比如当您将数组转换为对象时:

[{key: 'a', value: 1}, {key: 'b', value: 2}].reduce((p, c) => (p[c.key] = c.value, p), {})

我不一定建议您经常使用它,因为它可能会造成混淆,而且通常有更清晰(如果更冗长)的方法来做同样的事情。

关于连接字符串中的 Javascript 构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37076071/

31 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress