JS學(xué)習(xí)基本概念02之操作符總結(jié)

JS中的操作符與其他語(yǔ)言大體上是相似的符匾,這里總結(jié)一些需要注意的地方.

一元操作符

  • 一元加(+)
    在數(shù)值前面放置+對(duì)數(shù)值沒(méi)有任何影響真竖,對(duì)非數(shù)值使用+框都,具有Number()轉(zhuǎn)型函數(shù)的效果.
  • 一元減(-)操作符
    應(yīng)用于數(shù)值镣隶,該值會(huì)變成負(fù)數(shù).應(yīng)用于非數(shù)值魂那,會(huì)先遵循與+相同的規(guī)則,然后轉(zhuǎn)換為負(fù)數(shù)

布爾操作符

  • 邏輯非(!)
    在對(duì)非Boolean類型的數(shù)據(jù)使用邏輯非锌蓄,會(huì)先轉(zhuǎn)換為布爾值升筏,再求反。
    所以使用兩個(gè)!速度會(huì)模擬Boolean()的行為.
  • 邏輯與(&&)
    在有一個(gè)操作數(shù)不是布爾值的情況下瘸爽,邏輯與操作不一定返回布爾值您访,遵循以下規(guī)則:
  1. 第一個(gè)是對(duì)象,返回第二個(gè)操作數(shù)
  2. 第二個(gè)是對(duì)象剪决,則只有第一個(gè)是true時(shí)才返回該對(duì)象
  3. 第一個(gè)是null, undefined, NaN,則返回相應(yīng)的null, undefined, NaN
  • 邏輯或(||)
    在有一個(gè)操作數(shù)不是布爾值的情況下灵汪,不一定會(huì)返回布爾值,遵循以下規(guī)則:
  1. 第一個(gè)是對(duì)象柑潦,則返回第一個(gè)操作數(shù)
  2. 第一個(gè)求值結(jié)果為false,則返回第二個(gè)操作數(shù)
  3. 兩個(gè)操作數(shù)都是null, undefined, NaN,則返回相應(yīng)的null, undefined, NaN

乘性操作符

在操作數(shù)不為數(shù)值的時(shí)候享言,會(huì)執(zhí)行自動(dòng)的類型轉(zhuǎn)換.

  • 乘法()
    除了
    "遵循NaN參與的任何操作,結(jié)果都是NaN"*之外渗鬼,其他情況大部分都是正常值或者Infinity-Infinity.
    只有一種情況: Infinity與0相乘览露,結(jié)果為NaN

  • 除法(/)
    有兩種情況是NaN

  1. 零被零除--> NaN
  2. Infinity 被 Infinity 除--> NaN
  • 取模(%)
  1. 被除數(shù)無(wú)窮大而除數(shù)有限大,則為NaN
  2. 被除數(shù)無(wú)窮大而除數(shù)為0譬胎,則為NaN
  3. Infinity被Infinity除差牛,則為NaN
  4. 被除數(shù)有限大而除數(shù)無(wú)窮大命锄,結(jié)果為被除數(shù)
  5. 被除數(shù)為0,結(jié)果為0

加性操作符

  • 加法
  1. Infinity加-Infinity多糠,結(jié)果為NaN
  2. 有一個(gè)是字符串累舷,則另一個(gè)數(shù)轉(zhuǎn)換為字符串浩考,然后拼接
  3. 如果有一個(gè)操作數(shù)是對(duì)象或者數(shù)值或布爾值夹孔,另一個(gè)操作數(shù)是字符串,則將非字符串轉(zhuǎn)換為字符串析孽,對(duì)于undefined和null搭伤,使用String()轉(zhuǎn)換為字符串
  • 減法
  1. Infinity - Infinity = NaN
  2. -Infinity - (-Infinity) = NaN
  3. 有一個(gè)操作數(shù)是數(shù)值,另一個(gè)操作數(shù)為非數(shù)值袜瞬,則轉(zhuǎn)換為數(shù)值.

總結(jié):加法中怜俐,如果有一個(gè)字符串,則優(yōu)先將另一個(gè)轉(zhuǎn)換為字符串邓尤,減法中拍鲤,如果有一個(gè)是數(shù)值,則優(yōu)先將另一個(gè)轉(zhuǎn)換為數(shù)值

關(guān)系操作符

關(guān)系操作符有小于(<),大于(>),小于等于(<=)和大于等于(>=),優(yōu)先比較的數(shù)據(jù)類型是數(shù)值汞扎,返回布爾值

  1. 兩個(gè)操作數(shù)都是數(shù)值季稳,則比較數(shù)值大小
  2. 兩個(gè)操作數(shù)都是字符串,則比較第一個(gè)字符的編碼
  3. 有一個(gè)數(shù)值澈魄,將另一個(gè)轉(zhuǎn)換為數(shù)值景鼠,進(jìn)行比較
  4. 注意:比較時(shí) null轉(zhuǎn)換為0 ,undefined轉(zhuǎn)換為NaN

相等操作符

主要分為相等(==)和全等(===),區(qū)別在于相等操作符操作之前會(huì)進(jìn)行類型的轉(zhuǎn)換痹扇,全等操作符不會(huì)進(jìn)行類型轉(zhuǎn)換铛漓。
相等操作符優(yōu)先進(jìn)行數(shù)值的比較

  1. 一個(gè)操作數(shù)是字符串,另一個(gè)是數(shù)值鲫构,則轉(zhuǎn)換為數(shù)值再比較
  2. 一個(gè)是對(duì)象浓恶,則調(diào)用valueOf()方法,再比較
  3. 在比較相等性之前结笨,null和undefined不能轉(zhuǎn)換為其他任何值问顷,而在關(guān)系比較時(shí),null會(huì)轉(zhuǎn)換為0禀梳,undefined會(huì)轉(zhuǎn)換為NaN
    如下
var a = null;
console.log(a == 0);       //false,因?yàn)閚ull不能轉(zhuǎn)化為其他
console.log(a >= 0);       // true, 因?yàn)樵陉P(guān)系操作符中杜窄,null轉(zhuǎn)換為0
console.log(a <= 0);       // true, 因?yàn)樵陉P(guān)系操作符中,null轉(zhuǎn)換為0
  1. 在對(duì)象的比較中算途,只有兩個(gè)操作數(shù)指向同一個(gè)對(duì)象塞耕,才會(huì)返回true
  2. 全等(===)操作符則兩個(gè)操作數(shù)必須完全相同才會(huì)返回true

條件操作符

就是常見(jiàn)的expression ? true_value : false_value

賦值操作符

  • *=
  • /=
  • +=
  • -=
  • %=
  • <<=
  • >>=
  • >>>=
    這些操作符只是簡(jiǎn)單而已,沒(méi)有性能上的提升

逗號(hào)操作符

使用逗號(hào)操作符可以在一條語(yǔ)句中執(zhí)行多個(gè)操作

var num = 1,num2 = 2,num3 = 3;

還可以用于賦值嘴瓤,在用于賦值時(shí)扫外,總會(huì)返回最后一項(xiàng)

var num = (5,4,3,2,0);    // num的值為0
最后編輯于
?著作權(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)容