摘要:運算符加減乘除法運算符加法運算符如果字符串進行加法計算叫拼串加法遇到字符串都是連接而不是加法運算如果類型進行加法計算時加法運算自動將布爾類型轉換為數字值在進行加法注意操作變量中如果不存在類型的話執行的是加法計算示例代碼一花一世界調用結
運算符 加減乘除法運算符
加法運算符:
如果字符串進行加法計算 - 叫拼串
加法遇到字符串都是連接而不是加法運算
如果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(數字)類型
備注:減法一定是數字減法
示例代碼:
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.乘法和除法運算符和減法運算符一樣
注意: 除了加法運算符之外,所有算數運算符都是執行數學計算
求余運算符 - 就是獲取除法計算之后的余數特殊情況: 求余的結果是正數還是負數與第一個操作的數有關,(與第二個操作的數無關)
示例代碼:
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)
前置自增運算符 - ++變量名
先自增,再賦值
后置自增運算符 - 變量名++
先賦值,再自增
示例代碼:
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運算符的優先級別
先計算優先級別高的運算符
運算符的級別相同,從左至右的計算
運算符中優先級別最高的是"()"
優先計算的表達式利用"()"將其包裹起來
示例代碼:
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("一花一世界")));// trueisFinite()函數
作用 - 判斷當前值是否為無窮大
注意: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(錯的)
賦值擴展運算符
賦值擴展運算符 - 就是簡寫形式
優點:
代碼量減少
性能更好
示例代碼對比:
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("丑");// 調用結果為 帥嵌套條件運算符
嵌套條件運算符
優點 - 擴展了條件運算符本身的計算能力
缺點
可讀性比較差
性能隨著嵌套的層級越多越差
建議 - 最多不要超過三層嵌套
示例代碼:
var result = score > 90 ? "很帥" : score > 80 ? "一般帥" : "很丑"; console.log(result);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/96711.html
摘要:的基礎語法的語法是區分大小寫的注意在中是區分大小寫的變量名稱不能是中文代碼示例一花一世界控制臺調用效果圖語法中的空格與換行注意并不是的語法內容可有可無的建議使用因為這樣會使代碼看的更清晰利于閱讀代碼示例代碼一花一世界中的分號可選項語法并 JavaScript的基礎語法: JavaScript的語法是區分大小寫的 注意: 在JavaScript中是區分大小寫的 變量名稱不能是中文 代...
摘要:為此決定自研一個富文本編輯器。例如當要轉化的對象有環存在時子節點屬性賦值了父節點的引用,為了關于函數式編程的思考作者李英杰,美團金融前端團隊成員。只有正確使用作用域,才能使用優秀的設計模式,幫助你規避副作用。 JavaScript 專題之惰性函數 JavaScript 專題系列第十五篇,講解惰性函數 需求 我們現在需要寫一個 foo 函數,這個函數返回首次調用時的 Date 對象,注意...
摘要:面向對象面向對象的概念所謂面向對象就用抽象方式創建基于顯示世界模型的一種變成模式面向對象編程可以看做是使用一系列對象互相協作的軟件設計備注面向對象全稱簡稱面向對象編程的主要三個特征是封裝所謂封裝就是按要求使用得到對象的結果相關數據用于存儲 面向對象 面向對象的概念 所謂面向對象就用抽象方式創建基于顯示世界模型的一種變成模式,面向對象編程可以看做是使用一系列對象互相協作的軟件設計 備注...
摘要:源碼速覽在近期發布了。本人就職于騰訊直播前端開發,感覺直播能夠嘗試的領域真的太多太多,但是,在這塊一直是一個痛點。前端中的計算機領域的通常認為起源于。 推薦 1. 現代 JavaScript 語法清單 https://github.com/mbeaudru/m... 本文涉及到了現代項目開發中常用的 JavaScript 語法使用以及示例代碼的清單 ;本指南并不打算從零介紹 JavaS...
摘要:源碼速覽在近期發布了。本人就職于騰訊直播前端開發,感覺直播能夠嘗試的領域真的太多太多,但是,在這塊一直是一個痛點。前端中的計算機領域的通常認為起源于。 推薦 1. 現代 JavaScript 語法清單 https://github.com/mbeaudru/m... 本文涉及到了現代項目開發中常用的 JavaScript 語法使用以及示例代碼的清單 ;本指南并不打算從零介紹 JavaS...
閱讀 732·2021-11-24 10:30
閱讀 1268·2021-09-24 09:48
閱讀 3083·2021-09-24 09:47
閱讀 3602·2019-08-29 17:11
閱讀 2885·2019-08-29 15:38
閱讀 2281·2019-08-29 11:03
閱讀 3609·2019-08-26 12:15
閱讀 1020·2019-08-26 10:45