摘要:以上的輸出的結(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)
先看下面的例子:
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
摘要:案例中的賦值就是典型的淺拷貝,并且深拷貝與淺拷貝的概念只存在于引用類型。修改修改經(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...
摘要:的出現(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)用者不知道操作...
摘要:當(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ù)...
摘要:當(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ù)...
閱讀 2318·2023-04-25 14:17
閱讀 1521·2021-11-23 10:02
閱讀 2175·2021-11-23 09:51
閱讀 880·2021-10-14 09:49
閱讀 3389·2021-10-11 10:57
閱讀 2927·2021-09-24 09:47
閱讀 3051·2021-08-24 10:00
閱讀 2303·2019-08-29 18:46