运算符
算数运算符
+ , - , * ,/ , % 浮点数运算会有问题
console.log(0.1+0.2); //0.30000000000000004
console.log(0.07*100); //7.000000000000001
递增和递减运算符
++ , - - 前置自增/自减和后置自增/自减如果单独使用效果一样
var x=20;
x++;
console.log(x); //21
var y=20;
++y;
console.log(y); //21
放入式子里会不同 前置:先自加/自减,后运算 后置:先原值运算,后自加/自减
var a=10;
++a; //a=11
var b=++a +2; //a=12
console.log(b); //14
var c=10;
c++; //c=11
var d=c++ +2; //c=11 +2运算后 c=12
console.log(d); //13
var e=10;
var f=e++ + ++e; //e++ 使用e=10运算,再自加 e=11, ++e e=12, +运算后 e=12
console.log(f); //22
较多用后置
比较运算符
< , > , >= , <= , == , != , === , !== 比较运算后会返回一个布尔值 ==会将数据转型再比较
console.log('18'==18); //true
使用===, 判断左右两个数据的类型和值是否都相等
console.log('18'===18); //false
逻辑运算符
&& , || , ! 运用于多条件判断
逻辑中断
有多个表达式时,左边的表达式已经可以确定结果,就不再看右边的表达式
//&& 从左到右,有错误的就输出错误的,全对就输出最后一个
console.log(123 && 456); //456
console.log(0 && 456); //0
console.log(0 && 1+2 && 456); //0
// || 从左到右,有正确的就输出第一个正确的,全错就输出最后一个
console.log(123 || 456); //123
console.log(0 || ''); //''
// 逻辑中断影响运算结果
var num=10;
console.log(123 || num++);
console.log(num); //10
赋值运算符
= , += , - =, * = , / = ,%= ,
运算符优先级
优先级 | 运算符 | 顺序 |
---|
1 | () | () | 2 | 一元运算符 | !,++ ,- - | 3 | 算数运算符 | 先 * / %后+ - | 4 | 关系运算符 | > ,>= , < , <= | 5 | 相等运算符 | == , != , === , !== | 6 | 逻辑运算符 | 先&&,后|| | 7 | 赋值运算符 | = | 8 | 逗号运算符 | , |
分支控制语句
if语句
if
if(条件表达式){
条件表达式成立执行代码
}
if-else
if(条件表达式){
条件表达式成立执行代码
}else{
条件表达式不成立执行代码
}
if-else if
if(条件表达式1){
条件表达式1成立执行代码
}else if(条件表达式2){
条件表达式2成立执行代码
}else{
条件表达式1、2都不成立执行代码
}
三元表达式
条件表达式 ? 表达式成立执行 : 表达式不成立执行
var x= 5>7 ? 'yes' : 'no' ;
console.log(x); //no
//用if else表达
if(5>7){
console.log('yes');
}else{
console.log('no');
}
switch语句
switch(表达式){
case value1:
表达式值等于value1执行代码
break;
case value2:
表达式值等于value2执行代码
break;
case value3:
表达式值等于value3执行代码
break;
default:
表达式值不等于以上任一个value执行代码
break;
}
表达式的结果与value相等判断用的是===,即类型和值都要相等 break的作用是匹配到一种情况后立即退出匹配,否则会继续走下面的分支
var num=2;
switch(num){
case 1:
console.log(num);
break;
case 2:
console.log(num);
case 3:
console.log(num);
default:
console.log(num);
break;
}
//输出三个2
先走case,再走default
var num=3;
switch(num){
default:
console.log(num);
break;
case 1:
console.log(num);
break;
case 2:
console.log(num);
break;
case 3:
console.log(num);
}
//输出两个3
|