——運算符一共分爲六種;
1.算數運算符
2.比較運算符
3.邏輯運算符
4.賦值運算符
5.字符串聯接運算符
6.條件運算符
——運算符的概念;
JavaScript提供的一組用於操做數據值的運算符(操做符)。這些運算符能夠按照做用的不一樣或者操做變量數量的不一樣進行分類。
——運算符的優先級別;
JavaScript語言中的運算符,若是在複雜的表達方式中應用,首先咱們要了解運算符的優先級別。也就是說先計算哪一個,再計算哪一個的道理。就跟數學中的加減乘除類似。若是不知道運算符的優先級別,那麼極可能致使最後的計算結果錯誤。
咱們沒有必要去記運算符的優先級別,只要記住關鍵的小括號級別是最高的就能夠。實際開發中只要使用小括號包裹的運算符,就先去計算包裹的運算符;html
運算符具備計算的優先級別函數
1.先計算優先級別高的運算符 2.運算符的級別相同,從左至右的計算 運算符中優先級別最高的是「()」 優先計算的表達式利用"()"將其包裹起來
console.log(100 + 200 - 150 * 3); console.log(100 + 200 % 3); console.log(2 * 200 % 3); var num = 10; console.log(5 + ++num);
算數運算符的基本操做比較簡單
-若是運算數中的一個或者兩個是字符串類型,那麼JavaScript會自動轉換成數字值,而後再進行計算。
若是運算數中的一個或兩個是字符串類型,可是其中的字符不是數字時,JavaScript會自動轉換成數字值進行計算,獲得的結果是NaN.(任何一個運算數是NaN,結果都會是NaN)。
布爾的false和true值都會默認轉換爲0和1進行計算。性能
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); console.log(typeof result2);// string var result3 = str2 + 300; console.log(result3);// 200300 若是布爾類型進行加法計算 -> 將布爾類型轉換爲數字值,再進行加法計算 var result4 = boo + 300; console.log(result4);// 301 減法 - 先將其餘類型轉換爲number類型,再進行計算 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
2.比較運算符
JavaScript語言中的比較運算符,主要是用來比較兩個操做數的大小,相等。
全等於不全等,不只要比較直,還要比較類型。編碼
1.number類型 console.log(10 > 11);// false是錯誤的,10不可能大於11 console.log(11 > 10);// true是正確的,11原本就大於10 console.log(10 >= 10);// true是正確的,10自己就大於等於10 2.boolean類型 - 將boolean類型轉換爲number類型 console.log(true > false);// true是正確的,true表示一、false表示0 console.log(true > 0);// true是正確的,true表示1,因此大於0 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 console.log('我' > '你');// true
Unicode編碼順序code
相等與不等比較
1.number類型
console.log(10 == 10);// true
console.log(10 == 11);// false
2.boolean類型
console.log(true == true);// true
console.log(true == false);// falsehtm
console.log(true == 1);// trueip
3.string類型
console.log('a' == 'a');// true
console.log('a' == 'b');// false
(只比較值,而不比較類型)
console.log('100' == 100);// true開發
相等比較運算符
與賦值運算符的區別字符串
不等比較運算符get
isNaN()函數
isNaN函數用於判斷其參數是否爲NaN。
通常多用於檢測使用類型轉換函數進行數據類型轉換後的結果是否爲合法的數字值。
(NaN與任何值包括自身進行比較,最後結果都是false)
做用 - 判斷當前值是否爲 NaN true - 表示當前值是 NaN(不是一個數字值) false - 表示當前值不是 NaN(不是一個數字值) console.log(isNaN(100));// false console.log(isNaN(Number('wolongxueyuan')));// true var result = 100/0; console.log(result);// Infinity isFinite()函數 做用 - 判斷當前值是否爲無窮大 false - 表示當前值是無窮大 true - 表示當前值是有限數值 console.log(isFinite(result));// false
邏輯運算符
邏輯運算符是用於布爾類型的計算。
把邏輯與運算的兩個操做數,轉換爲布爾類型。
邏輯或運算符
console.log(true || true);// true console.log(true || false);// true console.log(false || true);// true console.log(false || false);// false 將邏輯與運算符的兩個操做數,轉換爲布爾類型 -當左邊的操做數爲true時,結果爲左邊操做數的值 - 當左邊的操做數爲false時,結果爲右邊操做數的值 console.log(100 || 1); console.log(1 || 0); console.log(0 || 1); console.log(0 || 0); console.log(true || true); console.log(true || false); console.log(false || true); console.log(false || false);
邏輯短路
邏輯與運算符
- 邏輯與運算符前面是false,結果都將返回邏輯與運算符前面的值 - 邏輯與運算符前面是true,結果都將回邏輯與運算符後面的值
邏輯或與運算符
- 邏輯或運算符前面是false,結果都將返回邏輯或運算符後面的值 - 邏輯或運算符前面是true,結果都將返回邏輯或運算符前面的值
4.條件運算符
var score = 55; 嵌套條件運算符 優勢 - 擴展了條件運算符自己的計算能力 缺點 -可讀性比較差 -性能隨着嵌套的層級越多越差 建議 - 最多不要超過三層嵌套 var result = score > 90 ? '優秀' : (score > 80 ? '良好' : (score > 60 ? '及格' : '不及格')); console.log(result);