5-3 邏輯運算子 位元運算子
Lesson: 5-3 邏輯運算子 位元運算子
5-3 邏輯運算子 位元運算子
Original: https://course.andys.pro/Javascript-Intro/05-3-logic-operator-bit-operator/
講義
1. 邏輯運算子 (Logical Operators)
&&(AND):且。只有當兩邊都為true時,結果才為true。||(OR):或。只要其中一邊為true,結果就為true。!(NOT):非。將布林值反轉。!true➝false。
- 雙重否定 (
!!):- 技巧:將任何值強制轉換為布林值。
- 範例:
!!undefined➝false,!!123➝true。 - 用途:快速檢查變數是否有值 (非
null,undefined,0等)。
2. 條件運算子 (Conditional / Ternary Operator)
- 又稱「三元運算子」,是唯一需要三個運算元的運算子。
- 語法:
條件式 ? 值1 : 值2- 如果條件為 真 (true),回傳 值1。
- 如果條件為 假 (false),回傳 值2。
- 範例:
var score = 80; var status = (score >= 60) ? "及格" : "不及格"; // status 為 "及格" - 應用:設定預設值。
var result = value ? value : 0;(若 value 有值則用之,否則預設為 0)。
3. 位元運算子 (Bitwise Operators) (補充)
- 直接對二進位位元進行運算,如
&,|,^(XOR),~,<<,>>。 - 雖在一般網頁開發較少用,但在處理低階資料或效能優化時可能會遇到。
4. 運算子優先順序 (Precedence)
- 算術
* / + -> 關係> < >=> 邏輯&& ||> 條件? : - 建議:若不確定順序,多使用括號
()來明確指定運算順序,增加程式碼可讀性。
影片逐字稿 (AI 生成)
接下來我們進入 五之三 邏輯運算值那我們要看邏輯運算值 衛生運算值 還有其他類型的運算值我們就把運算值都做完了好 首先這邊 這邊其實蠻難的喔大家要注意一下喔欸 為什麼說不清好要縮小 好好那這邊有一個東西叫做 End End它是一個如果兩邊都是True的話 回傳True如果一邊是False的話 回傳False然後我又崩潰了 你看這個True 大寫大寫小寫小寫大寫大寫 大寫小寫喔 哈主要呢 End End 我們要知道一件事情就是說 End 是什麼意思我這邊要畫圖了就當我們是 End End End 的標格好 那我前面如果是 這邊是 True 對不對我自己要寫小寫 不好意思就我這邊有一個 True然後有一個 False然後我們把它畫格子畫起來然後我這邊是 True這邊是 False這個是False然後這個是前這個是後好那我 True True的話 它結果是 TrueOK End End 的來講的話True False 結果是 False然後False然後FalseFalse 結果是FalseOK你以一個翻格的角度來看的話 是這樣好的那你以一個交集的角度來看不會有兩個圈圈對不對然後呢然後呢中間這個叫做 End End那個高中數學就兩個都要是都有才可以這樣可以理解嗎End End 就是要這樣OK那 Or 條件就是沒有那麼挑啦就是其中有一個好就好了這樣子這是 Or然後這邊是 True這邊是 False我的先慢一點這邊這邊是 False好我的鬼話譜那這邊呢Or的情況下是只要有一個是 True就可以就比如說我要找一個男朋友身高180而且而且短頭髮那就是而且的情況下就是同時要滿足有180也要有短頭髮對不對那如果是貨者的話我要一個男朋友呃身高180或者短頭髮那你可以找什麼你可以找身高180長頭髮給他或是呃 身高低於180然後短頭髮給他對不對所以這就是或者那這個 End 就是And 就是And 就是兩者都要為事那他的在邏輯上的框框來看的話我們看到的就是這樣就是兩個都有那其中一個為事就可以了這樣可以理解嗎好然後Short circuitEvaluation我有放補充連結大家可以去看一下那NAT呢就是NAT很簡單嘛就是比如說你今天有一個呃VarA等於TrueOK那呃NATA就是False可以這樣OK嗎簡單嘛對不對那NATNAT就是TrueOK欸那今天老實在玩一個十二NATNATA是False喔NATNATA是True喔所以你十二轉換就變成什麼你用兩個就變成是True那什麼時候會是False就是當你的數字是0的時候的NAT才會是什麼才會是TrueOK所以有時候我們會做一些很有趣的運算比如說就是我會拿一個變數然後拿一個變數直接要確保他就是比如說還有一些值啊就比如說像Undefine對不對那我這樣子是不是他也是False然後我NAT然後我把它加兩個驚嘆號他也是False有沒有然後我還有什麼NAT然後兩個驚嘆號他也是False欸那我就可以在條件的時候做一些好玩的運算就比如說我是一個數字我加兩個驚嘆號他一定給我True嘛對不對所以我做條件式的時候可以說喔這樣子這樣子然後你就直接比如說if就這樣就好了你也不用講說等於等於True喔你就直接驚嘆喔驚嘆喔欸你一定要值這個值不會是0不會是No不會是Undefine也不會是NN然後你就兩個驚嘆號就解掉了你就不用寫說比如說什麼很複雜比如說什麼不等於什麼NAN對不對然後AndAndA又不等於Undefine對不對然後或者是又AndAndA又不等於NoA又不等於0所以你用兩個驚嘆號可以取代這麼長的一段扣是不是怎麼看都划算我現在交到欸我現在交到52還是5353對不對好我就先寫這樣可以嗎有點好好這就是這兩個是意思相意思相相同好OK所以NAT這個是我都做補充的好好再來位元運算值那位元運算值這邊會很就是我想要直接拿課本獎就是因為我覺得好就是課本的95頁每次講到這邊就是就是卡超久所以簡單我們這邊就是直接看這個範例好這個範例呢是我剛剛做了一次的就是做過一次好今天有個AA它叫做5然後它的反運算是什麼它反運算就是-6OK我有一個9然後它反運算是-10所以大部分的情況下你會發現說其實它反運算都跟它差-1就兩個相加起來是-1然後你可以把它轉換成什麼你可以把它轉換成二進位來看二進位來看的話就是一個是1001另外是-1002那其實它這個是因為它的反轉運算會遇到這樣的問題是因為它在一個很長一串的位數的時候呢通常第一位是代表的是它的正它是正的還是它是負的那反轉運算是直接把這個數全部就是直接翻過來所以它的正負號就是然後就是有這個運算的特性就是會查-1這樣子就是會轉過來然後查-1這樣那這個你可以就是在Console裡面先自己寫寫看就是反轉運算OK那我們接下來要就是快速的進入到就是位元運算然後我這邊要拿課本好在位元在課本的表5-7大家都課本拿出來嗎位元運算我們看到第一個它是數字是0b1010和0b1100對不對0b我們不要看因為它的是BinaryOK那0b1010是實境會是多少看一下喔0b101010嘛對不對那0b1100是12好那它們兩個去AND的時候會怎樣因為它是位元對位元嘛對不對所以我們會看到的事情是如果是呃我只好沒關係我寫在那個上面回下來這裡如果是1010和1100然後我們去AND它對不對會得到什麼1111111111111111111212122221212222222222222222222223222323433444445555555555555555655656666666666666666666666666666666667777777778888888889989999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999910999910991010101010那 10 然後呢 XOR 是這樣然後 12 是 6 這樣大家可以接送嗎你把它轉換成二進位就會比較清楚就是 它是一個一個這樣做那當然就是 你今天看到大概知道就好了考試會考就真的是 大概記得最基礎的原理就是 你要把每一個位元都是AND來做每個位元來做 OR 和每個位元來做 XOR這樣就知道那為什麼會有這種東西因為 1960 年代最圖靈 圖靈是更早圖靈是惡戰最基礎的電閘就是長這樣就是你有 AND的運算就是有一個電晶體它就會做 AND這件事情或是它會做 OR這件事情會做 XOR這件事情比爾蓋茨小時候在下那個西洋期跟電腦在下西洋期的時候就是打卡然後用這個 XOR這樣子然後去打卡打出來所以他們都是在玩這種就是邏輯就最簡單的邏輯運算然後這麼多邏輯運算慢慢組合在一起然後才會有指令列有指令列以後才有圖形化介面然後到現在的電腦程式是這樣好的那5至17好那我們來講就是衛移那還是在第95頁的最下面那邊然後我們直接看它下面畫好的圖我就不用畫了就很簡單好剛剛有一個22這個數字那它前面補一堆0然後後面是110110那它往右位移有沒有這樣是往右位移一格它就會把N去位移一格有沒有把右邊的0就拿掉然後就直接變11011課本裡面我看一下喔20然後三個是田麟又移田麟又移的意思就是說你的然後三個是填0右移填0右移的意思就是說你的最左邊那一格會是填0比如說就是最下面N大於大於1的這一格它其實是把最右邊那個0填到最左邊那邊去那在第二個三個這樣子它的0也是填到左邊可是你看到最下面的那個N和那個N大於大於1他們差在哪裡他們差在最左邊那個位數一個是左邊一個是填1另外一個是填0因為三個就是補0右移它是有級右移就是說它的正負不換就是兩個大於大於是正負不換這個的正負是不換的最前面那個代表它是1和0代表它是正負然後三個的是三個這個是因為我已經把所有東西都移過去一格了所以我這一格我直接填下去那可是這一個會決定它是正負我實在崩潰好所以為什麼我們會差負1呢我們可以把NLAT和N等於22這一行第一最下面那個32位二進位那一行對不對你看那個1的5數那個位置你看它們是不是每一個都是相反有沒有就是這個這個N是不是每一個都相反它位元素是不是每一個都把它反過來1的5數1的5數1的5數那一行跟N等於22那個是每一個都相反那只是剛好它在數學上會剛好會差負因為一個是用一個是用一個是用陣容一個是這樣子然後兩個在一起然後我們把它補這樣那原因是我半年前證明過就是很痛苦我還是不想說反正大家知道就好因為它前面一個是這一些數字的第一個你都要把它補免因為第一個都是代表政府後面才是好這是位元運算子再來我們要進到5支18我們要講的事情是條件運算子那這條件運算子其實是十分重要而且好不用的原因是什麼到後面我們會學會就是怎麼用if來寫就是寫值那我可以寫一個code給大家看就是就這邊寫一份code就是比如說大家可能還不會if可是我先寫給大家看好不好就是說比如說我今天有一個vara等於a是5好然後我有一個ififa等於等於5我的我就consolelog又然後如果是非的話如果a不等於等於5的話我會console什麼我會consoleno好不好我們跑這份code那這個時候他會怎樣他會跟我講yo對不對那如果我的a是什麼我的a角是50好了他會跟妳講no那我是不是要寫很多的code因為我A等於5是true然後他就開始跑這邊那如果a不是5的話他會跑else就會跑這邊那我要怎麼樣一行解我可以快速的把它寫出來欸老師我不會沒關係寫給妳看我們用條件運算值我就可以做到varvara等於5然後我直接寫console.log然後我前面寫什麼我寫條件我的條件是a等於等於5然後問號問號問號突然找不到問號問號前面是true的答案所以我前面true的答案我就寫右然後我mow號後面是false的答案我就寫no然後我們看看這樣一段code會跑出什麼會跑出右因為我現在a是5對不對那我如果今天把a改成50他就會跑出no有沒有有沒有有沒有很神奇簡單的說前面這是condition當condition是true的時候就跑這一格出來當condition是false就跑後面這一格出來這樣可以嗎可以接受嗎這個東西有什麼好處這還可以做什麼我們剛剛講我們最怕我們的code碰到什麼最怕我們的code碰到最怕我們的code碰到not a numbernor undefine對不對嚇死了如果拿到這幾個東西然後我要取值或是我要點land或是點他的property比如說點class name然後他就直接炸給你undefine點class namecode看不懂對不對沒關係那我們可以做的事情是還記得剛才講說兩個驚嘆號a對不對我可以做的事情是比如說我今天比如說我今天比如說vara好了然後我console log然後我做什麼事情呢金號金號a問號a冒號呃not set呃比如說0好了就我可以給他一個預設的值我可以預設我可以預設或甚至是說呃我這邊我我在印出來的時候我這樣就不會印出undefine喔我原本就有a嘛這個example爛等一下我這邊應該把比如說cc好了我這邊先把他clear掉這樣如果我var cc是不是他會是undefine對不對那我console log他會怎樣是不是就會跑出是undefine可是我如果這時候等一下我如果這時候不好意思我這邊兩個驚嘆號兩個驚嘆號我現在cc是undefine所以兩個驚嘆號他以後會是什麼他會是false可以嗎可以介紹false的話會怎樣會跳到後面是0true才會把cc突出來所以這個時候他就會輸出0他不會給我undefine所以我可以做預設值的一件事情就比如說有的時候我希望某一個東西是預設值是0我這個就可以說是預設那假如說我今天我的cc是6的情況下我在console log他比如說我cc是6然後我再跑這一行他是不是就會跑6出來給我因為驚嘆號驚嘆號的cc這個時候已經變成什麼已經變成true了他就直接輸出cc所以我可以說如果我取不到值或是拿到垃圾我至少會先拿到0就不會拿到什麼undefinenot a numberno這個可怕的東西ok所以這個就是你可以所以這個條件是很重要的事情是你可以快速的一行就把你的條件做出來可是你如果你忘記了這個寫法你是不是就是要if else然後寫很多行可能會寫到20行那當你很長每天都一直在預設這種東西的時候你不會條件是你的code就會很長而且大家看了會很不開心這樣好所以這邊是這個condition這個那運算值它有分優先順序就是算數運算值先優先然後關係運算值螺旗運算值再來才是條件運算值就是因為有這樣子的運算值的先後順序所以後面練習體會叫你練習這種東西就是那這樣子的話呢你可以先開始練習就是想說這個小魚它是不是是什麼這個小魚這個是false對不對括號裡面先算然後再去算not然後再去endend那這個你可以跑跑看試試看好的來到本章重點精華回顧就是什麼是運算值然後我們要學習就是使用算數運算值然後還有關係運算值和邏輯運算值那運算值其實就是真的蠻難的啦就是如果像剛剛遇到end和or其實我是很快速的講過去我之前卡在那邊可能就是我記得反正我卡在那邊至少卡了一個小時然後就是課程嚴重落後那如果還是有不懂的地方等一下可以問我然後今天回去試試看如果還是不懂的話明天我們再一起再來解一下也是可以的這邊就是第五章的部分這邊就是第五章的部分謝謝大家謝謝大家謝謝大家謝謝大家
影片逐字稿largev2
接下來我們進入 5-3 邏輯運算值那我們要看邏輯運算值 位元運算值 還有其他類型的運算值我們就把運算值都做完了好 首先這邊其實蠻難的喔大家要注意一下喔為什麼縮不起來好 縮小 好好 那這邊有一個東西叫做 AND AND它是一個 如果兩邊都是 TRUE 的話 回傳 TRUE如果一邊是 FALSE 的話 回傳 FALSE然後 喔 又崩潰了你看這個 TRUE 大寫大寫 小寫小寫大寫大寫 大寫小寫喔 好主要呢 AND AND 我們要知道一件事情就是說AND 是什麼意思我這邊要畫圖了就當我們是 ANDAND AND AND 的表格好 那我前面如果是這邊是 TRUE 對不對我自己要寫小寫 抱歉就我這邊有一個 TRUE然後有一個 FALSE然後我們把它畫格子畫起來然後我這邊是 TRUE這邊是 FALSE然後這個是錢這個是貨好那我 TRUE TRUE 的話 它結果是 TRUEAND AND 來講的話TRUE FALSE 結果是 FALSETRUE FALSE 結果是 FALSE然後 FALSE FALSE 結果是 FALSE你以一個翻格角度來看的話是這樣好的那你以一個交集的角度來看我有兩個圈圈然後呢中間這個叫做 AND AND那個高中數學就兩個都要是都有才可以這樣可以理解嗎AND AND 就是要這樣那 OR 條件就是沒有那麼挑啦就是其中有一個好就好了這是 OR然後這邊是 TRUE這邊是 FALSE我的我寫慢一點這邊是 FALSE好我的鬼畫圖那這邊呢OR 的情況下是只要有一個是 TRUE就可以就比如說我要找一個男朋友身高180而且而且短頭髮那就是而且的情況下就是同時要滿足有180也要有短頭髮那如果是或者的話我要一個男朋友身高180或者短頭髮那你可以找什麼或是身高低於180然後短頭髮給他所以這就是或者那這個 AND 就是AND 就是兩者都要為是那他的在邏輯上的框框來看的話我們看到的就是這樣可以嗎就是兩個都有那其中一個為是就可以了這樣可以理解嗎好SHARE CIRCUIT EVALUATION我有放補充連結大家可以去看一下那 NOT 呢很簡單嘛比如說你今天有一個VAR A 等於 TRUE那NOT A就會是 FALSE這樣OK嗎簡單嘛那 NOT NOT A就是 TRUEOK那今天老師在玩一個12 NOT A是 FALSE 喔NOT NOT A是 TRUE 喔所以你12轉換就變什麼你用兩個就變成是TRUE那什麼時候會是 FALSE就是當你的數字是零的時候的 NOT 才會是什麼才會是 TRUEOK所以有時候我們會做一些很有趣的運算比如說就是我會拿一個變數然後拿一個變數我直接就是比如說還有一些值就比如說像UNDEFINE那我這樣子是不是他也是 FALSE然後我NOR然後我把它加兩個驚嘆號他也是 FALSE有沒有然後我還有什麼NA NA然後我兩個驚嘆號他也是 FALSE那我就可以在條件的時候做一些好玩的運算就比如說我是一個數字我加兩個驚嘆號他一定給我 TRUE所以我做條件式的時候這樣子然後你就直接比如說IF 就這樣就好了你也不用講說等於等於 TRUE 喔你就直接驚嘆號驚嘆號 A就說你一定要有值這個值不會是 0然後你就兩個驚嘆號就解掉你就不用寫說比如說什麼很複雜比如說什麼A 不等於NA N然後 ANDA 又不等於UNDEFINE對不對然後或是又AND又不等於NO又不等於0所以你用兩個驚嘆號可以取代這麼長的一段 code是不是怎麼看都划算我現在加到 52 還 5353 對不對好 我就先寫這樣可以嗎有點這就是這兩個是意思像意思相同OK所以 NOT 這個是我都做補充的啦好 再來位元運算子那位元運算子這邊會很就是我想要直接拿課本講就是因為我覺得就是課本的95頁每次講到這邊就是就卡超久所以簡單我們這邊就是直接看這個範例好這個範例是我剛剛做了一次的就是做過一次好 今天有個 AA 他叫做 5那反應運算是什麼他反應運算是負6那我有一個 9那他反應運算是負10所以大部分的情況下你會發現說其實他反應運算都跟他差負1就兩個相加起來是負1然後你可以把他轉換成什麼你可以把他轉換成二進位來看二進位來看的話就是一個是 1001另外一個是負1002那其實他這個是因為他的反轉運算會遇到這樣的問題是因為他在一個很長一串的位數的時候呢通常第一位是代表的是他的正他是正的還是他是負的那反轉運算是直接把這個數全部就是直接翻過來所以他的正負號就是有這個運算的特性就是會差負1就是會轉過來然後差負1那這個你可以就是在console裡面先自己寫寫看就是反轉運算那我們接下來要就是快速的進入到就是位元運算然後這邊要拿課本好在位元課本的表5-7大家都課本拿出來嗎可以拿出來嗎位元運算我們看到第一個他是數字是0B1010和0B11000B我們不要看因為他的是binaryok那0B1010是實際會是多少0B101010嘛對不對那0B1100是12那他們兩個去and的時候會怎樣因為他是位元對位元嘛對不對所以我們會看到的事情是我只是沒關係我寫在那個上面我寫在這裡如果是1010和1100然後我們去and他對不對11and的是true對不對01false010 false false所以就變1000ok 可以嗎然後再把它轉換成數字是多少應該是8吧1248對8好那如果像第二個例子是or就是10101100然後我現在是用or來看的話11是1 01是1 10是100是0ok嗎然後這樣就會是24814對不對ok我講一次就好很可怕問起來會時間就馬上爆掉再來xor這個東西呢很有趣喔xor叫做叫做就是他叫做同義數碼xorxor是喜歡喜歡不一樣xor喜歡不一樣就是他喜歡他就互斥互斥或假互斥x或or簡體中文吧邏輯互斥或邏輯互斥xor運算子就好總之呢他遇到的狀況是什麼他一樣的他就跟你講說0不一樣的他就說是1ok就是同性異性就是1這樣可以嗎就01就是110就是100就是011就是0畫圖在上面還有空間嗎好吧很小要畫在這裡嗎畫這裡xor對不對那他會怎麼樣1010然後我們11001110100這樣可以嗎那我們開始算下面的數字好我們有兩個數字一個是1010然後xor好1100然後我們把它算起來110011010然後這是2這是4所以是6可以接受嗎可以接受我們用我們就是我們剛才找這兩個數字是多少10跟12對不對這是10嘛用觸控板畫好難這是10嘛對不對這是12嘛對不對那我們就拋開直接在這裡拋10and1218對不對然後10or12有人會問我說or那個按鍵在哪裡在enter上面14那10然後呢xor然後12這樣大家可以接受嗎你把它轉換成二進位就會比較清楚就是它是一個一個這樣做那當然就是你今天看到大概知道就好考試會考就真的是大概記得最基礎的原理就是你要把每一個位元都是and來做和每個位元來做or和每個位元來做xor這樣你就知道那為什麼會有這種東西因為1960年代圖靈是更早圖靈是二戰最基礎的電閘就是長這樣就是你有and的運算就是有一個電晶體它就會做and這件事情或是它會做or這件事情會做xor這件事情那比爾蓋茲小時候在下那個西洋棋跟電腦在下西洋棋的時候就是打卡然後用這個xor然後去打卡打出來所以他們都是在玩這種就是最簡單的邏輯運算然後這麼多的邏輯運算慢慢組合在一起然後才會有指令列有指令列以後才有圖形化介面然後到現在的電腦程式是這樣好的那5-17那我們要講就是位移那還是在第95頁的最下面那邊然後我們直接看它下面畫好的圖我就不用畫了就很簡單當它有一個22這個數字那它前面補一堆0然後後面是10110那它往右位移有沒有這樣是往右位移一格它就會把n去位移一格有沒有把右邊的0就拿掉然後就直接變1011課本裡面等一下它為什麼第二個移三格等一下我看一下20然後三個是田林右移田林右移的意思就是說它的最左邊那一格會是田林比如說在最下面n大於大於1的這一格它其實是把最右邊那個0填到最左邊那邊去那在第二個三個這樣子它的0也是填到左邊可是你看到最下面的那個n和那個n它們差在哪裡它們差在最左邊那個位數一個是左邊一個是填1另外一個是填0因為三個就是補0右移它是有及右移就是說它的正負不換就是兩個大於大於是正負不換這個的正負是不換的這個代表它是1和0代表它是正負然後三個是三個這個是因為我已經把所有東西都移過去一格了所以我這一格我直接填這裡那可是這一格會決定它是正負我實在很崩潰好它負1呢我們可以把nn等於22所以下面那個三則位二進位那一行和那個1的補數那個位置你看它們是不是每一個都是相反有沒有就是這個這個n這個都相反它的位元數是不是每一個都反過來1的補數1的補數那一行跟n等於22是不是每一個都相反那只是剛好它在數學上會剛好會差負1因為一個是用一個是用正的往上然後兩個在一起然後差負那原因是我半年前證明過我還是不想說反正大家知道就好因為它前面一個是這一些數字的第一個你知道嗎因為第一個都是代表正負後面才是好這是位元運算子再來我們要進到五之十八我們要講的事情是條件運算子那這條件運算子其實是十分重要而且好用的原因是什麼到後面我們會學會就是怎麼用if來寫就是寫值那我可以寫一個code給大家看就是就這邊寫一份code大家可能還不會if可是我先寫給大家看好不好就是說我今天有一個vara等於a是5然後我有一個ifa等於等於5我的我就consoleloga等於等於5console log有如果是非的話如果a不等於等於5的話我會console什麼我會console logno所以我們跑這份code那這個時候它會怎樣它會跟我講yo那如果我的a是什麼我的a角是50它會跟我講no那我是不是要寫很多的code因為我a等於等於5是true那如果a不是5的話else就會跑這邊那我要怎麼樣一行解我可以快速的把它寫出來老師我不會沒關係寫給你看我們用條件運算值我就可以做到varvar a等於5然後我直接寫console log然後我前面寫什麼我寫條件我的條件是a等於等於5然後問號突然找不到問號問號前面是true的答案所以我前面true的答案我就寫yo然後我冒號後面是false的答案我就寫no然後我們看看這樣一段code會跑出什麼會跑出yo因為我現在a是5嘛那我如果今天把a改成50它就會跑出no有沒有很神奇簡單的說前面這是condition當condition是true的時候就跑這一格出來當condition是false就跑後面這一格出來這樣可以嗎可以接受嗎可以這個東西有什麼好處這還可以做什麼我們剛剛講我們最怕我們的code碰到什麼最怕我們的code碰到not a numbernor undefined嚇死了如果拿到這幾個東西然後我要取值或是我要點或是點它的property比如說點class name然後它就直接炸給你undefined點class namecode看不懂很可怕很害怕沒關係那我們可以做的事情是還記得剛剛講說兩個驚嘆號a對不對我可以做的事情是比如說我今天比如說vara好了然後我console.log然後我做什麼事情呢驚嘆號驚嘆號a問號anot set比如說0就我可以給它一個預設的值我可以預設或甚至是說我這邊我在印出來的時候我這樣就不會印出undefined我原本就有a這個example好爛我這邊應該把比如說cc好了我這邊先把它clear掉這樣如果我var cc是不是它會是undefined對不對那我console.log它會怎樣是不是就會跑出是undefined所以我如果這時候我如果這時候不好意思我這邊兩個驚嘆號兩個驚嘆號我現在cc是undefined所以兩個驚嘆號它以後會是什麼它會是falsefalse的話會怎樣會跳到後面是0true才會把cc吐出來所以這時候它就會輸出0它不會給我undefined所以我可以做取不到值的一件事情就比如說有的時候我希望某一個東西是預設值是0我這個就可以說是預設那假如說我今天我的cc是6的情況下我在console.log它比如說cc是6它是不是就會跑6出來給我因為驚嘆號驚嘆號cc這個時候已經變成true了它就直接輸出cc所以我可以說如果我取不到值或是我取到拿到垃圾我至少會先拿到0就不會拿到什麼undefined拿到number這可怕的東西所以這個就是你可以所以這個條件是很重要的事情是你可以快速的一行就把你的條件做出來可是你如果你忘記了這個寫法你是不是就是要if else可能會寫到20行那當你很常每天都一直在預設這種東西的時候你不會條件是你的code就會很長而且大家看了會很不開心所以這邊是condition那運算子它有分優先順序就是算術運算子先優先然後關係運算子,邏輯運算子,再來才是條件運算子就是因為有這樣子的運算子的先後順序所以後面練習題會叫你練習這種東西那這樣子的話呢你可以先開始練習就是想說這個小於它是不是是什麼這個小於這個是false對不對括號裡面先算嘛,然後再去算not然後再去and那這個你可以跑跑看試試看好的,來到本章重點精華回顧就是什麼是運算子然後我們要學習使用算術運算子然後還有關係運算子和邏輯運算子那運算子其實就是真的蠻難的啦,就是如果像剛剛遇到and和or其實我是很快速的講過去我之前卡在那邊可能就是我記得反正我卡在那邊至少卡了一個小時然後就是課程嚴重落後那如果還是有不懂的地方等一下可以問我然後今天回去試試看,如果還是不懂的話明天我們再一起來解一下也是可以的那這邊就是第五章的部分