亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

JavaScript中的操作符和判斷規(guī)則的介紹

時間:2020-11-18 19:32:53 JavaScript 我要投稿

JavaScript中的操作符和判斷規(guī)則的介紹

  JavaScript中,==與===操作符均可用于判斷兩個值是否相等;不同之處在于,如果進(jìn)行判斷的兩個值類型不一致,===操作符會直接返回false,而==操作符則會在類型轉(zhuǎn)換后再進(jìn)行判斷。詳細(xì)的判斷規(guī)則如下:

  ===操作符的判斷規(guī)則

  1.如果兩個值的類型不一致,返回false。

  2.如果兩個值的類型一致,值一致,返回true。NaN是一個特例,NaN===NaN返回false。

  3.如果兩個值均為object類型,那么與Java一樣,除非兩者引用一致(reference指向同一個對象地址),不然即使object中的內(nèi)容完全一樣,也認(rèn)為這兩個值不一致,相應(yīng)的操作將返回false。比如,新建兩個內(nèi)容完全一樣的`數(shù)組,對它們進(jìn)行===操作后返回結(jié)果為false — 雖然它們的內(nèi)容完全一樣,但還是屬于兩個不同的對象。

  4.0===-0返回true。

  ==操作符的判斷規(guī)則

  ==操作符會將值進(jìn)行類型轉(zhuǎn)換后再進(jìn)行比較,其類型轉(zhuǎn)換遵循以下原則:優(yōu)先轉(zhuǎn)換成number后進(jìn)行比較,Date對象則優(yōu)先轉(zhuǎn)換成string后進(jìn)行比較。具體判斷規(guī)則如下:

  1.如果兩個值類型一致,執(zhí)行===操作后返回。

  2.null==undefined為true。

  3.true將轉(zhuǎn)換成1后進(jìn)行比較,false將轉(zhuǎn)換成0后進(jìn)行比較。

  4.如果其中一個值為對象,則將其轉(zhuǎn)換成number后再進(jìn)行比較,Date對象除外。

  5.如果其中一個值為Date對象,則將其轉(zhuǎn)換成string后再進(jìn)行比較。

  實驗

  復(fù)制代碼 代碼如下:

  console.log("3" === 3);//false

  console.log(NaN === NaN);//false

  var a = {x:1, y:2};

  var b = {x:1, y:2};

  var c = a;

  console.log(a === b);//false

  console.log(a === c);//true

  console.log(0 === -0);//true

  console.log("3" == 3);//true

  console.log(null == undefined);//true

  console.log(true == 1);//true

  console.log(true == 9);//false

  console.log([9] == 9);//true

  console.log([9] == "9");//true

  var d = new Date();

  var s = d.toString();

  var n = d.valueOf();

  console.log(d == s);//true

  console.log(d == n);//false