首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有一个JavaScript等同于PHP的"or“运算符?

有没有一个JavaScript等同于PHP的"or“运算符?
EN

Stack Overflow用户
提问于 2018-07-21 06:39:57
回答 4查看 87关注 0票数 0

在PHP中,如果第一个表达式的计算结果为falsey,则可以使用"or“关键字来执行函数:

代码语言:javascript
复制
<?php
(1 == 2) or exit("error: 1 does not equal 2");
?>

在JavaScript中有没有类似的东西,像PHP示例一样是一个很好的一行程序?

在JavaScript中,我能想到的最好的方法是一个辅助函数,其中参数1是要计算的条件,参数2可以是字符串,也可以是函数。如果参数1为false,参数2为字符串,则函数将抛出一个错误,并将该字符串作为错误消息。如果参数2是一个函数,则该函数将被执行:

代码语言:javascript
复制
<script>
function or(condition, err_msg_or_function) {
    if (typeof (condition) !== "boolean") {
        throw new Error("or error: argument 1 must be boolean");
    } else {
        if (!condition) {
            if (typeof (err_msg_or_function) === "function") {
                err_msg_or_function();
            } else if (typeof (err_msg_or_function) === "string") {
                throw new Error(err_msg_or_function);
            } else {
                throw new Error("or error: argument 2 must be a function or a string");
            }
        }
    }
}
</script>

在实践中:

代码语言:javascript
复制
<script>
or((1 == 2), "error: 1 does not equal 2");
</script>

有没有更好的方法呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-07-21 11:04:06

代码语言:javascript
复制
(1 == 2) || alert("error: 1 does not equal 2");
票数 1
EN

Stack Overflow用户

发布于 2018-07-21 10:38:40

Stack Overflow用户

发布于 2018-07-21 06:56:53

代码语言:javascript
复制
false === true || document.write('By using this we can perform the same thing with PHP')



(1===1) === (2===2) || document.write('we can replace the booleans by operators')

如果你正在寻找像这样的东西,试试这个……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51451220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档