ECMAScript運(yùn)算符_關(guān)系運(yùn)算符&等性運(yùn)算符&條件運(yùn)算符&賦值運(yùn)算符&逗號(hào)運(yùn)算符

關(guān)系運(yùn)算符

關(guān)系運(yùn)算符小于、大于醋寝、小于等于和大于等于執(zhí)行的是兩個(gè)數(shù)的比較運(yùn)算脾歧,比較方式與算術(shù)比較運(yùn)算相同。
每個(gè)關(guān)系運(yùn)算符都返回一個(gè)布爾值:

常規(guī)比較方式

比較兩個(gè)字符串形式的數(shù)字時(shí)含蓉,比如:

var bResult = "25" < "3";
alert(bResult);             // 輸出 "true"

上面這段代碼比較的是字符串 "25" 和 "3"。兩個(gè)運(yùn)算數(shù)都是字符串项郊,所以比較的是它們的字符代碼("2" 的字符代碼是 50馅扣,"3" 的字符代碼是 51)。
不過(guò)着降,如果把某個(gè)運(yùn)算數(shù)該為數(shù)字差油,那么結(jié)果就有趣了:

var bResult = "25" < 3;     // 字符串"25"通過(guò)parseInt()轉(zhuǎn)換為數(shù)字
alert(bResult);             // 輸出 "false"

無(wú)論何時(shí)比較一個(gè)數(shù)字和一個(gè)字符串,ECMAScript 都會(huì)把字符串轉(zhuǎn)換成數(shù)字任洞,然后按照數(shù)字順序比較它們蓄喇。
不過(guò),如果字符串不能轉(zhuǎn)換成數(shù)字又該如何呢交掏?考慮下面的例子:

var bResult = "a" < 3;      // 字符串"a"通過(guò)parseInt()轉(zhuǎn)換為NaN
alert(bResult);

字母"a"不能轉(zhuǎn)換成有意義的數(shù)字妆偏。不過(guò),如果對(duì)它調(diào)用parseInt()方法盅弛,返回的是NaN钱骂。根據(jù)規(guī)則,任何包含NaN的關(guān)系運(yùn)算符都要返回false挪鹏,因此這段代碼也輸出 false见秽。
<br />

等性運(yùn)算符

ECMAScript 提供了兩套等性運(yùn)算符:等號(hào)和非等號(hào)用于處理原始值,全等號(hào)和非全等號(hào)用于處理對(duì)象讨盒。

等號(hào)和非等號(hào)(== & !=)

為確定兩個(gè)運(yùn)算數(shù)是否相等解取,這兩個(gè)運(yùn)算符都會(huì)進(jìn)行類型轉(zhuǎn)換
執(zhí)行類型轉(zhuǎn)換的規(guī)則如下:

  • 如果一個(gè)運(yùn)算數(shù)是Boolean值催植,在檢查相等性之前肮蛹,把它轉(zhuǎn)換成數(shù)字值勺择。false轉(zhuǎn)換成0,true為 1伦忠。
  • 如果一個(gè)運(yùn)算數(shù)是字符串省核,另一個(gè)是數(shù)字,在檢查相等性之前昆码,要嘗試把字符串轉(zhuǎn)換成數(shù)字(parseInt)气忠。
  • 如果一個(gè)運(yùn)算數(shù)是對(duì)象,另一個(gè)是字符串赋咽,在檢查相等性之前旧噪,要嘗試把對(duì)象轉(zhuǎn)換成字符串(toString)。
  • 如果一個(gè)運(yùn)算數(shù)是對(duì)象脓匿,另一個(gè)是數(shù)字淘钟,在檢查相等性之前,要嘗試把對(duì)象轉(zhuǎn)換成數(shù)字(parseInt)陪毡。
    在比較時(shí)米母,該運(yùn)算符還遵守下列規(guī)則:
  • 值 null 和 undefined 相等。
  • 在檢查相等性時(shí)毡琉,不能把null和undefined轉(zhuǎn)換成其他值铁瞒。
  • 如果某個(gè)運(yùn)算數(shù)是NaN,等號(hào)將返回false桅滋,非等號(hào)將返回true慧耍。
  • 如果兩個(gè)運(yùn)算數(shù)都是對(duì)象,那么比較的是它們的引用值丐谋。如果兩個(gè)運(yùn)算數(shù)指向同一對(duì)象芍碧,那么等號(hào)返回 true,否則兩個(gè)運(yùn)算數(shù)不等笋鄙。
    <br />

全等號(hào)和非全等號(hào)(=== & !==)

這兩個(gè)運(yùn)算符所做的與等號(hào)和非等號(hào)相同师枣,只是它們?cè)跈z查相等性前怪瓶,不執(zhí)行類型轉(zhuǎn)換萧落。
全等號(hào)由三個(gè)等號(hào)表示(===),只有在無(wú)需類型轉(zhuǎn)換運(yùn)算數(shù)就相等的情況下洗贰,才返回true找岖。

var sNum = "66";
var iNum = 66;
alert(sNum == iNum);    // 輸出 "true"
alert(sNum === iNum);   // 輸出 "false"

非全等號(hào)由感嘆號(hào)加兩個(gè)等號(hào)(!==)表示,只有在無(wú)需類型轉(zhuǎn)換運(yùn)算數(shù)不相等的情況下敛滋,才返回true许布。

var sNum = "66";
var iNum = 66;
alert(sNum != iNum);    // 輸出 "false"
alert(sNum !== iNum);   // 輸出 "true"

<br />

條件運(yùn)算符(?)

條件運(yùn)算符是ECMAScript中功能最多的運(yùn)算符,它的形式與Java中的相同绎晃。

variable = boolean_expression ? true_value : false_value;

如果Boolean_expression為true蜜唾,就把true_value賦給變量杂曲;如果它是false,就把false_value賦給變量袁余。
<br />

賦值運(yùn)算符(=)

簡(jiǎn)單的賦值運(yùn)算符由等號(hào)(=)實(shí)現(xiàn)擎勘,只是把等號(hào)右邊的值賦予等號(hào)左邊的變量。
每種主要的算術(shù)運(yùn)算以及其他幾個(gè)運(yùn)算都有復(fù)合賦值運(yùn)算符:

  • 乘法/賦值(*=)
  • 除法/賦值(/=)
  • 取模/賦值(%=)
  • 加法/賦值(+=)
  • 減法/賦值(-=)
  • 左移/賦值(<<=)
  • 有符號(hào)右移/賦值(>>=)
  • 無(wú)符號(hào)右移/賦值(>>>=)
    <br />

逗號(hào)運(yùn)算符(,)

用逗號(hào)運(yùn)算符可以在一條語(yǔ)句中執(zhí)行多個(gè)運(yùn)算颖榜。
例如:

var iNum1 = 1, iNum = 2, iNum3 = 3;

<br />

更多請(qǐng)參考:W3School

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末棚饵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子掩完,更是在濱河造成了極大的恐慌噪漾,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件且蓬,死亡現(xiàn)場(chǎng)離奇詭異欣硼,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)恶阴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)分别,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人存淫,你說(shuō)我怎么就攤上這事耘斩。” “怎么了桅咆?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵括授,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我岩饼,道長(zhǎng)荚虚,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任籍茧,我火速辦了婚禮版述,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘寞冯。我一直安慰自己渴析,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布吮龄。 她就那樣靜靜地躺著俭茧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪漓帚。 梳的紋絲不亂的頭發(fā)上母债,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼毡们。 笑死迅皇,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的衙熔。 我是一名探鬼主播喧半,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼青责!你這毒婦竟也來(lái)了挺据?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤脖隶,失蹤者是張志新(化名)和其女友劉穎扁耐,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體产阱,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡婉称,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了构蹬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片王暗。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖庄敛,靈堂內(nèi)的尸體忽然破棺而出俗壹,到底是詐尸還是另有隱情,我是刑警寧澤藻烤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布绷雏,位于F島的核電站,受9級(jí)特大地震影響怖亭,放射性物質(zhì)發(fā)生泄漏涎显。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一兴猩、第九天 我趴在偏房一處隱蔽的房頂上張望期吓。 院中可真熱鬧,春花似錦倾芝、人聲如沸讨勤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)悬襟。三九已至,卻和暖如春拯刁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逝段。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工垛玻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留割捅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓帚桩,卻偏偏與公主長(zhǎng)得像亿驾,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子账嚎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容