條件語句控制表達式
運算符及表達式
()前面不能直接寫++
console.log(++a+a++);//24 ?? //() 不能跟 ++ 一起用
字符串和數值進行比較(字符串會自動轉為數值)
//字符串和數值進行比較
console.log(1 > 2); //false
console.log('123' > 123); //false 自動轉number
console.log('123A' > 123); //false 自動轉number,如果不能轉就會出現NaN
出現NaN一般都是false
console.log(NaN==NaN);//false
undefinde是null的派生所以對應的值是相當的
//undefined 和 null的派生子類 和 null
console.log(undefined==null);//true
console.log(undefined===null);//false
字符串和字符串比較(根據ASCII碼 A65 a96 自動進行ASSCII碼比較 但是是比較第一位)
//字符串和字符串比較(根據ASCII碼 A65 a96 自動進行ASSCII碼比較 但是是比較第一位)
console.log('a'>'b');//flase
console.log('a'<'b');//true
console.log('bAA'<'azz');//false
布爾類型的值和null進行比較
//boolean類型的值和null進行比較 自動轉數值(出現NaN是false)
console.log(true>null);//true
console.log(true);//true
console.log(true>undefined);//false
轉換會先轉換再進行比較
//恒等 這倆個內容是一個內容
console.log(Number(true)==1);//true
console.log(Number(true)===1);//true
console.log(Number(0)==false);//true
null值及undefined跟0進行比較
//undefined和0進行比較
console.log(undefined==0);//NaN false
//null是空對象引用 對應的是一個引用類型 引用類型比較的是地址
console.log(null==0);//false
邏輯運算符
//邏輯運算符 && 短路與 &斷路與 ||短路 或 |斷路或!
//&& 所有的同時滿足才為真 && 只要前面有一個是假后面的就不會看了 &看完全部
vara=10,
b=20,
c=30;
console.log(a>b&&b<c);//false
console.log(c>b&&b<c);//true
// ||有一個是true就是true? 前面只要出現了ture 就不看后面的? |看完全部
console.log(c>b||a>b);//true
//! 取反
console.log(!c>b||a>b);//flase
console.log(!(c>b||a>b));//flase
// || 常用 有一個是ture 取true
console.log(a>b||20);//true ?? //20
vari=0||10
console.log(i);//10
//如果倆個都是false 取最后一個
varstr=undefined||''
console.log(str);//'' 空字符串
//如果倆個都是true的情況下 取第一個位true的結果
varstr1="A"||"B"
console.log(str1);//A 短路操作
varstr2=""||'false'||'true'
console.log(str2);//false
//三目運算 邏輯運算的優(yōu)先級會高于三目運算符
varstr3=(10>20?'':'123')||(30>20?'':'456')
console.log(str3);//123
//如果出現false 直接取false 如果全是true 取最后一個
varstr4=10&&20;
console.log(str4);//20
varstr5=undefined&&''
console.log(str5);//undefined
//轉成boolean類型
varstr6=!123
console.log(str6);//false
//相當于將對應的boolean類型表達式解析出對應的值
console.log(20>30||30<20);//false
console.log(false||false);//false
console.log(20>30||20);//20
console.log(false||20);//20
console.log(0||20);//20
表達式的概念:
由運算符和操作數(變量或常量)組成的式子
1、算術運算符組成的式子叫算術表達式,? 如:2+3;
2、關系運算符組成的式子叫關系表達式或者條件表達式, 如:a>5;
3、邏輯運算符組成的式子叫做邏輯表達式, 如:a&&b
運算符優(yōu)先級(從上到下執(zhí)行)
運算符描述

程序控制語句(所有程序、語言都有)
控制程序的執(zhí)行(利用條件控制 利用循環(huán)來控制)
條件控制語句
if 如果(第一個條件)else if 如果(第二個條件 無限加)else 否則(只有一個 上面都不滿足的情況下)
if 和 else if 同時滿足的情況下 它只會進入第一個滿足的條件
if(條件表達式(boolean類型的值,如果當前這個不是一個boolean類型的值它會自動轉成boolean類型)){
? ? 需要執(zhí)行的代碼
}elseif(條件表達式){
? ? 需要執(zhí)行的代碼
}else{//上面的都不滿足的情況下
? ? 需要執(zhí)行的代碼
}
var a=8,b=8;
//從上到下的順序進行的 上面只有一個進入到下面的內容就不會執(zhí)行了
if(a>b){
? ? console.log("我是a的值為"+a);
}else if(a==b){
? ? console.log("我是b的值為"+b);
}else{
? ? console.log("上面的都不滿足");
}
一條執(zhí)行語句可以省略{}, 多條時不能省略{}, 建議不管是一條還是多條都寫上{}
條件嵌套
//保證良好的縮進 保證可讀性
//求y的值
varx=prompt()
vary
//可能不是數值
//提取條件優(yōu)秀級 先找出問題的條件 再找大的條件 再找小的條件
if(Number(x)||x==0) {
if(x<0) {
y=-1
}elseif(x==0) {
y=0
}else{
y=1
}
alert('當x的值為'+x+'時,'+'y的值為'+y);
}else{
alert('您的輸入有誤!')
}
switch
switch屬于對應的值判斷? 里面的是對應的表達式(產生對應的值)下面的case就是一個個的值選項
switch(表達式){
? ? case值(是常量):操作break;
? ? case值:break;
? ? case值:break;
? ? default;當上面都不滿足的情況下才執(zhí)行默認的操作
}
實例
//指令系統(tǒng) 發(fā)送1吃飯 發(fā)送2玩游戲 發(fā)送3睡覺 發(fā)送4再來一次
varnumber=prompt('請輸入指令');
//恒等判斷 需要對應的類型和值一樣
//需要加引號
switch(number) {
case'1':
case'5'://1和5干一樣的事
alert('準備吃飯');
? ? break;
case'2':
? ? alert('準備玩游戲');
? ? break;
case'3':
? ? alert('準備睡覺');
? ? break;
case'4':
alert('再來一次');
break;
default:
? ? alert('無該指令!');
}
//break跳出 跳出整個代碼塊 switch代碼以及循環(huán)代碼塊
//如果沒有break 從頭走到底 會從滿足條件的第一個走到default里面
//switch不能判斷范圍 只能對應的進行特定的值的判斷
//if 判斷范圍 在一定區(qū)間內容進行判斷(功能更加強大)