国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

徹底理解 i++ 與 ++i 的區(qū)別

edgardeng / 940人閱讀

摘要:以上的輸出的結(jié)果是先看來看看他們的語法定義前置遞增遞減執(zhí)行前置遞增和遞減操作時(shí),變量的值都是在語句被求值以前遞減遞增的。在計(jì)算機(jī)科學(xué)領(lǐng)域,這種情況通常被稱作副效應(yīng)。

var j=0;
for (i=0;i<100;i++){
    j=j++;
}
console.log(j);

以上的輸出的結(jié)果是 0;先看來看看他們的語法定義:

前置遞增遞減 ++i / --i

執(zhí)行前置遞增和遞減操作時(shí),變量的值都是在語句被求值以前遞減遞增的。(在計(jì)算機(jī)科學(xué)領(lǐng)域,這種情況通常被稱作副效應(yīng)。)請(qǐng)看下面這個(gè)例子。

let age=29;
let newAge= --age + 2
console.log(age);
console.log(newAge);

前置遞增遞減遇到有賦值操作時(shí): 先遞減(29-1),再計(jì)算表達(dá)式的值(28加上2)

后置遞增遞減 i++ / i--

后置遞增和遞減與前置遞增和遞減有一個(gè)非常重要的區(qū)別,即遞增和遞減操作是在包含它們的語句被求值之后才執(zhí)行的

let age=29;
let newAge= age-- + 2
console.log(age);
console.log(newAge);

后置遞增遞減遇到有賦值操作時(shí): 先計(jì)算表達(dá)式的值(29+2=31),再遞減(29-1)

他們有什么區(qū)別

先看下面的例子:

var j=0;
for (i=0;i<100;i++){
    j++;
}
console.log(j);

var j=0;
for (i=0;i<100;i++){
    ++j;
}
console.log(j);

可以看出 沒有賦值等其他操作時(shí), 其實(shí)++i與i++是沒有區(qū)別的
但是,當(dāng)遞增遞減語句中包含其他操作時(shí):
前置遞增遞減:

let num1=1;
let num2=2;
let num3=++num1+num2;
let num4=num1+num2;
console.log(num3);
console.log(num4);


后置遞增遞減:

let num1=1;
let num2=2;
let num3=num1++ + num2;
let num4=num1+num2;
console.log(num3);
console.log(num4);


包括上方的age例子 我們看出同樣的求值,出現(xiàn)了不同的結(jié)果;
我們可以看出 前置遞增使用了遞增后的值(num1 遞增后為2)同num2相加得到4;后置遞增使用了遞增前的值(num1為1)同num2 相加得到3
至此,我們就可以可以明白文章開始例子中j=j++; 之后循環(huán)的值為什么一直是0

j=j++;可以理解為 j = j 遞增前的值; 而遞增前的值為0;因此j 每次循環(huán)都恒等于0;改為前置遞增則可以解決這個(gè)問題:

var j=0;
for (i=0;i<100;i++){
    j=++j;
}
console.log(j);


墻裂推薦,為了方便理解在非在必要條件下建議避免書寫i=i++;這樣的賦值語句

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/104033.html

相關(guān)文章

  • 低門檻徹底理解JavaScript中深拷貝和淺拷貝

    摘要:案例中的賦值就是典型的淺拷貝,并且深拷貝與淺拷貝的概念只存在于引用類型。修改修改經(jīng)測(cè)試,也只能實(shí)現(xiàn)一維對(duì)象的深拷貝。經(jīng)過驗(yàn)證,我們發(fā)現(xiàn)提供的自有方法并不能徹底解決的深拷貝問題。 在說深拷貝與淺拷貝前,我們先看兩個(gè)簡(jiǎn)單的案例: //案例1 var num1 = 1, num2 = num1; console.log(num1) //1 console.log(num2) //1 num...

    wind3110991 評(píng)論0 收藏0
  • 一文讓你徹底理解 Java NIO 核心組件

    摘要:的出現(xiàn)解決了這尷尬的問題,非阻塞模式下,通過,我們的線程只為已就緒的通道工作,不用盲目的重試了。注意要將注冊(cè)到,首先需要將設(shè)置為非阻塞模式,否則會(huì)拋異常。 同步、異步、阻塞、非阻塞首先,這幾個(gè)概念非常容易搞混淆,但NIO中又有涉及,所以總結(jié)一下[1]。 同步:API調(diào)用返回時(shí)調(diào)用者就知道操作的結(jié)果如何了(實(shí)際讀取/寫入了多少字節(jié))。 異步:相對(duì)于同步,API調(diào)用返回時(shí)調(diào)用者不知道操作...

    guyan0319 評(píng)論0 收藏0
  • 深入前端-徹底搞懂瀏覽器運(yùn)行機(jī)制

    摘要:當(dāng)這些異步任務(wù)發(fā)生的時(shí)候,它們將會(huì)被放入瀏覽器的事件任務(wù)隊(duì)列中去,等到運(yùn)行時(shí)執(zhí)行線程空閑時(shí)候才會(huì)按照隊(duì)列先進(jìn)先出的原則被一一執(zhí)行,但終究還是單線程。 瀏覽器是多進(jìn)程的 showImg(https://segmentfault.com/img/remote/1460000019706956?w=815&h=517); Browser進(jìn)程: 瀏覽器的主進(jìn)程(負(fù)責(zé)協(xié)調(diào)、主控),只有一個(gè)。 負(fù)...

    YPHP 評(píng)論0 收藏0
  • 深入前端-徹底搞懂瀏覽器運(yùn)行機(jī)制

    摘要:當(dāng)這些異步任務(wù)發(fā)生的時(shí)候,它們將會(huì)被放入瀏覽器的事件任務(wù)隊(duì)列中去,等到運(yùn)行時(shí)執(zhí)行線程空閑時(shí)候才會(huì)按照隊(duì)列先進(jìn)先出的原則被一一執(zhí)行,但終究還是單線程。 瀏覽器是多進(jìn)程的 showImg(https://segmentfault.com/img/remote/1460000019706956?w=815&h=517); Browser進(jìn)程: 瀏覽器的主進(jìn)程(負(fù)責(zé)協(xié)調(diào)、主控),只有一個(gè)。 負(fù)...

    Youngs 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<