自增自減運算符 1、基本使用 內置提供 ++、--運算符 是用於將變數本身進行加1或者減1操作 // 1、基本使用 var i = 10; i++;//等價於語句 i+=1 console.log(i);//11 var m = 10; m--; console.log(m) 2、前置與後置的區別 ...
自增自減運算符
1、基本使用
內置提供 ++、--運算符 是用於將變數本身進行加1或者減1操作
// 1、基本使用
var i = 10;
i++;//等價於語句 i+=1
console.log(i);//11
var m = 10;
m--;
console.log(m)
2、前置與後置的區別
// 2、前置與後置的區別
// 可以將++、--運算符號 設置到變數的前面或者後面 ++i i++
// 前置與後置的區別:不管前置還是後置永遠會將值進行加1或者減1操作 區別當遇到賦值或者輸出語句時 ++在就先將變數本身加1 然後在參與其他的運算 ++在後 先將變數參與其他運算之後 最後加1
var j = 10;
// var res = j++;
//
var res = ++j
console.log(res,j)
3、練習題
var k = 0;
// 計算結果需要使用k++的值 加上 ++k的值 加上k的值 加上 k++的值
/*
var a = k++; a=0 k=1
var b = ++k; b=2 k=2
var c = k; c=2 k=2
var d = k++; d=2 k=3
var res2 = a + b + c + d
*/
var res2 = k++ + ++k +k +k++;
console.log(res2);
數據類型轉換
強制轉換
轉換數值類型
1、Number
// 1、Number 語法Number(需要轉換的內容)
console.log(Number("100"));//100
console.log(Number("100元"));//NaN
console.log(Number("人民幣100"));//NaN
console.log(Number(true));//1
console.log(Number(false));//0
console.log(Number(undefined));//NaN
console.log(Number(null));//0
// Number在轉換字元串時 只有字元串中所有的都是數字才可以轉換為數字否則得到的都是NaN
2、parseInt
// 2、parseInt
console.log(parseInt("100"));//100
console.log(parseInt("100元"));//100
console.log(parseInt("人民幣100"));//NaN
console.log(parseInt(true));//NaN
console.log(parseInt(false));//NaN
console.log(parseInt(undefined));//NaN
console.log(parseInt(null));//NaN
// parseInt主要是針對字元串 非字元串都是NaN 轉換字元串為數字的規則 從第一個字元開始提取數字 如果是數字就保留 只要遇到一個非數字就結束,如果結束的時候沒有提取到任何數字 最終結果就是NaN
3、parseFloat
// 3、parseFloat
console.log('-------------------------------------------')
console.log(parseFloat("100.00"));//100
console.log(parseFloat("100.01元"));//100
console.log(parseFloat("人民幣100.1"));//NaN
轉換字元串類型
// 1、toString 語法待轉數據變數.toString()
var num = 10;
console.log(num.toString());
// 布爾轉換字元串
console.log(true.toString())
console.log(false.toString())
// undefined
// TypeError: Cannot read properties of undefined (reading 'toString') 不能使用undefined讀取toString這個屬性 以後見到了類似的錯誤直接下結論 調用的變數值肯定是錯誤的
// console.log(undefined.toString());
// console.log(null.toString());
// 2、String String(待轉換的數據)
console.log(String(10))
console.log(String(undefined))
轉換布爾類型
// Boolean
console.log(Boolean(0))
// 在js中只有五種可以轉換為布爾值的false 其他的全部都是true
// 分別是空字元串、數字0 undefined、null、NaN
console.log(Boolean(" "));//true 空字元串是只有引號 如果字元串中有空格都算內容
console.log(Boolean(""));
console.log(Boolean(undefined));
console.log(Boolean(null))
console.log(Boolean(NaN));
console.log(Boolean("0"))
隱式轉換
/*
隱式轉換 是藉助於語言中運算符或者語句 自動將不滿足的數據類型轉換為需要的數據類型
例如 使用 - 表示進行減法運算
*/
var str = "1000";
// 因為減法運算需要兩邊都是數字 所以 自動的將str變成數字在進行計算
console.log(str - 10);
// 在自動轉換的過程中原始變數不會修改
console.log(typeof str);
console.log(str);
// 例如後面的流程式控制制 很多需要使用布爾值 如果你給的不是布爾值 就會自動轉換
流程式控制制
代碼的執行順序
代碼執行的順序 預設按照從上向下順序執行
涉及到賦值語句 先執行右邊 在執行左邊 單獨看某一個表達式 從左向右順序執行
無法實現代碼的跳躍式執行
if語句
1、語法
如果表達式為真就執行大括弧中的代碼塊 整個if語句結束 如果第一個表達式為假 會繼續檢查下一個elseif中的表達式是否為真,如果所有的表達式都為假 存在else語句的情況下 就執行else中的代碼塊
在if語句中else if與else並非必須
if(表達式){
代碼塊
}else if(表達式2){
代碼塊
}
...
else{
代碼塊
}
2、使用示例
// var has = true;
// console.log('買10個包子')
// if(has){
// console.log('買一個西瓜')
// }
var has = true;
// 在所有的表達式中 最終一定要得到一個布爾值 如果給的不是布爾值系統都會自動的轉換為布爾值
var num = 0;
if (has) {
console.log('買一個西瓜')
} else {
console.log('買10個包子')
}
var day = prompt('輸入數字0-6表示星期幾');
if (day == 0) {
console.log('摸魚')
} else if (day == 1) {
console.log('摸魚')
} else if (day == 2) {
console.log('發開代碼')
} else if (day == 3) {
console.log('提交測試')
} else if (day == 4) {
console.log('修改bug 發佈上線')
} else if (day == 5) {
console.log('加班修複線上bug')
} else {
console.log('休息睡覺')
}
switch語句
1、語法
//表達式會計算出一個值(不會自動轉換為布爾值)
switch(表達式){
case 值1:
代碼塊
break;
case 值2:
代碼塊
break;
...
default:
代碼
break;
}
//在使用Switch語句的時候 表達式的值與每一個case的值是進行的全等比較
2、基本使用
var day = prompt("輸入星期幾")
switch (day - 0) {
case 0:
console.log('摸魚')
break;
case 1:
console.log('划水')
break;
case 2:
console.log('寫代碼');
break;
case 3:
console.log('提交測試');
break;
case 4:
console.log('發佈上線');
break;
case 5:
console.log('加班修改bug');
break;
case 6:
console.log('休息 不可能');
break;
default:
console.log('今天星期幾');
break;
}
3、穿透
day = 2;
switch (day) {
case 0:
case 1:
case 2:
case 3:
case 4:
console.log('寫代碼');
break;
case 5:
case 6:
console.log('休息')
break;
}
三元
1、語法
表達式1?表達式2:表達式3
三元的語法 可以用於簡化if...else...語句
表達式1為真就執行表達式2否則就執行表達式3
2、使用示例
// 基本使用
var num = 20;
num == 20 ? console.log('num 等於20') : console.log('num不等於20')
if (num == 20) {
console.log('num 等於20')
} else {
console.log('num不等於20')
}
// 使用三元實現賦值功能
// 在設置個人資料的場景中性別 使用者看到的是 男 女 實際交互時使用的是1 2 這樣的數字表示
var inputSex = '男'
// 根據表達式的布爾值 決定是將1這個值還是2這個值賦值給sex變數
var sex = (inputSex == '男') ? 1 : 2
console.log(sex)
迴圈語句
迴圈四要素
迴圈是為了重覆的去實現一件事情或者一件有規律的事情
1、做什麼
2、計數器初始化
3、變更計數器
4、計數器作為條件的判斷 控制迴圈的次數
for語句
1、語法
for(計數器初始化;迴圈條件;計數器變更){
//迴圈體代碼
}
2、for示例
for (var i = 1; i <= 5; i++) {
console.log('跑第一圈400m')
}
3、執行過程
1、執行步驟1進行初始化計數器功能
2、執行步驟2 判斷條件是否滿足
如果條件為假 整個迴圈結束
如果條件為真 執行步驟四,執行完畢之後在執行步驟三 再次執行步驟條件判斷 根據條件判斷的結果進行重覆
4、斷點追蹤for迴圈的執行過程