运算符
算术运算符
+ - * / % ++ --
除了加法的所有运算全部会先转为number在进行运算(Number) 转不成功出现NaN
一个数值和NaN相加得到的也是NaN
加法运算如果有一个值为字符串那么会进行字符串拼接
++前置和后置,前置先执行++ ,后置后执行++
++不能放在()之前
运算对应的顺序,先执行()里的内容,在执行对应的* / % 在执行+ -操作
逻辑运算符
&& || !
&& 两个都是true的时候,取最后一个true,
两个都是false的时候取第一个false
||与&&正好相反
! 取反
比较运算符
> < >= <= != == === !==
当出现<>号他会自动进行转换(number)
对应比较的都是字符串会比较ascii码(A65)(a97)
== 比较 只比较值,不比较类
=== 类型 和值都要一样才会ture
当出现对应的!= 将原本的结果取反就行
赋值运算符
= += -= *= /= %=
赋值运算符的他是属于最后执行的(赋值操作是最后操作)
位移运算符(进位补0)
<< >>
表达式概念
表达式是由对应的值(变量)和运算符构成的式子
由对应的算法运算符组成的,算法表达式(返回对应结果)
由逻辑运算符组成的 逻辑表达式(返回对应的值)
由对应的比较运算符组成的式子 条件表达式(返回 boolean类型的值)
三目运算符
条件表达式?true的结果:false
示例
//如果2大于3那么返回对应的10 如果不大于返回20
var result =2>3?10:20
varun
//如果对应的她填写是对应的一个变量或值 那么他会将这个值 直接转换为boolean类型
vara=un?"你好""hello
执行顺序
先算括号,在算 * / %再+ - 在逻辑运算 在三目运算符 在赋值
控制语句
控制语句是对于程序的一个控制,他分为对应的条件控制语句,和循环控制语句
条件控制语句是根据对应的条件来执行对应的代码,循环控制语句是根据对应的条件来执行多次重复代码
条件控制语句
常见的控制语句
if else (根据对应的条件来判断,判断的是boolean条件,如果不是boolean他会转化为boolean类型)
switch case(根据对应的值,来进行比对 里面采用的是===会自动进行比对)
示例
<script>
varsrc=prompt("");
if(src%2) {
console.log("奇数");
}else{
console.log("偶数");
}
</script>
if多分支嵌套
<script>
varnumber=prompt("");
console.log(number);
// if (!(number % 2) && number % 2 != 0) {
// console.log("当前输入出错");
// } else if (number % 2 == 0) {
// console.log("当前是偶数");
// } else {
// console.log("当前是奇数");
// }
if(isNaN(number%2)) {
console.log("当前输入出错");
}elseif(number%2==0) {
console.log("当前是偶数");
}else{
console.log("当前是奇数");
}
// if ((!number % 2) + 1) {
// console.log("当前输入错误");
// } else if (number % 2 == 0) {
// console.log("当前是偶数");
// } else {
// console.log("当前是奇数");
// }
</script>
if多分支最多只推荐分支2次,不然会导致代码阅读性很差,优化很差
switch case
switch{
case"1":
console.log("吃饭");
break
case"2":
console.log("睡觉")
break
default:
console.log("default");
}
switch支持嵌套
//支持嵌套
switch(1){
case 1:
switch(2){
case2:
console.log("我是2");
break;
default:
console.log("hello");
}
break;
default:
console.log("default");
}
switch 分支支持嵌套,但是不推荐嵌套,因为嵌套起来非常的没有阅读性,而且不方便维护
if else 和switch的对比
if else 常用区间判断 switch case用于值判断( 枚举判断)
if else 的效率低于switch case(用空间换时间)如果当前只有准确值的判断建议使用switch
总结
if else 是用于区间判断 switch case 是用于值判断
switch case 里面使用的判断是恒等判断(支持所有类型的值)
if else支持嵌套 switch case也支持嵌套(一般建议不要嵌套两层)
if可以单独用
if的多分支采用else if来实现
对应的 switch里面的多分支 采用多个case 连用
if (else if else) 后面的代码 如果只有一行可以省略{} 一般不建议
if里面的条件表达式返回的是对应的boolean类型的值 如果当前的式子不是条件表达式 他会自动转换boolean类型
if else 的效率低于switch case(用空间换时间)如果当前只有准确值的判断建议使用switch