运算符

算术运算符

  • +

  • -

  • *

  • /

  • %

一元运算符

一元运算符:只作用到一个值上面的运算符,就叫做一元运算符。

  • +(正号) 自动类型转换,相当于调用了Number();

  • -(负号)自动类型转换,同时会改变值的正负号。

  • ++ 自增1

  • -- 自减1

自增自减

  • 前置自增/自减:会改变自身的值,然后再去参与运算

  • 后置自增/自减:先去参与运算,再改变自身的值。

var a = 10;
// 先将a的值,也就是10赋值给b,然后a自增1,变成11.
var b = a++;
// a现在为11,先自增1,变成12,再将值赋值给c。
var c = ++a;
// a = 12  b = 10  c = 12

赋值运算符

用于给变量赋值,最常见的赋值运算符为=.

除此之外,还有一些特殊的赋值运算符。

a+=b;//a=a+b
a-=b;//a=a-b
a*=b;//a=a*b
a/=b;//a=a/b
a%=b //a = a%b

比较运算符

用于比较两个值的大小关系,返回一个布尔值。

  • > 大于

  • < 小于

  • >= 大于等于

  • <= 小于等于

  • == 相等

  • === 完全相等(严格相等)

  • != 不等于

  • !== 严格不相等

== 和 === 的区别

==:只要两个变量的值相等,就返回true。类型不同,会自动转换成数字进行比较。

===:先比较两个变量的类型,如果类型不同,则直接返回false。如果类型相同,则再比较值。

注意

undefined和null直接比较是相等的。 严格情况下,是不相等。

undefined == null //true;
undefined === null //false

如果一个字符串和数字比较,该字符串不能转数字,比较的结果始终为fasle;

"123abc" == 123 //false

逻辑运算符

  • ! 取反 将布尔值转为相反的值

  • && 与

  • || 或

! 取反

如果是true,则变为false,如果为false,则变为true。

【重点】如果 !后面不是一个布尔值,则将其自动转换为布尔值再取反。

var a = "abc";
var b = !a;//b = false;
var c = !b;//c = true;

&& 与运算符

先判断&&之前的值是否为真,如果为真,返回后面的值。如果前面的值为假,返回前面的值。

var a = 0&&20; //0
var b = 10&&"10";//"10"
var c = 20&&null;//null

常用于条件判断,也是if分支语句中,因为if()中的值会自动转为布尔值,所以,我们在if中使用&&的时候,整个表达式只需要关心true和false两种情况。

// 如果条件表达式1和条件表达式2都成立,a的布尔值为true。 表达式有一个不成立,a的值为false
var a = 条件表达式1&&条件表达式2;
​
 表达式1的值    表达式2的值   a的值
    true          false       false
    true          true        true
    false         false       false
    false         true        false

|| 或运算符

先判断||之前的值是否为真,如果为真,返回前面的值。如果为假,返回后面的值。

var a = 5 || 10;//5
var a = 0 || 20;//20
var a = 0 || null;//null

常用于条件判断,在if小括号中,会出现以下几种情况。

var a = 表达式1||表达式2  
//如果表达式1或表达式2中有一个成立,a的布尔值都为true 两个都不成立,则为false、
表达式1的值    表达式2的值   a的值
true          false       true
true          true        true
false         false       false
false         true        true

总结: && 一假则假 || 一真则真 ! 真变假 假变真

三元运算符

格式

//表达式1成立,则整个表达式的值为表达式2的值,如果表达式1不成立,则整个表达式的值为表达式3的值。
表达式1?表达式2:表达式3
var age = 26;
//age>18成立,则result = age - 1;
var result = age>18?age-1:age+10;
console.log(result);//25

var age = 16;
//age>18不成立,则result = age + 10; result的值为26
var result = age>18?age-1:age+10;
console.log(result);//26

if分支

用于根据不同的条件,来选择执行不同的代码。

//小括号中需要一个布尔值,如果不是布尔值,则会自动转换数据类型。  
if(布尔值){
	//布尔值为true,执行这里的代码  大括号之间可以写任意行代码。
}else{
	//布尔值为false,执行这里的代码
}

案例

var age = 16;
if (age>18) {
    alert("欢迎德玛西亚黄金大神光临本网吧!")
} else {
    alert("滚")
}

其他的几种结构

//省略else
if(布尔值){
    
}

//多分支
if(布尔值){
    
}else if(布尔值){
    
}...{
    
}else{
    
}

//多分支省略else
if(布尔值){
    
}else if(布尔值){
    
}...{
    
}

案例

var score = 59;
if (score>90) {
    alert("iPhone13一台!")
}else if(score>80){
    alert("手办10个")
}else if(score>60){
    alert("口头奖励")
}else{
    alert("七匹狼混合双打")
}

分支嵌套

if(布尔值){
    if(布尔值){
        ....
        if(布尔值){
            
        }
    }
}

案例

var oilType = prompt("请输入您要加的汽油类型:92或者95");
var num = prompt("请输入您要加的量");

//定义一个变量,用于保持 单价
var price,total;

if (oilType == 92) {
    //走到这,说明汽油的类型为92号
    if (num>20) {
        //到这,说明加油量大于20,单价为5.8
        price = 5.8
    }else{
        price =6;
    }
}else if(oilType == 95){
    //到这,说明汽油的类型为95,接下来,根据加油量判断单价
    if (num>30) {
        price = 6.7
    } else {
        price = 7
    }
}else{
    alert("请输入正确的汽油类型:92或95")
}

total = num * price;
alert("总共花费:"+total+"元")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值