表达式

表达式是用于javascript脚本运行时进行计算的式子,可以包含常量,变量,运算符

运算符

  1. 算数运算符
  2. 字符连接符
  3. 赋值运算符
  4. 比较运算符
  5. 逻辑运算符
  6. 三元运算符
  7. 其他运算符

算数运算符

算数运算符就是我们平常生活中用到的加减乘除.

加法 +

  1. 普通加法
     var num = 1;
     var num2 = 2;
     var num3 = num + num2;
     console.log(num3); //输出结果是3
    
  2. 自增和自减 自增(自减)是在原来的结果之上加1或减1.但是自增和自减分钟前缀和后缀,不同的位置,执行的事件也不相同
    • 前缀形式先加减1,再执行其他语句
    • 后缀,先执行其他语句,再进行加减
   var num = 1;
   console.log(num++);//先输出,然后再进行+1
   console.log(num);//num已经是之前语句运行的结果,是2

   var num2 = 3;
   console.log(++num);//先对num2进行+1操作,然后再执行console语句,输出结果为4
   console.log(num);//输出结果为4
  1. 字符连接符 在之前的章节中,我们说过,所有数据和字符串进行相加运算,得到的结果都是字符串.因此,在和字符串进行相加的时候,+就是作为一个字符连接符来使用
    var num = 1;
    var str = "2";
    console.log(typeof(num+str));//输出结果是String
    

减法

    var num = 10;
    console.log(num-1);

乘法

    var num = 10;
    var rs = num *3;

除法

  • 普通除法,得到结果
  • 取余,取余数
      var num = 10
      var rs = num/3; //3.333
      console.log(num%2);//0
      console.log(num%3);//1
    

    赋值运算符

  • =

    我们曾声明过很多变量,其中有一个 = .我们习惯地称它为等于号.但是在编程语言里,它并不是等于号.而是一个赋值符号.例如 var name = "javascript" 就是将字符串"javascript"赋值运算给左边的变量name;

  • += 在原来的基础上,加上 右边的值
    var num = 10;
      num += 1;
    console.log(num);//输出结果为11
    
  • -= 在原来的基础上,减去右边的值
    var num = 10;
      num -= 2;
    console.log(num); //输出结果8
    
  • *= 在原来的基础上,乘以右边的值

    var num = 10;
      num *= 2;
    console.log(num);//输出结果20
    
  • /= 在原来的基础上,除以右边的值

      var num = 10;
      num /= 2;
      console.log(num);//输出结果5
    
  • %= 在原来的基础上,取余赋值

      var num = 10;
      num %= 3;
      console.log(num);//输出结果num
    

    比较运算符

  • 等于和全等于
  • 不等于和不全等于
  • 大于 >和大于等于 >=
  • 小于 < 和小于等于 <=

等于和全等于

  • == 等于,只需要值一样就可以,包括隐式转换后的值
  • === 全等于,需要满足两个条件,值相同,数据类型相同

    var num1 = 10;
    var num2 = 10;
    console.log(num1 == num2); //true
    console.log(num1 === num2); //true

    var num3 = "10";
    console.log(num1 == num3);//true
    console.log(num1 === num3); //false

不等于和不全等于

  • != 不等于,值不相等
  • !== 不全等于,值和类似不相等
var num1 = 10;
var num2 = 11;
var num3 = "10";
console.log(num1 != num2); //结果为true
console.log(num1 != num3); //结果为false
console.log(num1 !== num3);//结果为true

大于和大于等于

  • 大于 >
  • 大于等于 >=
    var num1 = 10;
    var num2 = 9;
    var num3 = 11;
    console.log(num1>num2);//true
    console.log(num1>=num2);//true
    

小于和小于等于

  • 小于 <
  • 小于等于 <=
    var num1 = 10;
    var num2 = 9;
    console.log(num1<num2);//false
    console.log(num1<=num2);//false
    

逻辑运算符

逻辑运算符如下表所示 (其中expr可能是任何一种类型, 不一定是布尔值):
运算符 语法 说明
逻辑与,AND(&&) expr1 && expr2 若 expr1 可转换为 true,则返回 expr2;否则,返回 expr1。
逻辑或,OR() expr1 or expr2 若 expr1 可转换为 true,则返回 expr1;否则,返回 expr2。
逻辑非,NOT(!) !expr 若 expr 可转换为 true,则返回 false;否则,返回 true。

短路计算

由于逻辑表达式的运算顺序是从左到右,也可以用以下规则进行"短路"计算:

  • (some falsy expression) && (expr) 短路计算的结果为假。
  • (some truthy expression) || (expr) 短路计算的结果为真。

短路意味着上述表达式中的expr部分不会被执行,因此expr的任何副作用都不会生效(举个例子,如果expr是一次函数调用,这次调用就不会发生)。造成这种现象的原因是,整个表达式的值在第一个操作数被计算后已经确定了

逻辑与(&&)

a1 = true  && true      // t && t 返回 true
a2 = true  && false     // t && f 返回 false
a3 = false && true      // f && t 返回 false
a4 = false && (3 == 4)  // f && f 返回 false
a5 = "Cat" && "Dog"     // t && t 返回 "Dog"
a6 = false && "Cat"     // f && t 返回 false
a7 = "Cat" && false     // t && f 返回 false
a8 = ''    && false     // f && f 返回 ""
a9 = false && ''        // f && f 返回 false

逻辑或(||)

o1 = true  || true      // t || t 返回 true
o2 = false || true      // f || t 返回 true
o3 = true  || false     // t || f 返回 true
o4 = false || (3 == 4)  // f || f 返回 false
o5 = "Cat" || "Dog"     // t || t 返回 "Cat"
o6 = false || "Cat"     // f || t 返回 "Cat"
o7 = "Cat" || false     // t || f 返回 "Cat"
o8 = ''    || false     // f || f 返回 false
o9 = false || ''        // f || f 返回 ""

逻辑非(!)

n1 = !true              // !t 返回 false
n2 = !false             // !f 返回 true
n3 = !''                // !f 返回 true
n4 = !'Cat'             // !t 返回 false

results matching ""

    No results matching ""