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>
来源: http://www.bubuko.com/infodetail-3301410.html