首頁 >web前端 >js教程 >js運算子優先權的比較及js邏輯運算子的解析

js運算子優先權的比較及js邏輯運算子的解析

php是最好的语言
php是最好的语言原創
2018-08-08 17:19:542981瀏覽

本文對不同分類的運算子進行了詳解,然後描述了js運算子的優先級,優先級指的是運算子具有計算的優先級別,下文會有詳細的介紹。

怎麼比較js中的運算子? JavaScript語言中的比較運算子 主要用於比較兩個運算元的值是否相等 或大小情況。文章具有參考價值,需要的可以收藏。

運算子概述

JavaScript提供了一組用於操作資料值的運算子又稱為操作符
運算子可以按照作用的不同或操作變數數量的不同進行分類

  • 算數運算子

#1.如果運算數中的一個或兩個是字串型別JavaScript會自動轉換為數字值在進行計算
2.如果運算數中的一個換兩個是字串類型但其中的字元不是數字JavaScript會自動轉換數字值的到NaN結果
3.任何一個運算數都是NaN 結果都是NaN
4.布林值false和true會轉轉為0和1進行計算

  • #加法運算子

1 .如果兩個操作數都是數字值的話會進行加法計算
2.如果字符串進行加法計算- 字符串連接運算符(拼串)
3.如果布爾類型進行加法計算- 將布爾型別轉換為數字值再進行加法計算

  • 減法運算子

1.減法運算前先將其他型別轉換為number型別再進行計算
2.如果字串進行減法計算的話- 將字串類型轉換為數字值再進行減法計算
3.如果布林類型進行減法計算- 將布林類型轉換為數字值,再進行減法計算

  • 求餘運算子

求餘運算子用於計算兩個運算數整除後的餘數
求的結果是正數還是負數與第一個運算元是正數或負數有關(與第二個無關)

    console.log(100 % 3);//1
    console.log(8 % 4);//0

    console.log(100 % -3);//1
    console.log(8 % 4);//0

    console.log(-100 % 3);//-1
    console.log(-8 % 4);//0

    console.log(-100 % -3);//-1
    //与减法的情况保持一致
    console.log('卧龙学苑' % 2);//NaN
  • 自增運算子與自減運算子

#自增運算子用於整數值逐次1 分為:
a.前置型:自增運算子位於運算數之前先加1 再賦值

前置自增运算符 - ++变量名

b.後置型:自增運算子位於運算數之後先賦值再加1

后置自增运算符 - 变量名++

自減運算子用於整數值逐次-1 分為:
a.前置型:自減運算符位於運算數之前先減1 再賦值
b.後置型:自減運算子位於運算數之前先賦值再減1

  • 運算符的優先等級
    運算子具有計算的優先等級
      1.先計算優先等級高的運算子
      2.運算子的等級相同,從左至右的計算
      3.運算子中優先等級最高的是「()」
      4.優先計算的表達式利用"()"包裝起來

    console.log(100 + 200 - 150 * 3);// -150
    console.log(100 + 200 % 3);// 102
    console.log(2 * 200 % 3);// 1

    var num = 10;
    console.log(5 + ++num);// 16
  • 比較運算子

JavaScript語言中的比較運算子主要用於比較兩個運算元的值是否相等或大小狀況

一.大于与小于比较运算符
    console.log(10 > 11);//false
    console.log(11 > 10);//true
    console.log(10 >= 10);//true
    // 2.boolean类型 - 将boolean类型转换为number类型
    console.log(true > false);//true
    console.log(true > 0);//true
/*
    3.string类型 - a.英文; b.中文
    * 英文或中文 - 将文本转换成Unicode码 - 对应具有数字值
    * 英文单词 - 从左至右的一次比较字母 Unicode 码的大小
*/
    console.log(&#39;a&#39; < &#39;b&#39;);//true
    console.log(&#39;a&#39; > &#39;A&#39;);//true
    console.log(&#39;abc&#39; > &#39;cba&#39;);//false
    console.log(&#39;abc&#39; > &#39;acd&#39;);//false

    console.log(&#39;我&#39; > &#39;你&#39;);//true
二.相等与不等比较运算符

相等比較運算子
*與賦值運算子的差異
*賦值運算子(=)
*相等比較運算子(==)
不等比較運算子
*符號是"!="
*不是"a8093152e673feb7aba1828c43532094"
相等與不等比較運算子只比較運算元只比較運算元

    // 1.number类型
    console.log(10 == 10);// true
    console.log(10 == 11);// false
    // 2.boolean类型
    console.log(true == true);// true
    console.log(true == false);// false

    console.log(true == 1);// true

    // 3.string类型
    console.log(&#39;a&#39; == &#39;a&#39;);// true
    console.log(&#39;a&#39; == &#39;b&#39;);// false
    
    console.log(&#39;100&#39; == 100);// true
三.全等与不全等运算符 
全等与不全等运算符 不仅比较值 还比较类型
    console.log(10 === 10);// true

    console.log(&#39;10&#39; === 10);// false
    console.log(&#39;10&#39; == 10);// true
  • 函數

isNaN()函數用來判斷其參數是否為NaN值(非數字值)
作用:判斷目前值是否為NaN
true - 表示當前值是NaN(不是數字值)
false - 表示當前值不是NaN(不是數字值)
isFinite()函數
作用- 判斷當前值是否為無窮大
false - 表示目前值是無限大
true - 表示目前值是有限數值

    console.log(isNaN(100));// false
    console.log(isNaN(Number(&#39;卧龙学苑&#39;)));// true

    var result = 100/0;
    console.log(result);// Infinity
    //isFinite()函数
    console.log(isFinite(result));// false
  • #邏輯與運算子

JavaScript運算子基本用法是用於布林類型的計算
邏輯與運算子時如果兩個操作數都是布林類型的話只有當兩個操作數都為true時返回的結果才為true 否則都為false
1.將邏輯與運算子的兩個操作數轉換為布林類型
2.當左邊的操作數為true時結果為右邊操作數的值
3.當左邊的操作數為false時結果為左邊操作數的值

    console.log(true && true);// true
    console.log(true && false);// false
    console.log(false && true);// false
    console.log(false && false);// false

    console.log(100 && 1);// 1
    console.log(1 && 0);// 0
    console.log(0 && 1);// 0
    console.log(0 && 0);// 0

    console.log(true && true);
    console.log(true && false);
    console.log(false && true);
    console.log(false && false);

    console.log(&#39;卧龙学苑&#39; && &#39;卧龙学苑&#39;);// 卧龙学苑
    console.log(&#39;卧龙学苑&#39; && &#39;&#39;);// &#39;&#39;
    console.log(&#39;&#39; && &#39;卧龙学苑&#39;);// &#39;&#39;
    console.log(&#39;&#39; && &#39;&#39;);// &#39;&#39;

    console.log(&#39;卧龙学苑&#39; && 1);// 1
    console.log(false && 0);// false
  • 邏輯或運算子

使用邏輯或運算子時如果兩個運算元都是布林類型的話只有當其中一個操作類型數都為true時傳回的結果才為true 否則都為false

    console.log(true || true);// true
    console.log(true || false);// true
    console.log(false || true);// true
    console.log(false || false);// false

    console.log(100 || 1);// 100
    console.log(1 || 0);// 1
    console.log(0 || 1);// 1
    console.log(0 || 0);// 0

    console.log(true || true);
    console.log(true || false);
    console.log(false || true);
    console.log(false || false);

    console.log(&#39;卧龙学苑&#39; || &#39;卧龙学苑&#39;);// 卧龙学苑
    console.log(&#39;卧龙学苑&#39; || &#39;&#39;);// 卧龙学苑
    console.log(&#39;&#39; || &#39;卧龙学苑&#39;);// 卧龙学苑
    console.log(&#39;&#39; || &#39;&#39;);// &#39;&#39;
  • #賦值擴充運算子

##JavaScript語言中的賦值運算子用於為變數或屬性進行賦值運算

JavaScript語言中的賦值擴充運算子實際上是賦值運算子與運算子運算子搭配使用的簡寫模式
JavaScript語言中的賦值擴充運算符的執行效率更高

    var b = 10, c = 20;

    var a = b + c;
    console.log(a);// 30

    // b = b + c;
    // 等价写法 - 赋值扩展运算符的性能要比赋值运算符更高
    b += c;
    console.log(b);// 30

  • 条件运算符

条件运算符 首先判断一个表达式是真是假 然后根据判断结果执行两个给指定指令中的一个

    var result = 8 > 9 ? &#39;对&#39; : &#39;错&#39;;
    console.log(result);

    var score = 95;
    score > 90 ? console.log(&#39;优秀&#39;) : console.log(&#39;及格&#39;);
  • 嵌套条件运算符

条件运算符中 每个表达式可以又是一个条件运算表达式 称为条件运算的嵌套
优点:扩展了条件运算符本身的计算能力
缺点:可读性比较差 性能随着嵌套的层级越多越差
建议:不要最多不要超过三层嵌套

    var score = 55;

    var result = score > 90 ? &#39;优秀&#39; : (score > 80 ? &#39;良好&#39; : (score > 60 ? &#39;及格&#39; : &#39;不及格&#39;));
    console.log(result);

相关推荐:

js比较和逻辑运算符的介绍

运算符优先级-PHP运算符优先级

以上是js運算子優先權的比較及js邏輯運算子的解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn