JS基础入门篇(七)—运算符

1.算术运算符

1.算术运算符

  • 算术运算符:+*/%(取余)++
  • 重点:++前置和后置的区别。

1.1 前置 ++ 和 后置 ++

前置++:先自增值,再使用值
后置++:先使用值,再自增值

<script>
    console.log("-------- 后置++ ----------");
    var a=0;
    console.log(a++);//0,后置是先用值,在自增值。
    console.log(a);//1 自增后的值
    console.log("-------- 前置++ ----------");
    var b=2;
    console.log(++b);//3 前置是先自增,后用值。
    console.log(b);//3
    console.log("-------- 后置++ ----------");
    var d = 2;
    var e = d++;// 后置是先用值,在自增值。
    console.log( d,e );//3 2 
    console.log( "--------- 前置++ -------------" );
    var f = 20;
    var g = ++f;// 前置是先自增,后用值。
    console.log( f,g );//21 21;
</script>

2.赋值运算符

2.赋值运算符

  • 赋值运算符:+=—=*,=/=%=
  • 计算完值后,并赋值给自己。

3.关系运算符

3.关系运算符

  • <= , >= , == , != , === , !==
  • 注意:返回的值都是布尔值。

3.1 ===== 的区别

  • == 进行比较的时候,会比较 两者的内容,不进行数据类型的比较
  • === 不仅判断内容 ,还会判断 数据类型。
<script>
    console.log(1=="1");//true 只比较内容,内容相等故为真。
    console.log(1==="1");//false 不仅比较内容,还比较数据类型。数据类型不为真,故假。
    console.log( 1 != "1" );//false
    console.log( 1 !== "1" );//true
</script>

3.2需要记忆的内容

<script>
    console.log( null == undefined );//true
    console.log( null == 0 );//false
    console.log( undefined == 0 );//false
</script>

4.逻辑运算符

  • && (并且)
    如果左边为真,返回右边的值。
    如果左边为假,返回左边的值。
  • || (或者)
    如果左边为真,返回左边的值。
    如果左边为假,返回右边的值
  • ! (否)
    后面的数转成布尔值然后取反
<script>
    console.log( 1 && 2 );//2
    console.log( 0 && 2 );//0
    console.log( 0 && "a" );//0
    
    function fn(){
        console.log("fn执行了");
    }

    
    false && fn();//不执行fn();
    true && fn();//执行fn();
    undefined && fn();//不执行fn();

    console.log( 0 || 1 );//1
    console.log( 2 || 1 );//2
    
    var res = "a" || "b";
    console.log( res );//"a"

    console.log( !"false" );//"false"
</script>

5.三目运算符

三目运算符: 判断条件 ? 语句 1 : 语句 2

    判断条件 成立 执行语句 1 
    不成立 执行语句 2
            

6.数组的存储

数组赋值的时候,传递的是数组的地址。

<script>
    var a = 1;
    var b = a; // 传值,把a的值给b
    a = 2;
    console.log( b );//得到的值是1.
//------------------------------------------
    var arr = ["a","b"];
    var res = arr;  // 传址,赋址
    arr[0] = 1;
    console.log( arr );//根据地址找数组,得到的是["1","b"]
    console.log( res );//根据地址找数组,得到的是["1","b"]
//------------------------------------------
    var arr1 = ["a","b"];
    var res1 = ["a","b"]; 
    arr1[0] = 1;
    //arr1数组的地址和res1数组的地址不相同,虽然内容相同。
    console.log( arr1 );//根据地址找数组,得到的是["1","b"]
    console.log( res1 );//根据地址找数组,得到的是[a","b"]
</script>
    原文作者:梁志芳
    原文地址: https://segmentfault.com/a/1190000014891017
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞