JavaScript中的運算符我的分享

運算符

加減乘除法運算符

  1. 加法運算符:
  • 若是字符串進行加法計算 - 叫拼串
  • 加法遇到字符串都是鏈接而不是加法運算
  • 若是boolean類型進行加法計算時 - 加法運算自動將布爾類型轉換爲數字值在進行加法
  • 注意:操做變量中若是不存在string類型的話 -> 執行的是加法計算

示例代碼:函數

var num = 100;
var str1 = '一花一世界';
var str2 = '200';
var boo = true;

var result1 = num + 300;
console.log(result1);// 調用結果爲 400

// 若是字符串進行加法計算 -> 字符串鏈接運算符(拼串)
var result2 = str1 + 300;
console.log(result2);// 調用結果爲 一花一世界300
console.log(typeof result2);// 調用結果爲 string

var result3 = str2 + 300;
console.log(result3);// 調用結果爲 200300
// 若是布爾類型進行加法計算 -> 將布爾類型轉換爲數字值,再進行加法計算
var result4 = boo + 300;
console.log(result4);// 調用結果爲 301

2.減法運算符性能

  • 僅侷限於數學計算(數字值)
  • 若是操做變量的類型不是number(數字)類型那它會先將當前數據類型轉換爲number(數字)類型
  • 備註:減法必定是數字減法

示例代碼:code

var result5 = num - 100;
console.log(result5);// 調用結果爲 0
// 若是字符串進行減法計算的話 -> 將字符串類型轉換爲數字值,再進行減法計算
var result6 = str1 - 100;
console.log(result6);// 調用結果爲 NaN

var result7 = str2 - 100;
console.log(result7);// 調用結果爲 100
// 若是布爾類型進行減法計算 -> 將布爾類型轉換爲數字值,再進行減法計算
var result8 = boo - 100;
console.log(result8);// 調用結果爲 -99
  • 特殊狀況:數字減NaN和字符串輸出結果都得出NaN

示例代碼:字符串

console.log(num - NaN);// NaN
console.log(num - '我是誰');// NaN

3.乘法和除法運算符和減法運算符同樣數學

  • 注意: 除了加法運算符以外,全部算數運算符都是執行數學計算

求餘運算符 - 就是獲取除法計算以後的餘數

  • 特殊狀況: 求餘的結果是正數仍是負數與第一個操做的數有關,(與第二個操做的數無關)

示例代碼:string

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)

  • 前置自增運算符 - ++變量名it

    • 先自增,再賦值
  • 後置自增運算符 - 變量名++console

    • 先賦值,再自增

示例代碼:變量

var num = 10;
console.log(num);// 10

// 前置自增
var result1 = ++num;
console.log(result1);// 11
console.log(num);// 11

// 後置自增
var result = num++;
console.log(result);// 10
console.log(num);// 11

運算符的優先級別

  1. 先計算優先級別高的運算符
  2. 運算符的級別相同,從左至右的計算
  • 運算符中優先級別最高的是"()"擴展

    • 優先計算的表達式利用"()"將其包裹起來

示例代碼:

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

比較運算符

大於小於比較運算符

示例代碼:

// 1.number類型
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('a' < 'b');// true
console.log('a' > 'A');// true
console.log('abc' > 'cba');// false
console.log('abc' > 'acd');// false

相等和不相等與全等和不全等比較運算符

1.相等和不相等:

  • 相等比較運算符

    • 與賦值運算符的區別
    • 賦值運算符(=)
    • 相等比較運算符(==)
  • 不等比較運算符

    • 符號是"!="
    • 不是"<>"

示例代碼:

// 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('a' == 'a');// true
console.log('a' == 'b');// false
// 只比較值,而不比較類型
console.log('100' == 100);// true

2.等和不相等與全等

  • 徹底相等 : 是三個等於號 (===)
  • 徹底不相等 : 是以個歎號兩個等號 ( !== )
  • 徹底相等就是說不僅是值相等並且類型也必須相等
  • 反之徹底不相等道理同樣必須是全部都不同才能夠(好比:值和類型)

示例代碼:

// 全等 - 不只比較值,還比較類型
console.log(10 === 10);// true

console.log('10' === 10);// false
console.log('10' == 10);// true

// 不全等
console.log(11 !== 10);// true

console.log('10' !== 10);// true
  • 備註:

    • 相等和不相等與全等和不全等的區別

      • 相等就是隻要值是同樣的就行
      • 全等則是值和類型都要同樣才行

isNaN()函數

  • 做用 - 判斷當前值是否爲 NaN

    • true - 表示當前值是 NaN(不是一個數字值)
    • false - 表示當前值不是 NaN(不是一個數字值)
  • 注意: 全等和相等都很差使

示例代碼:

console.log(isNaN(100));// false
console.log(isNaN(Number('一花一世界')));// true

isFinite()函數

  • 做用 - 判斷當前值是否爲無窮大
  • 注意:boolean類型的值在isFinite()函數中表示的意思是:

    • 表示當前值是無窮大
    • true - 表示當前值是有限數值
var result = 100/0;
console.log(result);// Infinity - 表示無窮大的意思
console.log(isFinite(result));// false

邏輯運算符

邏輯與運算符

  • 總結:

    • 邏輯與至關於生活中說的'而且'的意思
    • 若是兩個變量的布爾值都爲false的話,結果爲左邊變量的值
    • 若是兩個變量的布爾值,一個是true一個是false的話,結果爲false的變量值
    • 若是兩個變量的布爾值都爲true的話,結果爲右邊變量的值
    • 注意:計算的結果不管是什麼類型,轉換爲布爾類型時結果只能是true或false

代碼示例圖:

console.log(true && true);// 調用結果爲 true
console.log(true && false);// 調用結果爲 false
console.log(false && true);// 調用結果爲 false
console.log(false && false);// 調用結果爲 false
/*
    將邏輯與運算符的兩個操做數,轉換爲布爾類型
    * 當左邊的操做數爲true時,結果爲右邊操做數的值
    * 當左邊的操做數爲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('一花一世界' && '一花一世界');// 調用結果爲 一花一世界
console.log('一花一世界' && '');// 調用結果爲 ''
console.log('' && '一花一世界');// 調用結果爲 ''
console.log('' && '');// ''

/*
    若是兩個變量是字符串和數字類型時則取右邊的值
 */
console.log('一花一世界' && 1);// 調用結果爲 1
console.log(1 && '一花一世界');// 調用結果爲 一花一世界
console.log(false && 0);// 調用結果爲 false

邏輯或運算符

  • 將邏輯與運算符的兩個操做數,轉換爲布爾類型

    • 邏輯或至關於生活中說的'或者'的意思
    • 若是兩個變量的布爾值都爲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('一花一世界' || '一花一世界');// 調用結果爲 一花一世界
console.log('一花一世界' || '');// 調用結果爲 一花一世界
console.log('' || '一花一世界');// 調用結果爲 一花一世界
console.log('' || '');// 調用結果爲 ''

邏輯非運算符

  • 邏輯非 - 語法 : (!)

    • 邏輯非至關於生活中說的'不是'的意思
    • 邏輯非就是取相反
    • 若是當前值爲true(對的)獲得結果就是false(錯的)
  • 備註:null,0,NaN,空字符串 ("") 和undefined都是false(錯的)

賦值擴展運算符

  • 賦值擴展運算符 - 就是簡寫形式

    • 優勢:

      1. 代碼量減小
      2. 性能更好

示例代碼對比:

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

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

條件運算符

  • 條件運算符的語法格式

    • 條件表達式 ? 爲true的結果 : 爲false的結果
    • 問號 (?)後是爲true的結果 - 能夠是任何類型 - 好比: 字符串,布爾值,數字值等等
    • 冒號 (:)後是爲false的結果 - 能夠是任何類型 - 好比: 字符串,布爾值,數字值等等

示例代碼:

var result = 10 > 20 ? '對' : '錯';
console.log(result);// 調用結果爲 錯

var score = 95;
score > 90 ? console.log('帥') : console.log('醜');// 調用結果爲 帥

嵌套條件運算符

  • 嵌套條件運算符

    • 優勢 - 擴展了條件運算符自己的計算能力
    • 缺點

      1. 可讀性比較差
      2. 性能隨着嵌套的層級越多越差
  • 建議 - 最多不要超過三層嵌套

示例代碼:

var result = score > 90 ? '很帥' : score > 80 ? '通常帥' :  '很醜';
console.log(result);
相關文章
相關標籤/搜索