久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

在javascript的邏輯運算中,關于--c和c--的一個小問題.

瀏覽:112日期:2023-02-06 17:08:19

問題描述

韓老師講到:

<script type=text/javascript>

var a = 3;

var b = 4;

var c = 1;

if ( a < b && --c && ++a)

{

window.alert("OK")

}

window.alert(c) // c = 0

window.alert(a) // a =3

那假若把“--c”變成“c--“”,此時c的值也是0,為什么a的值就變為4了呢?

望各位老師解答一下,謝謝!

問題解答

回答1:

--c 是先進行運算,后賦值給c ,也就是先斬后奏,當你殺他那時皇上還不知道,還認為他還沒死,所以c還是原來的c,后來稟報后才知道,他已經死了,這時c減了一。

而c-- 是減去后就賦值給c了,當時c就少一,也就是皇上親自監斬。

回答2:

對于--c時

a < b true

--c c先自減 c=0 false(0為假 非0為真)

a<b&&--c false然后就會觸發&&的“短路”不執行++a

所有c=0,a=3

對于c--

a < b true

c-- c先判斷真假再自減 所有判斷時c=1 為true 然后c自減

a<b&&--c true 不會觸發&&的"短路" 執行并判斷++a

所以c=0,a=4

回答3:

--c時,表達式左邊為false,右邊++a不進行運算,所以a的值還是3

c++時,表達式左邊為true,所以右邊++a還要進行運算,所以a的值變為4

回答4:

<script type=text/javascript>

var a = 3;

var b = 4;

var c = 1;

if ( a < b && c-- && ++a);//此時c的值也是0了,應該也為假,++a就應該不進行運算了,那么a的值應該還是3才對,為什么會進行計算了呢?

{

window.alert("OK")

}

window.alert(c) // c = 0

window.alert(a) // a =3

標簽: JavaScript
主站蜘蛛池模板: 遵义市| 淮南市| 博乐市| 大城县| 虎林市| 潢川县| 玉田县| 枞阳县| 孙吴县| 潮州市| 织金县| 榆中县| 洛扎县| 辰溪县| 永顺县| 杨浦区| 汉阴县| 聊城市| 响水县| 舒城县| 阿图什市| 嵩明县| 专栏| 巴南区| 上蔡县| 巴塘县| 新竹市| 广平县| 文山县| 景德镇市| 芒康县| 黔西| 安平县| 昌宁县| 行唐县| 蓬安县| 高州市| 山阳县| 金华市| 汶上县| 沁源县|