前端开发 | 青训营笔记

70 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第7天

1.JS运算符

运算符也成为操作符,对多个值或一个进行计算,并获得结果,比如typeof也就是运算符,可以获得一个值的类型。

算数运算符

字符串两相加,则为“拼串操作”。(注:任何值与字符串作加法,都会转换为字符串)

  • "+"进行加法运算,将结果返回(任何与Nan的计算都是NaN)
  • "-"进行减法运算
  • "*"进行乘法运算
  • "/"进行除法运算
  • "%"进行取模运算(取余数)

任何值与字符串作加法,都会转换成字符串

<script>
 var c=2;
 console.log("c="+c);
//  c=2
 result = 1+2+"3";
 console.log(result);
 //  33
 result = "1"+2+3;
 console.log(result);
//  123
</script>

除了加法,其余都转换为Number数值型

<script>
 result = 100-true;
//  99
 result = 2*"8";
//  16
result=2*undefined;
// NaN
result=2*null;
// 0
</script>

取模运算

<script>
 result = 9%4;
//  5
 result = 9%3;
//  0
result= 9 % 2;
// 1
</script>

一元运算符

只需要一个操作数

"+" 正号,不对数字产生任何影响

"-" 负号,对数字进行负号的取反

对于非Number值会有先转换为Number,可对其他数据类型进行"+"号,进行类型转换

<script>
a="18";
a=+a;
// a——>Number
</script>

自增自减

自增

通过自增可以使变量在自身基础上加1

<script>
var a = 1;
a++; 
// 每调用一次+1
console.log("a="+a);
// a = 2
</script>
  • a++ 后++
  • ++a 前++

无论是a++,还是++a,都立刻使原变量自增1

但是a++,等于原变量的值(自增前的值), ++a,等于自增后的值

自减

通过自减可以使变量在自身基础上减1

  • a-- 后--
  • --a 前-- 自减与自增同理

逻辑运算符

  • !非
  • &&与
  • ||或

!非运算

!可以用来对一个值进行非运算,对布尔值进行取反操作

<script>
var a = true;
a =!a;
console.log("a="+a);
// a为false
a = !!a;
// 两次取反,结果不会变
</script>

&&与运算

规则:

都是true才会true

<script>
    var result = true && true;
    // 为true
    result = true && false;
    //  为false
    result = false && false;
    // 为 false
    result = false && true;
    // 为false
</script>

JS中的与属于“短路”,若第一个值为false,则不会检查第二个值(找false,有一个则返回false)

||或运算

与“与”相反

<script>
    var result = false || false;
    // 为false
    result = true || false;
    //  为true
    result = false || true;
    //  为true
    result = true || true;
    //  为true
</script>

只要有一个true,则不会检查第二个值

&&与||非布尔值

var result = 1 && 2 ; 会将其转换为布尔值,再运算,并返回原值

  • 5&&6 ——>6
  • 0&&2 ——>0
  • 2&&0 ——>0
  • NaN&&0 ——>NaN
  • 0&&NaN ——>NaN

短路与靠前的False,都是true返回后true;第一个是true,必返回第二个,第一个是false,返回第一个

    result = 1 || 2;
    //  如果第一个是true,则返回第一个
    //  如果第一个是false,则直接返回第二个