類型轉換
隱式轉換
顯式轉換
轉換為Boolean類型:Boolean(xxx) ; !!xxx
數字類型轉換為布爾類型: NaN 、0 為 false,其他為 true。
字符串類型轉換為布爾類型:
- ‘ ’ 空字符串為 false;
- 其他都為 true。
- null 、undefined 類型轉換為布爾類型:都為 false。
4.對象類型轉換為布爾類型:所有對象都為 true。
轉換為number類型:number(xxx)
- 布爾類型轉換為數字類型:
- true為 1
- false為0
- 字符串類型轉換為數字類型:
- 字符串里面是數字時直接轉換為數字(數據類型為number)
- 字符串里面是其他時為NaN
noll 轉為 0;
undefined 轉為 NaN.
轉換為string類型:變量 + ‘’ 、 String(num) 、num.toString()
- 直接給變量加上雙引號,變成字符串: 變量 + ‘’;
2.對象 + ‘’ 時,類型為[object Object]。
算術運算
- "+ - * / %";
- 兩個變量相加規(guī)則
- 兩個數字相加
- 有一個變量是字符串時,+號的意思是連接
- NaN,null,undefined + 數字:
NaN + 20 = NaN; null + 20 = 20; undefined + 20 = NaN - 兩個小數相加,有可能出現很多小數(先把小數變成整數再處理) : (1.210 + 7.610)/10
- 兩個變量相減規(guī)則(同加)。
邏輯運算
1.邏輯非 ! :取反。
2.邏輯與 &&:
- 一假則假、全真才為真;
- 取值:
(1) 從左往右判斷如果全為true就取最后一個為true的變量;
(2)如果有false,取運行到第一個false的值,之后的不再運算。
var boo = true;
var str = '10';
var num = 33;
var a = null;
var b = 0;
console.log(boo && num && a && str); //輸出值為 null
console.log(str && b && boo && num);//輸出值為 0
3.邏輯或 ||
- 一真則真,全假才為假
- 取值:
(1)為真:第一個為true取第一個,否則取第下一個為真變量;
(2)為假:去最后一個變量。
var boo = true;
var str = '10';
var num = 33;
var a = null;
var b = 0;
console.log(num || str || boo || a || b);//輸出值為 33
console.log(b || str || boo || a || num);//輸出值為 10
console.log(b || a || boo || num);//輸出值為 true
console.log(b || a);//輸出值為 33
一元運算
- i++ :先運算再自加1; ++i :先自加1再運算;
- i-- :先運算再自減1; --i :先自減1再運算;
運算符優(yōu)先級:
() > 自加和自減 >算術運算 >關系運算(比較運算)> 邏輯運算 > 賦值運算
同級運算,從左到右執(zhí)行