gpt4 book ai didi

javascript - 请解释javascript中冒号的用法

转载 作者:可可西里 更新时间:2023-11-01 02:09:00 25 4
gpt4 key购买 nike

我正在制作一个库,我经常检查 Closure Compiler 的输出结果以了解它是如何工作的(我确实有单元测试,但我仍然喜欢查看编译后的代码以获取有关如何更好地压缩的提示).

所以,我发现了这段非常奇怪的代码,这是我以前从未见过的。

variable : {
some();
code()
}

注意:这不是对象字面量!另外,没有任何? 可以使它成为a ?: conditional .
该代码位于常规功能 block 中(IIFE)。

variable,在这种情况下,是一个 undefined variable 。 没有代码让它为真、假或其他,只是为了确保,我在里面放了一个 console.log 确实,我得到了一个 ReferenceError

请注意,我也在 IE8 中测试了我的代码,所以这不仅仅是在现代浏览器中。它似乎是标准的、普通的旧 javascript。

那么让我们来试验一下。启动 Chrome 的控制台,我得到了这个:

undeclaredVariable:{console.log('does this get logged?')} // yes it does.
trueValue:{console.log('what about this?')} // same thing.
falseValue:{console.log('and this?')} // same thing.

但是……

(true):{console.log('does this work too?')} // SyntaxError: Unexpected token :

...和...

so?{console.log('is this a conditional?')}:{alert(123)} // Unexpected token .

那么它有什么作用呢?

thisThing:{console.log('is used to declare a variable?')}
thisThing // ReferenceError: thisThing is not defined

拜托,如果有人能向我解释这段代码的用途,或者至少它的作用,我会很高兴。

最佳答案

这是一个label

Provides a statement with an identifier that you can refer to using a break or continue statement.

For example, you can use a label to identify a loop, and then use the break or continue statements to indicate whether a program should interrupt the loop or continue its execution.

您看到的另一个常见的地方是当人们在事件处理程序上粘贴美妙而无用的 javascript: 时。

关于javascript - 请解释javascript中冒号的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13868078/

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