04 JavaScript中的運算符

技術(shù)交流QQ群:1027579432掉瞳,歡迎你的加入!

歡迎關(guān)注我的微信公眾號:CurryCoder的程序人生

1.運算符

  • 運算符也稱為操作符浪漠,是用于實現(xiàn)賦值陕习、比較和執(zhí)行算術(shù)運算等功能的符號。
  • JavaScript中常用的運算符有:
    • 算術(shù)運算符
    • 遞增和遞減運算符
    • 比較運算符
    • 邏輯運算符
    • 賦值運算符

2.算術(shù)運算符

  • 概念:算術(shù)運算使用的符號址愿,用于執(zhí)行兩個變量或值的算術(shù)運算该镣。


    算術(shù)運算符.png
  • 浮點數(shù)存在的精度問題:浮點數(shù)值的最高精度是17位小數(shù),但在進(jìn)行算術(shù)運算時响谓,其精度遠(yuǎn)遠(yuǎn)不如整數(shù)损合。
  • 不要直接判斷兩個浮點數(shù)是否相等
    console.log(1 + 1);
    console.log(1 - 1);
    console.log(1 * 1);
    console.log(1 / 1);
    // 1. % 取余運算符(取模)
    console.log(4 % 2);  // 0
    console.log(5 % 3);  // 2
    console.log(3 % 5);  // 3
    // 2. 浮點數(shù) 復(fù)數(shù)運算里面會有問題
    console.log(0.1 + 0.2);  // 0.30000000000000004
    console.log(0.07 * 100); // 7.000000000000001
    // 3. 不能直接對浮點數(shù)進(jìn)行相比較娘纷,
    var num = 0.1 + 0.2;
    console.log(num === 0.3);  // false
    
  • 怎么判斷一個數(shù)能否被整除嫁审?
    • 該數(shù)的余數(shù)是0就說明這個數(shù)能被整除,即取余運算符%的主要用途赖晶。
  • 表達(dá)式和返回值
    • 表達(dá)式:是由數(shù)字律适、運算符、變量等以能求得數(shù)值的有意義排列方法所得的組合遏插;簡單理解:是由數(shù)字捂贿、運算符、變量等組成的式子胳嘲。
    // 表達(dá)式:由數(shù)字眷蜓、運算符、變量等組成的式子胎围,稱為表達(dá)式
    console.log(1 + 1);  // 2就是返回值
    // 在程序中吁系,2 = 1 + 1德召,將右邊的表達(dá)式計算完畢,把返回值給左邊
    var num = 1 + 1;
    

3. 遞增和遞減運算符

  • 如果需要反復(fù)給數(shù)字變量添加或減去1汽纤,可以使用遞增++和遞減--運算符來完成上岗。
  • 在JavaScript中,遞增++和遞減--運算符既可以放在變量前面蕴坪,也可以放在變量后面肴掷。放在變量前面時,稱為前置遞增(遞減)運算符背传;放在變量后面時呆瞻,稱為后置遞增(遞減)運算符
  • 遞增和遞減運算符都必須和變量搭配使用径玖!
3.1 前置遞增運算符
  • ++num前置遞增痴脾,就是自加1,類似于num = num + 1梳星,但是++num寫起來更簡單赞赖。
  • 使用口訣:先自加,后返回值冤灾。
    // 1.想要一個變量自己加1, num = num + 1比較麻煩
    var num = 1;
    num = num + 1;  // ++num
    num = num + 1;
    console.log(num); // 3
    // 2.前置遞增運算符前域, ++寫在變量的前面
    var age = 18;
    ++age;  // 類似于 age = age + 1;
    console.log(age);
    // 3.先加1,后返回值
    var p = 10;
    console.log(++p + 10);  // 21
    
3.2 后置遞增運算符
  • num++后置遞增韵吨,就是自加1匿垄,類似于num = num + 1,但是num++寫起來更簡單归粉。
  • 使用口訣:先返回原值椿疗,后自加
    // 后置遞增運算符
    var num = 10;
    num++;  // num = num + 1盏浇;++num
    console.log(num);
    // 1.前置自增和后置自增如果單獨使用,效果是一樣的
    // 2.后置的自增 口訣:先返回原值芽狗,后自加1
    var age = 10;
    console.log(age++ + 10);  // 20
    
3.3 前置遞增和后置遞增小結(jié)
  • 前置遞增和后置遞增運算符可以簡化代碼的編寫绢掰,讓變量的值+1,比以前的寫法更簡單童擎;
  • 單獨使用時滴劲,運行結(jié)果相同;
  • 與其他代碼聯(lián)用時顾复,執(zhí)行結(jié)果會不同班挖;
  • 后置:先原值運算,后自加(先人后己)
  • 前置:先自加芯砸,后運算(先己后人)
  • 開發(fā)中萧芙,大多數(shù)使用后置遞增/遞減给梅,并且代碼獨占一行。例如:num++或num--双揪;

4.比較運算符

  • 概念:比較運算符(關(guān)系運算符)是兩個數(shù)據(jù)進(jìn)行比較時所使用的運算符动羽,比較運算后,會返回一個布爾值true/false作為比較運算的結(jié)果渔期。
    比較運算符.png
  • =小結(jié)
    =小結(jié).png
    console.log(3 >= 5);  // false
    console.log(4 <= 9);  // true
    // 1.程序中运吓,等于號是==,默認(rèn)轉(zhuǎn)換數(shù)據(jù)類型 會把字符串型的數(shù)據(jù)轉(zhuǎn)換為數(shù)字型疯趟,只要求值相等就可以拘哨!
    console.log(3 == 5);  //false
    console.log('curry' == 'nba'); // false
    console.log(18 == 18); // true
    console.log(18 == '18');  // true  重點!
    console.log(18 != 18);  // false
    // 2.程序中會有全等信峻,一模一樣倦青。要求兩側(cè)的值并且數(shù)據(jù)類型完全一致才可以true
    console.log(18 === 18);  // true
    console.log(18 === '18'); // false
    

5.邏輯運算符

  • 概念:邏輯運算符是用來進(jìn)行布爾值運算的運算符,它的返回值也是布爾值站欺。后面開發(fā)中經(jīng)常用于多個條件的判斷姨夹。
    邏輯運算符.png
    // 1.邏輯與:&& and 兩邊都為true,結(jié)果才是true矾策;只有有一側(cè)是false磷账,結(jié)果就是false
    console.log(3 > 5 && 3 > 2);  // false
    console.log(3 < 5 && 3 > 2);  // true
    // 2.邏輯或:|| or  兩邊都為false,結(jié)果才是false贾虽;只有有一側(cè)是true逃糟,結(jié)果就是true
    console.log(3 > 5 || 3 > 2); // true
    console.log(3 > 5 || 3 < 2); // false
    // 3.邏輯非 ! not
    console.log(!true);  // false
    
  • 短路運算(邏輯中斷):當(dāng)有多個表達(dá)式(值)時,左邊的表達(dá)式值可以確定結(jié)果時蓬豁,就不會再繼續(xù)計算右邊表達(dá)式的值绰咽。
    • 邏輯與
      • 語法:表達(dá)式1 && 表達(dá)式2
      • 如果第一個表達(dá)式的值為真地粪,則返回表達(dá)式2取募;
      • 如果第一個表達(dá)式的值為假,則返回表達(dá)式1蟆技;
    • 邏輯或
      • 語法:表達(dá)式1 || 表達(dá)式2玩敏;
      • 如果第一個表達(dá)式的值為真,則返回表達(dá)式1质礼;
      • 如果第一個表達(dá)式的值為假旺聚,則返回表達(dá)式2;
    // 1.用布爾值參與的運算true && false == false
    // 2. 123 && 456是值或者表達(dá)式參與邏輯運算眶蕉?
    // 3.邏輯與短路運算:如果表達(dá)式1結(jié)果為真砰粹,則返回表達(dá)式2;如果表達(dá)式1結(jié)果為假造挽,那么返回表達(dá)式1
    console.log(123 && 456);  // 456
    console.log(0 && 456);  // 0
    console.log(0 && 1 + 2 && 456 * 1234389); // 0
    console.log('' && 1 + 2 && 456 * 1234389); // ''
    // 如果有空的或者否定的為假碱璃,其余是真的 0 '' null undefined NaN
    
    // 4.邏輯或短路運算:如果表達(dá)式1結(jié)果為真娩缰,則返回的是表達(dá)是1作岖;如果表達(dá)式1結(jié)果為假顿苇,則返回表達(dá)式2
    console.log(123 || 456);  // 123
    console.log(123 || 789 || 893 * 34343);  // 123
    console.log(null || 8034 || 343 * 9934);  // 8043
    

6.賦值運算符

  • 概念:用來把數(shù)據(jù)賦值給變量的運算符葵第。


    賦值運算符.png
    num = 10;
    // num = num + 1;  num++
    num = num + 2;  // num += 2
    console.log(num);
    var age = 2;
    age *= 3;
    console.log(age);
    

7.運算符優(yōu)先級

運算符優(yōu)先級.png
  • 一元運算符中的邏輯非優(yōu)先級很高
  • 邏輯與比邏輯非優(yōu)先級高嘴秸;

8.資料下載

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市岳掐,隨后出現(xiàn)的幾起案子凭疮,更是在濱河造成了極大的恐慌,老刑警劉巖串述,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件执解,死亡現(xiàn)場離奇詭異,居然都是意外死亡纲酗,警方通過查閱死者的電腦和手機衰腌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來觅赊,“玉大人右蕊,你說我怎么就攤上這事∷甭荩” “怎么了饶囚?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鸠补。 經(jīng)常有香客問我萝风,道長,這世上最難降的妖魔是什么紫岩? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任规惰,我火速辦了婚禮,結(jié)果婚禮上泉蝌,老公的妹妹穿的比我還像新娘歇万。我一直安慰自己,他們只是感情好梨与,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布堕花。 她就那樣靜靜地躺著文狱,像睡著了一般粥鞋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瞄崇,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天呻粹,我揣著相機與錄音壕曼,去河邊找鬼。 笑死等浊,一個胖子當(dāng)著我的面吹牛腮郊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播筹燕,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼轧飞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了撒踪?” 一聲冷哼從身側(cè)響起过咬,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎制妄,沒想到半個月后掸绞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡耕捞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年衔掸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片俺抽。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡敞映,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凌埂,到底是詐尸還是另有隱情驱显,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布瞳抓,位于F島的核電站埃疫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏孩哑。R本人自食惡果不足惜栓霜,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望横蜒。 院中可真熱鬧胳蛮,春花似錦、人聲如沸丛晌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽澎蛛。三九已至抚垄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呆馁。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工桐经, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人浙滤。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓阴挣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親纺腊。 傳聞我的和親對象是個殘疾皇子畔咧,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

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

  • 文章配套視頻 https://study.163.com/course/introduction/10059730...
    撩課_葉建華閱讀 2,234評論 1 9
  • 01javascript語法規(guī)范 <!DOCTYPE html> javascript語法...
    ouyangqinbin閱讀 1,300評論 0 0
  • 運算符是處理數(shù)據(jù)的基本方法,用來從現(xiàn)有的值得到新的值揖膜。JavaScript 提供了多種運算符盒卸,本章逐一介紹這些運算...
    徵羽kid閱讀 659評論 0 0
  • 變量 聲明變量 命名變量區(qū)分大小寫的語言第一個字符是字母或下劃線_,數(shù)字不能作為第一個字符字符必須是字母,數(shù)字或者...
    flyingtoparis閱讀 797評論 0 0
  • 對于普通工薪人員來說次氨,固定工資意味著除了柴米油鹽之外蔽介,能有的選擇非常之少:抽不出時間去旅行、陪家人煮寡;沒有多余的資金...
    三才生閱讀 344評論 2 4