JavaScript运算符

目录

 

 

1.一元运算符:只有一个运算数的运算符

2.算数运算符

3.比较运算符:

4.三元运算符

5逻辑运算符:


 

1.一元运算符:只有一个运算数的运算符

++, -- , +(正号)-(负号)

#: ++ -- :自增 自减

#:++(--)在前,先自增(自减),再运算

#:++(--)在后,先运算,再自增(自减)

# +(-):正负号

注意:在JS中,如果运算数不是运算符要求的类型,那么js引擎会自动的将运算数进行类型转换。

#:其它类型转number:

#:string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)

#:boolean转number:true转为1,false转为0

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    var num = 3;
    var a = ++num;
    var num1 = 3;
    var b = num1++;

    document.write(num + "<br>"); //4
    document.write(a + "<br>"); //4
    document.write(b)//3
    document.write("<hr>");

    var c = +"123abc";
    document.write(typeof (c) + "<br>");
    alert(typeof (c));
    document.write(c + 1 + "<br>");
    document.write("<hr>");

    var flag = +true;
    var flag2 = +false;
    document.write(typeof (flag) + "<br>"); //number
    document.write(flag + "<br>");
    document.write(flag2 + "<br>");
</script>
</body>
</html>

 

2.算数运算符

+ - * / % ...

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>算数运算符</title>
</head>
<body>
<script>
    /*
    + - * / % ...
     */
    var a = 3;
    var b = 4;

    document.write(a + b + "<br>");
    document.write(a - b + "<br>");
    document.write(a * b + "<br>");
    document.write(a / b + "<br>");
    document.write(a % b + "<br>");


</script>
</body>
</html>

 

3.比较运算符:

比较方式:

1.类型相同:直接比较

#字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。

2.类型不同,先进行类型转换,在比较

#:===:全等于。 在比较之前,先判断类型,如果类型不一样,则直接返回false

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>运算符比较</title>
</head>
<body>

<script>
    document.write((3 > 4) + "<br>");

    document.write(("abc" < "acd") + "<br>");

    document.write(("123" === 123) + "<br>");

    document.write(("123" == 123) + "<br>");

    document.write("<hr>")
</script>
</body>
</html>

4.三元运算符

var c = a > b ? 1:0;

语法:

表达式? 值1:值2 ;

判断表达式的值,如果是true则取 值1,如果是false则取 值2 。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>三元运算符</title>
</head>
<body>
<script>
    /*
     var c = a > b ? 1:0;
     语法:
        表达式? 值1:值2 ;
        判断表达式的值,如果是true则取 值1,如果是false则取 值2 。
     */
    var a = 3;
    var b = 4;

    var c = a > b ? 1:0;

    alert(c);
</script>
</body>
</html>

5逻辑运算符:

&&: 与(短路)

||:或(短路)

!:非

其它类型转boolean:

1.number:0 或 NaN 为假,其它为真

2.string:除了空字符串(""),其它都是true

3.null或undefined :都是false

4.对象:所有对象都是true

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>逻辑运算符</title>
</head>
<body>
<script>
    /*
    逻辑运算符:
    &&: 与(短路)
    ||:或(短路)
    !:非
       其它类型转boolean:
         1.number:0 或 NaN 为假,其它为真
         2.string:除了空字符串(""),其它都是true
         3.null或undefined :都是false
         4.对象:所有对象都是true

     */

    var flag = true;
    document.write(flag + "<br>");
    document.write(!flag + "<br>");

    document.write("<hr>");

    var num = 3;
    document.write(!!num + "<br>");

    document.write("<hr>");

  /*  while (true){

    }*/
  document.write("<br>");

  var str1 = "abc";
  var str2 = "";
  document.write(!!str1+ "<br>");
  document.write(!!str2+ "<br>");

  document.write("<hr>");

  //null & undefined

    var obj = null;
    var obj2 ;
    document.write(!!obj + "<br>");
    document.write(!!obj2+ "<br>");

    document.write("<hr>");

    //null & undefined

    var date = new Date();
    document.write(!!date+ "<br>");

    document.write("<hr>");

   /* if (obj != null){
        //防止空指针异常

    }
 */

  var  obj3 = "54378dh";
    if (obj3) {
        //防止空指针异常
        alert(123);
    }
    //js中可以这样定义,简化书写。
    if (obj3 != null && obj3.length > 0){
        alert(111);
    }


    var flag = true;
    document.write(flag + "<br>");
    document.write(!flag + "<br>");

    document.write("<hr>");

    //number
    var num = 3;
    var num2 = 0;
    var num3 = NaN;
    document.write(!!num + "<br>");
    document.write(!!num2 + "<br>");
    document.write(!!num3 + "<br>");

    document.write("<hr>");

</script>
</body>
</html>

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值