gpt4 book ai didi

不带参数或括号的 JavaScript 切片(CodeMirror sql-hint.js 中的代码)

转载 作者:行者123 更新时间:2023-12-02 15:32:55 27 4
gpt4 key购买 nike

我正在改编来自优秀的 CodeMirror 的 sql-hint.js 代码为了我的邪恶计划......

但是我遇到了一行超出我能力范围的 JavaScript。我不明白它,也找不到任何解释它的内容。

它位于 CodeMirror-master\addon\hint\sql-hint.js 中的第 34 行,如下所示:

function getItem(list, item) {
if (!list.slice) return list[item]; // <--- THIS LINE!!!!!
for (var i = list.length - 1; i >= 0; i--) if (getText(list[i]) == item)
return list[i];
}

我不明白的命令是这样的:

if (!list.slice)

没有参数,也没有括号。这里到底发生了什么?我认为魔法...

请注意,它没有这么说:

if (!list.slice())

最佳答案

JavaScript 是一种真/假语言,这意味着我们可以根据某些标准断言给定对象是真还是假。在 JavaScript 中,始终报告为 false 的值有:false0(零) ""(空字符串)null未定义NaN

此处的检查旨在查明 list.slice 是否为 undefined,如果是,则返回索引 item 处的列表项.

如果您要console.log(list.slice),您会期望类似function () {}的内容。但我们不想调用该函数,因为如果 slice 未定义,调用将会失败。

关于不带参数或括号的 JavaScript 切片(CodeMirror sql-hint.js 中的代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165787/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com