進制轉(zhuǎn)換
二進制 0 1
八進制 0 7
十進制 0 9
16進制 0 1 2 3 4 5 6 7 8 9 a b c d e f;
parseInt
// 1.取整
// 2.其他進制轉(zhuǎn)10進制
// toString()
// 1.轉(zhuǎn)換字符串
// 2.10進制轉(zhuǎn)其他進制
var n = 100001001;
console.log(parseInt(n, 2)); //265
var m = 11001101;
console.log(parseInt(m, 2)); //205
var n = 68;//10進制
console.log(n.toString(16)); //把10進制68轉(zhuǎn)成18進制
console.log(n.toString(8)); //把10進制68轉(zhuǎn)成8進制
console.log(n.toString(2)); //把10進制68轉(zhuǎn)成2進制
運算符
算術(shù)運算符、拼接運算符、邏輯運算符蹲姐、關(guān)系運算符、賦值運算符亿昏、一元運算符(自增,自減)、三目運算符、位移運算符
注意:算術(shù)運算符,會產(chǎn)生隱式轉(zhuǎn)換,除了+
把一個字符串的數(shù)值,變成了真正數(shù)值(隱式轉(zhuǎn)換)
強制轉(zhuǎn)換 Number(),Boolean(),parseInt(),parseFloat()
- , 加號左右2邊,只要有一邊出現(xiàn)字符串,就是字符串的拼接
"100" + "200" == "100200"
//隱式轉(zhuǎn)換
console.log("100" * 1 + "200" * 1); //300
//強制轉(zhuǎn)換
console.log(Number("100") + Number("200")); //300
邏輯運算符
邏輯運算符通常用于布爾值的操作鹅搪,一般和關(guān)系運算符配合使用禀苦,有三個邏輯運算符: 邏輯與(AND)蔓肯、邏輯或(OR)、邏輯非(NOT)
邏輯與&&運算符屬于短路操作振乏,顧名思義蔗包,如果第一個操作數(shù)返回是 false,第二個數(shù)不管是true還是false都會返回false慧邮。
邏輯或||運算符也是短路操作调限。當?shù)谝徊僮鲾?shù)的求值結(jié)果為 true, 就不會對第二個操作數(shù)求值了误澳。
邏輯非運算符可以用于任何值耻矮。無論這個值是什么數(shù)據(jù)類型,這個運算符都會返回一個 布爾值脓匿。它的流程是:先將這個值轉(zhuǎn)換成布爾值淘钟,然后取反,規(guī)則如下:
操作數(shù)是一個空字符串, 返回true; 非空字符串, 返回false
操作數(shù)是數(shù)值0, 返回true; 任意非0數(shù)值(包括 Infinity),返回false
操作數(shù)是NaN, 返回true
操作數(shù)是undefined, 返回true
關(guān)系運算符
用于進行比較的運算符稱作為關(guān)系運算符. 關(guān)系運算符有: 小于(<)、大于(>)米母、小于等于(<=)勾扭、大于等于(>=)、相等(==)铁瞒、不等(!=)妙色、全等(恒等)(===)、不全等(不恒等)(!==)
關(guān)系運算符的比較規(guī)則:
1, 數(shù)字和數(shù)字比較, 直接比較大小
2, 數(shù)字和字符串比較, 字符串轉(zhuǎn)換為數(shù)字后再比較
3, 字符串和字符串比較, 進行字符的ASCII碼值比較
ASCII碼,128個
// 0-9 48-57
// a-z 97-122
// A-Z 65-90
比較注意事項:
1, 布爾值 ture=1, false=0
2, 只要不等于NaN, 就是true,其他有NaN的運算都為false
3, 如果要恒等, 則必須值和類型都要相等;
console.log(6 == 6);
console.log("6" == 6);// 只要值相等即可,不管類型
// 3個等于,恒等于 (全等于),值與類型必須要一致
console.log(6 === 6);
console.log(6 === "6"); // 值相等,類型不相同,false
一元運算符
只能操作一個值的運算符叫做一元運算符
var a = ++b; // 先運算,后賦值
var a = b++; // 先取值,后運算
其他類型應(yīng)用一元運算符的規(guī)則
var b = '89';
b++; //90,數(shù)值字符自動轉(zhuǎn)換成數(shù)值
var b= 'ab';
b++; //NaN,字符串包含非數(shù)值轉(zhuǎn)成NaN
var b = false;
b++; //1,false轉(zhuǎn)成數(shù)值0,累加就是1
var b = 2.3;
b++; //3.3,直接加1
++,-- 優(yōu)先于 * , / 優(yōu)先于 +
三目運算符: ? :
條件滿足,走最近,條件不滿足,走遠
位移運算符
// <<
// >>
把一個數(shù),先轉(zhuǎn)換成2進制,向左邊移動n位,再有把這個轉(zhuǎn)換10進制
字符串運算符: 字符串運算符只有一個慧耍,即:“+”身辨。它的作用是將兩個字符串相加。 規(guī)則:至少一個操作數(shù)是字符串
賦值運算符用等于號(=)表示芍碧,就是把右邊的值賦給左邊的變量煌珊。
復(fù)合賦值運算符通過 x=的形式表示,x 表示算術(shù)運算符泌豆。
如: +=, -=, *=, /=, %=等
表達式的概念:
由運算符和操作數(shù)(變量或常量)組成的式子
算術(shù)運算符組成的式子叫算術(shù)表達式定庵, 如:2+3;
關(guān)系運算符組成的式子叫關(guān)系表達式或者條件表達式踪危, 如:a>5蔬浙;
邏輯運算符組成的式子叫做邏輯表達式, 如:a&&b
程序有3大流程語句
//1. 順序 從上往下執(zhí)行
//2. 分支 (單分支,雙分支,多分支)
//3. 循環(huán) (for,while, do..while)
IF單分支
if條件判斷語句的寫法:
if (表達式){
執(zhí)行語句
}
當括號內(nèi)的表達式結(jié)果成立(為true時)贞远,則執(zhí)行大括號內(nèi)的語句畴博,否則不執(zhí)行。
注意:1. if后面的()不能省略蓝仲。2. 一條執(zhí)行語句可以省略{}, 多條時不能省略{}, 建議不管是一條還是多條都寫上{}
IF雙分支語句
語法
if (表達式) {
邏輯
} else {
邏輯
}
IF多分支語句
if (表達式) {
業(yè)務(wù)邏輯
} else if (表達式) {
業(yè)務(wù)邏輯
} else if (表達式) {
業(yè)務(wù)邏輯
} else {
業(yè)務(wù)邏輯
}
IF的嵌套
將整個if語句塊插入另一個if語句塊中
if (表達式1) {
if (表達式2) {
if (表達式3){
語句;
} else{
語句;
}
} else{
語句;
}
}
注意: 嵌套if時俱病, 內(nèi)層的每一對if-else代碼要縮進且對齊;編寫代碼時袱结,else要與最近的if配對庶艾。盡量減少if的嵌套,不方便維護,和理解
能用單分支,優(yōu)先用單分支處理
Switch語句的寫法:
switch(表達式) {
case 常量1: 語句; break;
case 常量2: 語句; break;
…
case 常量n: 語句; break;
default:語句; break;
}
表達式的結(jié)果等于哪個case的常量,則執(zhí)行其后的語句擎勘,執(zhí)行完break就跳出switch結(jié)構(gòu),都不滿足則執(zhí)行default的語句颖榜。
break的作用:是跳出switch結(jié)構(gòu)棚饵,如果沒有break,則繼續(xù)執(zhí)行下面分支的的語句(而不進行判斷)掩完。
注意case穿透噪漾,要加break
switch的應(yīng)用場景: 表達式為固定值, 不能判斷范圍