- A+
条件控制语句及表达式
运算符及表达式
1.()前面不能直接用++
console.log(++(a--)); //() 不能和++ 一起使用
2.str 与 Number值比较(字符串比较时会自动变为Number值)
console.log('123A'>213);//false 自动转为number如果不能转就会出现NaN
注意:转Number值的时候是用的Number方法(有不能转换的字符换会直接转变成NAN)!
3.比较之中只要出现NAN无论是啥一般全是false
console.log(NaN==NaN);//false
4.undefined是null衍生出来了的所以是其儿子,值相等。但是类型不同所以是==而不是===
//undefined(null的派生子类) 和 null console.log(undefined==null);//true console.log(undefined===null);//false
5.字符串之间的比较就是用的ASCII码比较的,如果有多个字母进行比较,那么先比较第一位,哪一位的ASCII大那就谁大,如果第一个字母相同,那么就用第二字母进行比较。跟第一个字母相同,谁的ASCII码大谁就大,依次类推第二个字母相同就比第三个。{A:ASCII码为 65 a: 为 97 }
//字符串和字符串比较(ASCII码 A 65 a 96 自动进行ASCII码的比较 比较第一位的) console.log('a'>'b');//false console.log('a'<'b');//true console.log('bAA'<'azz');//false console.log('azA'<'azz');//false
6.布尔类型的值和NULl进行比较
//boolean类型的值和null进行比较 自动转数值(出现NaN是false) console.log(true>null);//true console.log(true>undefined);//false
7null值及undefined跟0进行比较
//undefined和0进行比较 console.log(undefined == 0);//NaN false //null是空对象引用 对应的是一个引用类型 引用类型比较的是地址 null和0进行比较 console.log(null == 0); //false
逻辑运算符
<script> var str = ''|| undefined console.log(str);//undefined var str1 ="A" ||"B" console.log(str1);//A var str2 = '' || "B"||"C" console.log(str2);//B //|| 逻辑运算规则 如果两个都是 false取最后一个 如果两都是true的情况下面 取第一个true值 如果有false跟true 取第一个true值 var str3 = 10 > 20 ? '' :("123" || 30 > 20) ? '' : '456' console.log(str3);//空 //判断10>20的正确性 如果为true则输出空 如果是在在判断‘123’ || 30>20 的正确性 依照||逻辑运算的规则两个值都为true选择第一个值所以他会输出‘’所以判断10>20无论是true还是false都是输出空字符 var str6 = (10 > 20 ? '' :"123") || (30 > 20 ? '' : '456') console.log(str6);//123 //重:理解 三目运算 三目运算和高于逻辑运算优先级 var str4 ="A" && "B" console.log(str4);//B var str5 = 'abc' && 'undefined' console.log(str5);//undefined //&& 逻辑运算规则 如果出现false 直接取false 如果全是true 就取最后一个 </script>
1.|| 逻辑运算规则 如果两个都是 false取最后一个 如果两都是true的情况下面 取第一个true值 如果有false跟true 取第一个true值
2. var str3 = 10 > 20 ? '' :("123" || 30 > 20) ? '' : '456' console.log(str3);//空
//判断10>20的正确性 如果为true则输出空 如果是在在判断‘123’ || 30>20 的正确性 依照||逻辑运算的规则两个值都为true选择第一个值所以他会输出‘’所以判断10>20无论是true还是false都是输出空字符
3.&& 逻辑运算规则 如果出现false 直接取false 如果全是true 就取最后一个
4.重:理解 三目运算 三目运算和高于逻辑运算优先级
运算符优先级(从上到下执行)
程序控制语句
条件控制语句(只会进入其中一个条件)
if 如果(第一个条件) else if 如果(第二个条件 无限加) else 否则(只有一个
上面都不满足的情况)
if 和 else if 同时满足的情况下 他只会进入第一个满足的条件
var a=10,b=20 //从上到下的顺序进行的 上面只有一个进入的下面的内容就不会执行了 if(a>b){ console.log('我是a的值为'+a) }else if(a==b){ console.log('我是b的值为'+b) }else if(a<b){ console.log('a的值小于b的值') }else{ console.log('上面的都不满足') }var a=10,b=20 //从上到下的顺序进行的 上面只有一个进入的下面的内容就不会执行了 if(a>b){ console.log('我是a的值为'+a) }else if(a==b){ console.log('我是b的值为'+b) }else if(a<b){ console.log('a的值小于b的值') }else{ console.log('上面的都不满足') }
是否符合标准体重
其中
switch
switch 属于对应的值判断 里面的是对应的表达式(产生对应的值) 下面的case就是一个个的值选项
switch(表达式){ case 值(常量): 操作 break; case 值: 操作 break; case 值: 操作 break; default: 当上面都不满足的情况下才执行默认的操作 }
等级的分数
<script> var munber1 =prompt("请输入等级ABCD") switch (munber1) { case "A":{ console.log("80-100"); break; } case "B":{ console.log("70-79"); break; } case "C":{ console.log("60-69"); break; } case "D":{ console.log("<60"); break; } default:{ console.log("error"); } } </script>
//break 跳出 跳出整个代码块 switch代码以及循环代码块 如果没有break 从头走到底 会从满足条件
的第一个走到default里面
//switch 不能判断范围 只能对应的进行特定的值的判断
//if 判断范围 在一定区间内容进行判断(功能更加强大)
今日所学
1.运算符的运算顺序
2.逻辑运算符的运算规则
3.if的用法 嵌套使用等等
4.swichd的用法,一个萝卜一个坑占内存、
5.if效率和switch效率 从一行代码区分对应的来说 if效率会高点 多行代码区分 switch效率会高(用
空间换时间)