JS学习—运算符(算数运算符、关系运算符、逻辑运算符、一元运算符、赋值运算符)

一、算数运算符 + - * / %(取余符号)

计算机进行自动数据类型转换:不同数据类型之间没有办法进行运算,将数据转成同一数据类型,再进行计算。

  1. 其中一个操作数是字符串,运算符是+号,别的数据类型转换成字符串,两个字符串会拼接起来。
    alert('hello' + 100);//hello100
    alert('hello' + true);//hellotrue
    alert('hello' + NaN);//helloNaN
    alert('hello' + undefined);//helloundefined
    alert('hello' + 'de');//hellode
  1. 任何数据和字符串做+以外的操作,那么字符串要先转成数字再去进行运算。(100 - "20"结果为80)
  • 如果字符串是一个纯数字字符组成的字符串,转成对应的数字;

  • 如果字符串中含有除数字外的字符,转成NaN, NaN和任何数据运算都是NaN ;

alert(100 - '20');//相当于100-20  结果为80
alert(100 -"20a");//'20a'转换成数字为NaN,所以结果为NaN
  1. 除字符串以外的数据,进行算术运算的时候,先转成数字,再进行运算
     alert(10 + true);//true=>1
     alert(10 +false); //false=>0
     alert(100 - NaN); //结果NaN
     alert(100 -undefined);//结果NaN
     alert(100 -null); //结果100  null=>0

注意:

<1>计算机不会进行小数运算
<2>在js中除数能为0

 alert(0.8-0.1)
   alert(10 / 0);//Infinity
   alert(-10 / 0);//-Infinity
Infinity是一个数字,可以跟数字运算 ,结果总是无穷大。

二、 关系运算符 < > <= >= == != === !==

  1. 判断的结果绝对是布尔值
  2. 不同数据类型在进行比较的时候所遵循的规律:
    (1) 两个操作数都是数值,则数值进行比较。
    (2)两个操作符都是字符串,则比较两个字
    符串对应的字符编码值。ASCII码表是电脑内部每一个字符对应编码得一张表。
    ①如果是两个单个字符进行比较,直接进行比较ASCII码值。
    ②逐位进行比较,直到比较出大小 得到结果。
    “abcd” < “ad” : a相同 , b为98, d为100, 所以结果为true.
    ASCII表
    (3)两个操作数有一个是数值,则将另一个转化为数值,再进行数值比较。
1 == true //true转成数字是1,false转成数字是0,比较结果是true 
10 == "10" //结果是true

(4)NaN, ==返回false,!=返回true,且NaN与自身不等。

alert(10 == "10a" );//false
alert(10 != "10a");//true
alert("10a" == NaN);//false

在这里插入图片描述

  1. === 恒等 必须数字和数据类型都相同,才返回true

    注意:Number(null)是0;Number(undefined)是NaN; 但是null == undefined是true.

三、 逻辑运算符 && || !

  1. 与运算:

        &&  (表达式1 && 表达式2 ) 只有当两个表达式都为true时,整个表达式才为真。
    
        注意短路操作:只要左边一个为假,整个表达式就为假,不会再运行右边的代码。比如 10<5 && alert(num);    不会报未声明变量num的错误,因为右边不执行。
    
  2. 或运算:

        || (表达式1 || 表达式2)  只有当两个表达式都为false时,整个表达式为假。
        (同样表达式1为真的话就会不在运行表达式二,直接得出整个表达式为true)
    
  3. 非运算:

        !表达式   将表达式的数据类型转换为布尔值(非0即真,非空即真),然后再取反。
    

四、一元运算符 ++ - -

  1. a++:

对原来变量进行加1操作 ,先取a得值作为a++表达式得值 ,再对a加一

  1. ++a:

对原来变量进行加1操作,先对a加一,再将a的值作为++a的表达式。

  var a = 5;
alert(a++);//5
alert(++a);//7 上一语句先将a的值作为a++的值输出,再对a加一变成6,此句将a加一变成7,再讲a得值7作为++a的值输出。
  1. a- - 、 - -a

对原来变量进行减1操作

五、 赋值运算符 基本 = 复合+= -= *

   “=” 将等号右边的值赋值给等号左边的变量:
   var num = 10 + 20;
   alert(num); //结果是30
   “+=” : num = num + 9  =>  num += 9

猜你喜欢

转载自blog.csdn.net/qq_43812504/article/details/108404190