2019-05-22 js第二天

條件判斷

01直接量

/* 1.直接量是什么? */

? ? //? 直接在 js 中 寫的數(shù)據(jù)~~!


? ? // 2.數(shù)據(jù)類型是什么?

? ? // 因為 JS 中的數(shù)據(jù) 明顯可以分成很多類,所以 就 分出 了 若干個 數(shù)據(jù)類型

? ? // 3.如何檢測數(shù)據(jù)類型?

? ? // typeof --> 類型名稱字符串

? ? var a = typeof '小白白'; // var a = 'string';

? ? var b = typeof(5201314); // var b = 'number'

? ? // 4.變量是什么?

? ? // 1.本質(zhì)上 是 內(nèi)存里的 一塊 空間,變量名 是 這個空間的 “代號”

? ? // 2.通俗的說,變量就是一個 容器,用來裝數(shù)據(jù)~~! 一次 只能裝一個數(shù)據(jù)

? ? var tcName = '波老師';

? ? tcName = '澤老師';

? ? console.log(tcName);

? ? console.log(tcName + ',我愛你~~~');

02數(shù)據(jù)類型

//1.簡單數(shù)據(jù)類型 ----------------------------------------------------

? ? //1.1 數(shù)值類型 - Number

? ? //? ? a.整數(shù) 小數(shù)? 負數(shù) 都屬于數(shù)值

? ? //? ? b.最大值和最小值? -> Number.MAX_VALUE? 和 Number.MIN_VALUE

? ? //? ? c.數(shù)值類型 中的三個特殊值:Infinity 、-Infinity 、NaN

? ? //? ? d.無窮大 Infinity? 無窮小 -Infinity

? ? //? ? e.【NaN - 非數(shù)值】 (Not a number) : 代表 算數(shù)運算后的錯誤結(jié)果

? ? //a. 當 算數(shù)運算符 運算 一個 不是 數(shù)值的 數(shù)據(jù)時,無法計算結(jié)果,所以 返回 NaN

? ? var num1 = 12 * '我愛你'; // NaN

? ? console.log(num1); // NaN

? ? //b. 任何值 與 NaN 運算結(jié)果 都是 NaN

? ? console.log(NaN / 100);

? ? //c. NaN 與任何值都不相等 ,包括它自己

? ? //d. 使用 isNaN(x) 來 檢測 x 是不是 一個 NaN

? ? //? ? ? ? ? ? ? ? ? ? 如果 x 是 一個 NaN , 就返回 true

? ? //? ? ? ? ? ? ? ? ? ? ? ? ? 不是? ? ? ? ,? ? ? false

? ? console.log(' isNaN(520) = ' + isNaN(520));

? ? console.log(' isNaN(\'討厭\') = ' + isNaN('討厭'));

//1.2 字符串類型 - String

? ? var str1 = '我是你哥哥';

? ? var str2 = "我是你姐姐";

? ? var str3 = '我喜歡"小狗" ,你\'呢?'

? ? var str4 = "我喜歡'小貓',你是嗎?";

? ? console.log('我要換行\(zhòng)n不是換老婆~~!');

? ? //1.3 布爾值類型 - Boolean

? ? var male = true;

? ? var female = false;

? ? //1.4 未定義類型 - Undefined

? ? //? ? 有且只有一個值 undefined

? ? //? ? 當一個 變量 聲明 但么有賦值,默認就是 undefined

? ? var a;

? ? console.log(a);

? ? //1.5 空類型 - Null

? ? //? ? 有且只有一個值 null

? ? //? ? prompt 輸入框,用戶點擊取消時,返回的 是 null

? ? // var usrName = prompt('請輸入您的名字:');

? ? // console.log('usrName = ' + usrName);

? ? // undefined 和 null 判等

? ? console.log(1 == 1); // true

? ? console.log(undefined == null); // true

? ? console.log(undefined === null); // false

? ? //2.復(fù)雜數(shù)據(jù)類型-------------------------------------------------

? ? // Object - 對象

? ? // Array - 數(shù)組

? ? // Function - 函數(shù)

? ? // 自定義類型

03復(fù)合運算符

//1. 算數(shù)運算符 + - * / % **

? ? ? // ** 求次方

? ? ? console.log(2**3);// 2 * 2 * 2

? ? ? //2. = 賦值運算符

? ? ? //? = 會 將 右邊的 值 賦給 左邊

? ? ? var a = 1;

? ? ? // var usrName = prompt('您的女友名字:');

? ? ? //3.復(fù)合賦值運算符----------------------------------------------

? ? ? //? 作用:將 變量里的值 取出 ,與另一個 值運算,并將 結(jié)果 重新 賦值 到這個變量

? ? ? //? 口訣:對某個變量自身 做 算數(shù)運算

? ? ? //? +=? -=? ? *=? ? /*? ? %=

? ? ? //3.1 += -------------------

? ? ? var num = 1;

? ? ? // num = num + 2;

? ? ? num += 2;

? ? ? console.log(num); // 3

? ? ? //3.2 -=

? ? ? var num = 100;

? ? ? num -= 40; // num = num - 40;

? ? ? console.log(num); // 60

? ? ? //3.3 *=

? ? ? var num = 5;

? ? ? num *= 5; // num = num * 5;

? ? ? console.log(num); // 25

? ? ? //3.4 /=

? ? ? var num = 100;

? ? ? num /= 5;

? ? ? console.log(num);//20

? ? ? //4.神奇的 += ---------------------------------------------------------------

? ? ? //4.1 如果 變量 是和 數(shù)值 運算,那么 += 就起到了 算數(shù)運算的 效果

? ? ? var num = 110;

? ? ? num += 120;

? ? ? console.log(num);

? ? ? //4.2 如果 變量 是和 非數(shù)值 運算,那么 += 就會起到 字符串的連接 作用

? ? ? var str = 123;

? ? ? str+='我愛你~~~';

? ? ? str+='你愛我媽?';

? ? ? str+=',分手~~!'

? ? ? console.log('str ='+str); // 123我愛你~~~你愛我媽?,分手~~!

04比較運算符

//1.比較運算符:比大小的~~?。?/p>

? ? ? //? 運算符 本身 沒有意義,要和 兩邊的數(shù)據(jù) 組成 表達式 才有意義

? ? ? //? >? ? <? ? >=? ? <=? ? ==? !=? ? ===? ? !==

? ? ? //? 【永遠都會返回 bool值】,要么 返回? true,要么 返回 false

? ? ? console.log(1 > 2);? // false

? ? ? console.log(1 < 2);? // true

? ? ? console.log(1 == 2);? // false

? ? ? console.log(1 == 1);? // true

? ? ? // == 只判斷值是不是相等,不判斷類型

? ? ? // === 全等號,判斷值 也 判斷類型

? ? ? console.log(1 == '1');// true

? ? ? console.log(1 === '1');// false

? ? ? console.log(1 === 1);// true

? ? ? // 大于等于? 和 小于等于

? ? ? // 注意: 條件是或的關(guān)系,只要 滿足一個 就返回 true,只有兩個都不滿足時才返回 false

? ? ? console.log(1 >= 2); // false

? ? ? console.log(1 >= 1); // true

? ? ? console.log(1 >= 0); // true

? ? ? // 不等號? 全不等號

? ? ? console.log(1 != 1); // false

? ? ? console.log(1 != 2); // true

? ? ? console.log(1 != '1'); // false

? ? ? console.log(1 !== 1); // false

05邏輯運算符

//1.邏輯運算符

? ? //? &&? ? ||? ? !

? ? //1.1邏輯與 && ---------------------------------------------------------------

? ? // 只有 && 兩邊的 數(shù)據(jù) 都為 true 時,整個 邏輯與 表達式 才返回 true

? ? //? ? ? ? ? ? ? ? ? ? 只要有一個是 false,整個 邏輯與表達式 就返回 false

? ? // 口訣:一假都假

? ? //? 左邊的表達式? &&? 右邊的表達式? -> 表達式結(jié)果

? ? //? ? true? ? ? &&? ? true? ? ? ? ? ? true

? ? //? ? false? ? &&? ? true? ? ? ? ? ? false

? ? //? ? true? ? ? &&? ? false? ? ? ? ? false

? ? // 找男朋友? --? 高 富 帥 情商高

? ? // 如果 四個 條件 都要滿足 才 成立: 邏輯與? var isOk = 高 && 富 && 帥 && 情商高;

? ? //? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 高富帥情商 4個條件 都要滿足 才 返回 true

? ? //? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 只要有一個不滿足,都返回 false

? ? var isOk = 1 > 2 && 1 >= 0; // false

? ? //? ? ? ? false && true? ? // false

? ? var isOk = 1 == 1 && 1 >= 0; // true

? ? //? ? ? ? ? true? && true? ? // true

? ? var isOk = 1 == 1 && 1 >= 0 && 2 > 1; // true

? ? //? ? ? ? ? true &&? true? && 2 > 1

? ? //? ? ? ? ? ? ? ? true? ? ? && true

? ? //1.2 邏輯或 ||? ---------------------------------------------------------------

? ? // 只要 || 兩邊有一個是 true,整個表達式 就返回 true

? ? //? ? ? ? 兩邊都是 false,整個表達式 才返回 false

? ? // 口訣:一真都真

? ? // 左邊的表達式? ||? 右邊的表達式? -> 表達式結(jié)果

? ? //? ? true? ? ? ||? ? false? ? ? ? ? true

? ? //? ? false? ? ||? ? true? ? ? ? ? true

? ? //? ? false? ? ||? ? false? ? ? ? ? false

? ? // 如果 四個 條件中, 滿足一個就成立:邏輯或 var isOk = 高 || 富 || 帥 || 情商高;

? ? //? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 高富帥情商 4個條件 只要滿足一個 就 返回 true

? ? //? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 只有4個條件都不滿足,才返回 false

? ? var isOk = 1 > 2 || 1 >= 0; // true

? ? //? ? ? ? ? false || true? -> true

? ? var isOk = 1 == 1 || 1 == 0; // true

? ? //? ? ? ? ? true? ||? false; -> true

? ? //1.3 邏輯非(取反運算符)

? ? //? ? 可以用來 將 一個 布爾值 變成 相反的值?

? ? //? ? !true -> false

? ? //? ? !false -> true

? ? console.log('!true = ' + !true);

? ? console.log('!false = ' + !false);

? ? console.log(!(1 > 2));// true

06條件語句

//1.順序結(jié)構(gòu) 語句 ,由上到下的 順序執(zhí)行 每一行代碼

? ? // console.log('裙姐考試回來了~~');

? ? // console.log('他爸爸問他打了多少分');

? ? // console.log('裙姐打了59分');

? ? // console.log('他爸爸狠狠的打他屁股了~~~');

? ? // console.log('裙姐睡著了~~~');

? ? //2.條件結(jié)構(gòu) 語句

? ? //2.1 if 單個條件

? ? // if(bool){

? ? //? if 代碼塊

? ? // }

? ? //? ? 如果? if的小括號中 是 true,那么 就執(zhí)行 if代碼塊(if后緊跟著的 大括號里的代碼)

? ? //? ? ? ? ? ? ? ? ? ? ? 是false, 那就跳過 if代碼塊,執(zhí)行 后面的代碼

? ? // var score = 59;

? ? // console.log('裙姐考試回來了~~');

? ? // console.log('他爸爸問他打了多少分');

? ? // console.log('裙姐打了 ' + score + ' 分');

? ? // if (score < 60) {

? ? //? console.log('他爸爸狠狠的打他屁股了~~~');

? ? // }

? ? // console.log('裙姐睡著了~~~');

? ? //2.2 if else? 二選一

? ? // if(bool){

? ? //? if 代碼塊

? ? //}

? ? //else{

? ? //? else代碼塊

? ? //}

? ? // 如果 if 中的是 true,就執(zhí)行 if 代碼塊

? ? //? ? ? ? ? ? ? false,就執(zhí)行 else代碼塊

? ? // 二選一:if else 兩個 代碼塊,只會 根據(jù)條件結(jié)果 執(zhí)行一個

? ? // var score = 89;

? ? // console.log('裙姐考試回來了~~');

? ? // console.log('他爸爸問他打了多少分');

? ? // console.log('裙姐打了 ' + score + ' 分');

? ? // if (score < 60) { // 如果 true,就執(zhí)行 if代碼塊 ,如果 是 false,就執(zhí)行 else 代碼塊

? ? //? console.log('他爸爸狠狠的打他屁股了~~~');

? ? // } else {

? ? //? console.log('他爸爸給了他1000塊錢~~~');

? ? // }

? ? // console.log('裙姐睡著了~~~');

? ? //2.3 if else if else ......多條件

? ? /* 多條件 if? 可以用來 在一個業(yè)務(wù)中 根據(jù)不同條件 執(zhí)行不同的代碼, 一旦滿足一個條件,后面的else if 就不執(zhí)行了,和 多個 if 比起來,執(zhí)行效率更高

? ? if(bool){

? ? }else if(bool){

? ? }else if(bool){

? ? }else{

? ? }

? ? */

? ? // var score = 59;

? ? // console.log('裙姐考試回來了~~');

? ? // console.log('他爸爸問他打了多少分');

? ? // console.log('裙姐打了 ' + score + ' 分');

? ? // if (score < 60) {

? ? //? console.log('他爸爸狠狠的打他屁股了~~~');

? ? // } else if (score >= 60 && score < 80) {

? ? //? console.log('給500塊~~~~');

? ? // } else if (score >= 80 && score < 100) {

? ? //? console.log('給1000塊~~~~');

? ? // } else {

? ? //? console.log('給10000塊~~~~');

? ? // }

? ? // console.log('裙姐睡著了~~~');

? ? // var usrName = '小蒼蒼';

? ? // if(usrName == '小蒼蒼'){

? ? //? console.log('來,我們一起學(xué)習(xí)代碼編程~~!');

? ? // }else if(usrName == '小澤澤'){

? ? //? console.log('來,我們一去學(xué)習(xí)打籃球~~~!');

? ? // }else if(usrName == '裙姐姐'){

? ? //? console.log('來,我們一起去非洲探親~~~~!');

? ? // }else{

? ? //? console.log('對不起,我不認識你,媽媽不讓我和陌生人說話~~!');

? ? // }

? ? //2.4 嵌套if

? ? var score = 59;

? ? console.log('裙姐考試回來了~~');

? ? console.log('他爸爸問他打了多少分');

? ? console.log('裙姐打了 ' + score + ' 分');

? ? if (score < 60) {

? ? ? console.log('他爸爸狠狠的打他屁股了~~~');

? ? ? //嵌套 if~~~

? ? ? if(score < 30){

? ? ? ? console.log('他媽媽狠狠的打了他爸爸屁股~~~');


? ? ? ? if(score <10){

? ? ? ? ? console.log('不知道還會發(fā)生什么可怕的事情~~!');

? ? ? ? }

? ? ? }

? ? } else if (score >= 60 && score < 80) {

? ? ? console.log('給500塊~~~~');

? ? } else if (score >= 80 && score < 100) {

? ? ? console.log('給1000塊~~~~');

? ? } else {

? ? ? console.log('給10000塊~~~~');

? ? }

? ? console.log('裙姐睡著了~~~');

? ? //3.循環(huán)結(jié)構(gòu)語句

07顯示類型

//1. 什么是類型轉(zhuǎn)換? -- 將 一種類型的數(shù)據(jù) 轉(zhuǎn)成 另外一種 類型

? ? //1.1 轉(zhuǎn)數(shù)值 parseInt? parseFloat Number

? ? //a.parseInt 轉(zhuǎn) 整型數(shù)值

? ? //? ? ? ? ? a1.如果 遇到 小數(shù)字符串,會將 小數(shù)點和小數(shù)部分 去掉,只轉(zhuǎn)換 整數(shù)部分

? ? //? ? ? ? ? a2.如果 轉(zhuǎn)換的 數(shù)據(jù) 不是一個 數(shù)值字符串,就會轉(zhuǎn)換失敗,返回 NaN

? ? //? ? ? ? ? a3.如果 遇到 非數(shù)值,會自動停止轉(zhuǎn)換,只轉(zhuǎn)換非數(shù)值 前面的 數(shù)據(jù)

? ? //? ? ? ? ? a4.如果 最前面是 空格,會 自動 忽略空格,轉(zhuǎn)換后面的數(shù)據(jù)

? ? //? ? ? ? ? a5.如果 中間遇到空格,會自動停止轉(zhuǎn)換,只轉(zhuǎn)換 空格 前面的 數(shù)據(jù)

? ? var num = parseInt('11'); // '11' -> 11

? ? console.log(typeof num); // number

? ? var num = parseInt('11.1'); //'11.1' -> 11

? ? console.log(num);

? ? var num = parseInt('aaaa'); // NaN

? ? console.log(num);

? ? var num = parseInt('12a34'); // 12

? ? console.log(num);

? ? var num = parseInt('a12'); // NaN

? ? console.log(num);

? ? var num = parseInt(' 12'); //12

? ? console.log(num);

? ? var num = parseInt(' 12 34'); //12

? ? console.log(num);

? ? //案例:將 '100px' -> '110px' --------------------------------------

? ? var divWidth = '100px';

? ? divWidth = parseInt(divWidth); //divWidth =? 100

? ? divWidth += 10;// divWidth =? 100 + 10;

? ? divWidth += 'px';// 110 + 'px' -> '110px'

? ? console.log('divWidth=' + divWidth);

? ? //b.parseFloat 轉(zhuǎn)小數(shù)

? ? var num = parseInt('11.1'); // 11

? ? var num = parseFloat('11.1'); // 11.1

? ? console.log(num);


? ? var num = parseFloat('aaaa'); // NaN

? ? console.log(num);

? ? var num = parseFloat('12a34'); // 12

? ? console.log(num);

? ? var num = parseFloat('a12'); // NaN

? ? console.log(num);

? ? var num = parseFloat(' 12'); //12

? ? console.log(num);

? ? //c.Number 轉(zhuǎn) 任何數(shù)值

? ? var num = Number('111000');

? ? console.log(num);

? ? var num = Number('111000.777');

? ? console.log(num);

? ? var num = Number('111000aaa111'); // NaN

? ? console.log(num);

? ? //1.2 轉(zhuǎn)字符串

? ? // 數(shù)據(jù).toString()? String(x)?

? ? //a. 數(shù)據(jù).toString() 可以 用來 將 數(shù)據(jù) 轉(zhuǎn)成 字符串

? ? var num = 11;

? ? console.log(num.toString()); // 11 -> '11'

? ? //注意:數(shù)值直接量 不能 通過 .來調(diào)用 toString()方法,因為 會被當做 小數(shù)點

? ? // console.log(11.toString());

? ? console.log(true.toString());

? ? //b.String(x) 可以用來 將 沒有 toString()方法的 數(shù)據(jù) 轉(zhuǎn)成 字符串,比如:undefined 和 null

? ? // console.log(undefined.toString()); //報錯:Cannot read property 'toString' of undefined

? ? var str = String(undefined);

? ? console.log(str);

? ? var str = String(null);

? ? console.log(str);

? ? //1.3 轉(zhuǎn)布爾值

? ? // Boolean(x)? 用來 將 數(shù)據(jù) 轉(zhuǎn)成 true 或者 false

? ? //? ? ? ? ? ? 會轉(zhuǎn)成 false 的有 8 種: 0 , -0,NaN ,'',undefined , null , false , document.all

? ? //? ? ? ? ? ? 其他的全都轉(zhuǎn)成 true

? ? var isOk = Boolean('false');//true

? ? console.log(isOk);

? ? var isOk = Boolean('小白白'); //true

? ? console.log(isOk);

? ? var isOk = Boolean(Infinity); //true

? ? console.log(isOk);

? ? var isOk = Boolean('\n'); //true

? ? console.log(isOk);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 01javascript語法規(guī)范 <!DOCTYPE html> javascript語法...
    ouyangqinbin閱讀 1,393評論 0 0
  • 11js關(guān)系運算符 <!DOCTYPE html> 11js關(guān)系運算符 /*關(guān)系運算符存在的意義:1、默認情況下,...
    ouyangqinbin閱讀 427評論 0 0
  • <!DOCTYPE html> JS基礎(chǔ) // 1.語句// a.js語法上,一條語句結(jié)束可以寫分號也可以不寫...
    我才是鱷魚寶寶閱讀 427評論 0 0
  • 一、什么是javascript javascript是一種運行于js解釋器中的腳本語言 javascr...
    麋_鹿不迷路閱讀 1,413評論 1 1
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,142評論 0 2

友情鏈接更多精彩內(nèi)容