写val ++和if()的简写

时间:2016-04-26 13:22:53

标签: javascript

我在加载每个txt文件末尾执行doSome(),然后在val等于num时运行$('#holder').load('item[i].txt',function(){ val++; if(val==num){ doSome(); } }

val++;
if(val==num){
    doSome();
}

如何写这个速记?

<h1>Employee</h1>
<fieldset>
    <h2>Employee Information</h2>
    <div class="row">
        <div class="col-lg-6">
            <div class="form-group">
                <label>Name</label>
                <input id="name" name="name" type="text" class="form-control required">
            </div>
            <div class="form-group">
                <label>Date</label>
                <input id="todaysDate" name="todaysDate" type="text" class="form-control required">
            </div>
        </div>
        <div class="col-lg-6">
            <div class="form-group">
                <label>Job Title</label>
                <input id="title" name="title" type="text" class="form-control required email">
            </div>
            <div class="form-group">
                <label>Department</label>
                <input id="department" name="department" type="text" class="form-control">
            </div>
        </div>
        <div class="col-lg-6">
            <div class="form-group">
                <label>Date Hired</label>
                <input id="hiredDate" name="hiredDate" type="text" class="form-control required email">
            </div>
            <div class="form-group">
                <label>Termination Date</label>
                <input id="termDate" name="termDate" type="text" class="form-control">
            </div>
        </div>
    </div>
</fieldset>

4 个答案:

答案 0 :(得分:3)

val++已经(基本上)是val = val + 1;

的简写

您可以使用&&替换if

val == num && doSome();

(MDN: && Shortcut operation)

导致:

$('#holder').load('item[i].txt',function(){
   val++;
   val == num && doSome();
}

就个人而言,出于可读性目的,我更喜欢将增量和条件放在单独的行上。

另一个建议:如果if语句仅用于1行代码,{}语句(if)的括号是可选的:

if(condition) {
    doSomething();
}

可以缩短一点:

if(condition)
    doSomething();

答案 1 :(得分:2)

使用预增量运算符

if (++val === num) {
    //code here
}

首先将val增加1,然后将更新后的值与num变量进行比较。

答案 2 :(得分:1)

Pre-increment可以在variable的值首先递增然后返回时使用,而在Post-increment中,variable的值先返回然后递增。

if (++val == num) {
  doSome();
}

答案 3 :(得分:-1)

所以...也许这个? :) ++val ^ num || doSome();

^(XOR)是一个按位运算符。如果两个操作数相同,则返回0。例如2^2 = 0

因此,您可以首先以这种方式预先增加val++val。然后你可以对num进行XOR运算,当它们相等时 - 它将返回0,在js的逻辑语句中被认为是false。然后,当||运算符的左侧为false时,它将执行此语句的正确部分 - doSome()

顺便说一下,有一件有趣的事情:例如,如果禁用代码优化,在C ++中以这种方式将0分配给变量是非常有效的:a ^= a而不是a = 0