JS條件控制語句及表達(dá)式

運(yùn)算符及表達(dá)式

1)()前面不能直接寫++

console.log(++(a--));  //() 不能和++ 一起使用

2)字符串和數(shù)值進(jìn)行比較(字符串會(huì)自動(dòng)轉(zhuǎn)為數(shù)值)

  //字符串和數(shù)值進(jìn)行比較
  console.log(1 > 2); //false
  console.log('123' > 213); //false 自動(dòng)轉(zhuǎn)為number
  console.log('123A' > 213); //false 

3) 出現(xiàn)NaN 一般都是false

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

4) undefined是null的派生所以對(duì)應(yīng)的值是相等的

//undefined(null的派生子類) 和 null
  console.log(undefined==null);//true
  console.log(undefined===null);//false

5) 字符串和字符串進(jìn)行比較 (第一位ASCII碼比較 A 65 a 97)

//字符串和數(shù)值進(jìn)行比較
console.log(1>2);//false
console.log('123'>213);//false 自動(dòng)轉(zhuǎn)為number
console.log('123A'>213);//false 自動(dòng)轉(zhuǎn)為number  不能轉(zhuǎn)就會(huì)出現(xiàn)NaN 

6)布爾類型的值和null進(jìn)行比較

//boolean類型的值和null進(jìn)行比較 自動(dòng)轉(zhuǎn)數(shù)值(出現(xiàn)      NaN是false)
console.log(true>null);//(1>0) true
console.log(true>undefined);//(1>NaN )  false
// 將un為number類型
var un
    console.log(Number(un)) //NaN
    console.log(Number(null)) //0

7)恒等 這個(gè)倆個(gè)東西是一個(gè)東西(值相等 + 類型相同)

console.log(Number(true)==1); //true
console.log(Number(true)===1); //true
console.log(Boolean(0)===false); //true

9)null值及undefined跟0進(jìn)行比較

//undefined和0進(jìn)行比較
console.log(undefined == 0);//NaN false
//null是空對(duì)象引用,對(duì)應(yīng)的是一個(gè) 引用類型 
//(null是什么都沒有 销斟,而0是占據(jù)空間的)
console.log(null == 0); //false

邏輯運(yùn)算符

邏輯運(yùn)算符 : && 短路與 &斷路與 || 短路或 |斷路或 !(取非)
&& 所有的同時(shí)滿足才為真概行, 只要前面有一個(gè)是假,后面的就不會(huì)看了
|| 只要有一個(gè)為真則為真馋评, 只要前面有一個(gè)是真,后面的就不會(huì)看了

  var a = 10, b = 20,c = 30;
    //有一個(gè)是ture就是ture 不看后面的
    console.log(a > b || b < c); //ture
   //前一個(gè)是false就是false 不看后面的
    console.log(a > b && b < c); //false
    console.log(c > b && b < c); //ture

    //逊脯! 取反
    console.log(!(a > b || b < c)); //false (韧献!ture)

    // || E枪Iぁ!有一個(gè)是ture 就是ture 就取ture
    console.log(a > b || 20); //20
    var i = 0 || 20
    console.log(i); //20

    // || 兩個(gè)都是ture 取前面的一個(gè)為ture的
    var str = ' ' || "flase" || "ture"
    console.log(str);//false(' '為false)

    // || 兩個(gè)都是false 取后面的一個(gè)
    var str = ' ' || undefined
    console.log(i); //undefined
    var i = 0 || undefined
    console.log(i); //undefined
    var str = 0 || ' '
    console.log(str); // ' '

    //&& 出現(xiàn)false 关面,直接取flase  坦袍;都是ture等太, 取最后一個(gè)
    var str = undefined && ' '
    var str1 = 10 && 20
    var str2 = 0 && ' '
    var str3 = !123
    console.log(str); //undefined
    console.log(str1); //20
    console.log(str2); //0
    console.log(str3); //false (!ture)

表達(dá)式的概念:

由運(yùn)算符和操作數(shù)(變量或常量)組成的式子:

算術(shù)運(yùn)算符組成的式子叫算術(shù)表達(dá)式键闺, 如:2+3;
關(guān)系運(yùn)算符組成的式子叫關(guān)系表達(dá)式或者條件表達(dá)式, 如:a>5澈驼;
邏輯運(yùn)算符組成的式子叫做邏輯表達(dá)式辛燥, 如:a&&b

運(yùn)算符優(yōu)先級(jí)(從上到下執(zhí)行)

運(yùn)算符優(yōu)先級(jí).png

程序控制語句

1)if語法:
if(條件表達(dá)式(boolean類型的值){
需要執(zhí)行的代碼
}else if(條件表達(dá)式){
需要執(zhí)行的代碼
}else{ //上面的都不滿足的情況下
需要執(zhí)行的代碼
}

    var height = prompt('請(qǐng)輸入你的身高'); //輸入值為
    string類型
    if (!(height * 1)) {
        console.log('好好輸入 莫搞咯');
    } else if (height > 230 || height < 100) {
        console.log('hei 回爐重造吧');
    } else if (height >= 170) {
        console.log('恭喜恭喜');
    }else{
        console.log('回爐重造吧');
    }
    //進(jìn)行比較運(yùn)算時(shí),會(huì)轉(zhuǎn)為number類型比較缝其,通過ture or false 再輸出結(jié)果
  //習(xí)題練習(xí)
 //1.判斷一個(gè)整數(shù)屬于哪個(gè)范圍挎塌?
    var num = prompt("輸入一個(gè)整數(shù)");
    if (num > 0) {
        alert("num大于0");
    } else if (num < 0) {
        alert("num小于0");
    } else {
        alert("num等于0");
    }
    // 2.判斷一個(gè)數(shù)是基數(shù)還是偶數(shù)
    var num = prompt("輸入一個(gè)數(shù)");
    if (num % 2 == 0) {
        alert("這是一個(gè)偶數(shù)");
    } else {
        alert("這是一個(gè)奇數(shù)");
    }
    //3.(身高-108)*2=標(biāo)準(zhǔn)體重
    var height = prompt("輸入你的身高");
    var weight = prompt("輸入你的體重");
    var weights = (height - 108) * 2;
    if ((weights - 10 <= weight) && (weights + 10 >= weight)) {
        alert("標(biāo)準(zhǔn)體重");
    } else {
        alert("可以考慮一下健身");
    }

    //4.圓的半徑r,圓的面積是?S=pi*r*r
    var r = prompt("輸入半徑")
    // var s = pi * r * r; 
    // var s = Math.PI * r * r;
    var s =Math.pi*math.pow(r,2)
    if (Number(r > 0)) {
        alert(s.toFixed(3));
    } else {
        alert("輸入錯(cuò)誤");
    }
    //5.判斷是否為閏年内边?
    var year = prompt("輸入一個(gè)年份");
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
        alert("這是閏年");
    } else {
        alert("這是平年");
    }
    //6.輸入成績(jī)榴都,顯示獎(jiǎng)勵(lì) || score>0 || score
    var score = prompt("輸入成績(jī)");
    if (score == 100) {
        alert("爸爸買輛車");
    } else if (score >= 90) {
        alert("媽媽買MP4");
    } else if (score >= 60) {
        alert("媽媽買本書");
    }else{
        alert("啥也沒有");
    }
    //7.會(huì)員折扣
    var discount = prompt();
    if (discount >= 8000) {
        alert("打6折");
    } else if (discount >= 4000) {
        alert("打7折");
    } else if (discount >= 2000) {
        alert("打8折");
    } else {
        alert("打9折");
    }

2)switch語法:
switch(表達(dá)式){
case 值(常量): 操作 break;
case 值: 操作 break;
case 值: 操作 break;
default: 當(dāng)上面都不滿足的情況下才執(zhí)行默認(rèn)的操作
}

  //=== 判斷 值+類型
    var f = prompt()
    switch (f) {
        case "apple":
            alert("這是蘋果");
            break;
        case "banana":
            alert("這是香蕉")
            break;
        case "orange":
            alert("這是橙子")
            break;
        default:
            alert("重新輸入哦")
    }

總結(jié)

  • if 后面不一定要帶else或者else if
  • if里面的表達(dá)式如果不是對(duì)應(yīng)的boolean的表達(dá)式 他會(huì)強(qiáng)制轉(zhuǎn)換為boolean類型(自動(dòng)轉(zhuǎn)換)
  • if 里面可以嵌套if 以及相關(guān)的內(nèi)容(else else 都可以嵌套的)
  • switch 里面填寫的表達(dá)式是會(huì)返回值 這個(gè)值一般是常量
  • switch里面有case和對(duì)應(yīng)的default case表示一個(gè)個(gè)的選項(xiàng) 對(duì)應(yīng)的default表示默認(rèn)選項(xiàng)
  • 多個(gè)case可以在一行書寫 表示對(duì)應(yīng)的處理語句是一個(gè)
  • break用于跳出整個(gè)代碼塊 跳出switch (也可以跳出循環(huán)的代碼塊)
  • switch必須要有規(guī)定的值的時(shí)候才有 他不會(huì)使用到有區(qū)間的內(nèi)容(比對(duì)是恒等比對(duì))
  • if 是可以使用區(qū)間值 也可以使用固定值
  • if效率和switch效率 從一行代碼區(qū)分對(duì)應(yīng)的來說 if效率會(huì)高點(diǎn) 多行代碼區(qū)分 switch效率會(huì)高(用空間換時(shí)間)!D洹嘴高!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市和屎,隨后出現(xiàn)的幾起案子拴驮,更是在濱河造成了極大的恐慌,老刑警劉巖柴信,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件套啤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡随常,警方通過查閱死者的電腦和手機(jī)潜沦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绪氛,“玉大人唆鸡,你說我怎么就攤上這事≡娌欤” “怎么了争占?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵袄琳,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我燃乍,道長(zhǎng)唆樊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任刻蟹,我火速辦了婚禮逗旁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舆瘪。我一直安慰自己片效,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布英古。 她就那樣靜靜地躺著淀衣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪召调。 梳的紋絲不亂的頭發(fā)上膨桥,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天,我揣著相機(jī)與錄音唠叛,去河邊找鬼只嚣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛艺沼,可吹牛的內(nèi)容都是我干的册舞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼障般,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼调鲸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起挽荡,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤藐石,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后徐伐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贯钩,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年办素,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祸穷。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡性穿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出雷滚,到底是詐尸還是另有隱情需曾,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站呆万,受9級(jí)特大地震影響商源,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谋减,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一牡彻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧出爹,春花似錦庄吼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梢为,卻和暖如春渐行,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背铸董。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國打工殊轴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人袒炉。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓旁理,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親我磁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子孽文,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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