gpt4 book ai didi

javascript - 为什么我的错误 if 语句有效?

转载 作者:行者123 更新时间:2023-12-03 10:33:48 25 4
gpt4 key购买 nike

我最近遇到以下语法错误:

if (button=="init" || "show_selected" || "show_all") {

当然这应该是:

if (button=="init" || button=="show_selected" || button=="show_all") {

然而,最初的声明似乎在 Chrome、FF 和 IE9 中完美运行!?!?我只是在添加新选项时偶然发现了我的错误。

澄清一下,“init”、“show_selected”和“show_all”是调用函数时使用的字符串参数;例如

onclick=myFunction("init");

我确信我记得在学习 JS 时很早就尝试过这种速记方式,但很快就发现它行不通

无论如何,我已经更正了代码,但令我烦恼的是我不明白它为什么起作用。

有人能解开这个谜团吗?

最佳答案

当然它会起作用,并且它总是会起作用,因为你的条件将始终true:

if (button=="init" || "show_selected" || "show_all")

将始终给出 true,因为 "show_selected" 是一个字符串,如果您将其作为 if 语句条件传递,它将始终为 true,您的代码将按如下方式计算:

if (button=="init" || true || true) // Will always be true

因为编写 if ("show_all") 相当于 if ("show_all"!== null) ,即 true

例如,试试这个:

if ("show_all"){ //returns true (the statement is true)
alert(true);
}

关于javascript - 为什么我的错误 if 语句有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29095751/

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