首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否最好将布尔值赋值给局部变量并重用它,或者使用if进行重复比较?

是否最好将布尔值赋值给局部变量并重用它,或者使用if进行重复比较?
EN

Stack Overflow用户
提问于 2014-07-05 14:44:21
回答 2查看 182关注 0票数 3

假设我有以下代码(Razor语法):

代码语言:javascript
运行
复制
<script type="text/javascript">
@{
    var i = 0;
    foreach (var notify in @Model)
    {
        if (i > 1) // <------ First comparison 
        {
            <text>setTimeout(function() {</text>
        }

        <text>
        // JavaScript
        </text>

        if (i > 1) // <------  Second same comparison
        {
            <text>}, 1000 * @i);</text>
        }

        i++;
    }
}
</script>

注意,对int i进行了两次比较。首先对局部变量进行比较,然后检查它的值,还是进行第二个简单的比较,这样做更好吗?如下所示:

代码语言:javascript
运行
复制
<script type="text/javascript">
@{
    var i = 0;
    foreach (var notify in @Model)
    {
        bool higherThanOne = i > 1;
        if (higherThanOne)
        {
            <text>setTimeout(function() {</text>
        }

        <text>
        // JavaScript
        </text>

        if (higherThanOne)
        {
            <text>}, 1000 * @i);</text>
        }

        i++;
    }
}
</script>

我多次遇到类似的情况,我不知道什么更好。由于不友好的Razor + JavaScript级联语法,我希望避免将代码分配给变量。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-05 15:03:58

在这种情况下,是的,为了记录,这个神奇的条件意味着什么:

代码语言:javascript
运行
复制
bool wrapInTimeout = i > 1;

别叫它higherThanOne。那将是一个无益的名字。

根据变量所代表的内容命名变量,而不是根据它们的计算方式命名。

票数 5
EN

Stack Overflow用户

发布于 2014-07-05 14:51:04

在您的情况下,比较非常简单,所以我不认为使用临时变量有任何好处,但是,如果您确实有更多相同的比较,那么您可能希望使用该变量,因为它简化了代码结构和可读性。

我还注意到,如果每次调用相同的javascript函数,实际上可以将这两个条件组合为一个:

代码语言:javascript
运行
复制
<script type="text/javascript">
@{
    var i = 0;
    foreach (var notify in @Model)
    {
        if (i > 1) // <------ First comparison 
        {
            <text>setTimeout(myFunction, 1000 * @i);</text>
        }

        i++;
    }

    <text>function myFunction(){ //your code here, if the same for all models }</text>
}
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24587532

复制
相关文章

相似问题

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