簡述JavaScript中的運算子種類及用法規則
JavaScript中的運算符有很多,主要分為算術運算符,等同全同運算符,比較運算符,字串運算符,邏輯運算符,賦值運算符等,它們都有自己的運算規則,在本文為大家介紹下
JavaScript中的運算符有很多,主要分為算術運算符,等同全同運算符,比較運算符,字串運算符,邏輯運算符,賦值運算符等。這些運算子都有一些屬於自己的運算規則,以下就來為大家介紹一下JavaScript中的運算子。
一、JavaScript運算子的種類
1、算術運算子:+ 、 - 、* 、 / 、 % 、 -(一元取反) 、 ++ 、 --
2、等同全同運算子:== 、 ===、 !== 、 !===
3、比較運算子:< 、 > 、 <= 、 >=
4、字串運算子:< 、 > 、 <= 、 >= 、 = 、 +
5、邏輯運算子:&& 、 ||、 !、
6、賦值運算子:=、 +=、 *=、 -=、 /=
二、JavaScript運算子的規則
1、算術運算子規則
「+」:可以進行「加法」與「連接」運算;如果2個運算子中的一個是字串,javascript就會另一個轉換成字串,然後將2個運算數連接起來。
“+”:如果一個運算數是對象,javascript就會將物件轉換成數字做加法運算或字串做連接運算;
“-”“*”“/”如果2個運算數中的一個是是非數字,則將它轉換成數字執行數學運算。
「/」 在javascript中,由於所有的數都是浮點數,除法的結果都是浮點數,5 / 2 = 2.5 ;除數為0的結果為正負無窮;0/0為NaN;
「%」模運算子:計算第一個運算數對第二個運算數的模,就是第一個運算數被第二個運算數除時,傳回餘數。如果運算數是非數字的,則轉換成數字。
「-」一元取反:將運算數取反,如果運算數不是數字,則轉換成數字。
「++」「--」增量運算子/減量運算符號:運算數必須是一個變數、樹組的一個元素或物件的屬性。如果運算數不是數字,則轉換成數字。
注意:如果「++」位於運算數之前,先對運算數進行增量,然後計算運算數成長後的值。
如果「--」位於運算數之後,先計算運算數未成長之前的值,然後將運算數增量。
例如:i = 1; //賦值給i值1
j = ++i; //先將i增量為2,然後將2賦值為j,i的值是2,j的值也是2。
i = 1; //賦值給i值1
j = i++; //先將i賦值給j,然後將i值增量到2,i的值是2,j的值是1。
減量運算子「--」與「++」相同。
2、等同運算子與全同運算子
(I)「==」「!==」等同運算子與非等同運算子:
比較2個運算數,傳回一個不布林值。
比較數值、字串、布林值使用的都是量值。當且僅當兩個變數存放的值相等的時候,他們才相等。
比較物件、陣列、函數的時候,使用的是引用,只有2個變數引用的是同一個物件時,他們才是相等的。兩個不同的陣列是完全不同的,即使他們有完全相同的元素。對於存放物件、陣列、函數的引用的變數來說,只有當他們引用的是同一個物件、陣列、函數的時候,他們才相等。
注意!應遵循的原則:
當兩個運算數的類型不同時:將他們轉換成相同的類型,
1)一個數字與一個字符串,字串轉換成數字之後,進行比較。
2)true轉換為1、false轉換為0,進行比較。
3)一個物件、陣列、函數 與 一個數字或字串,物件、陣列、函數轉換為原始類型的值,然後進行比較。 (先使用valueOf,如果不行就使用toString)
4)其他類型的組合不星等。
想兩個運算數型別相同,或轉換成相同型別後:
1)2個字串:同一位置上的字元相等,2個字串就相同。
2)2個數字:2個數字相同,就相同。如果一個是NaN,或兩個都是NaN,則不相同。
3)2個都是true,或2個都是false,則想同。
4)2個引用的是同一個物件、函數、數組,則相等,如果引用的不是同一個物件、函數、數組,則不相同,即使這2個物件、函數、數組可以轉換成完全相等的原始值。
5)2個null,或2個都是未定義的,那麼他們相等。
「!=」非等同運算子:與等同運算子偵測的結果相反。
(II)「===」「!===」全同運算子與非全同運算符號:
全同運算子遵循等同運算子的比較規則,但是它不對運算數進行類型轉換,當兩個運算數的類型不同時,返回false;只有當兩個運算數的類型相同的時候,才遵循等同運算符的比較規則進行比較。
「!==」非全同運算子與全同運算子比較的結果相反。如果兩個運算數的型別或值不同的時候,回傳true。
3、比較運算子
這些比較運算子用於比較不同類型的值,結果傳回一個布林值。
「<」「>」「<=」「>=」
注意規則:比較的運算數可以是任意型別的,但是只能在數字和運算數上執行。不是數字和字串的運算數將被轉換成數字或字串。
1)如果兩個運算數都是數字,或者都可以轉換成數字,則按照數字的大小進行比較;
2)如果兩個運算數都是字串,或者都可以轉換成字串,則將按照字母順序進行比較;
3)如果字串遇到數字,則將字串轉換成數字進行比較。
4)如果運算數既不能轉換成數字,也不能轉換成字串,則傳回結果false。
4、字串運算子
並沒有專用的字串運算符,只是有些運算符在遇到字串運算數的時候,表現不同。
(I)「+」連接2個字串;
1)當2個運算數都是字串的時候,連接起來;
2)當其中有一個是數字的時候,將數字轉換成字串,連接起來;
(II)“>”這樣的比較運算子透過比較確認兩個字串的順序,比較採用字元的順序,較小的位於教大的前面,大寫字母位於小寫字母之前。
(III)「+」的作用方法取決於計算順序,
如:s = 1 + 2 +"var" 則:傳回結果 3var; 因為先計算1+2,然後將結果3轉換成字串與"var"連接;
如:s = "var" + 1 + 2 則:傳回結果var12; 因為先計算var與1的連接,在將結果var1與轉換成字串的2連接起來。
5、邏輯運算子
用來執行布林運算,常常和比較運算子一起使用,來表示複雜的比較運算。
「&&」 邏輯與運算、「||」邏輯或運算子、「!」邏輯非運算子
(I)「&&」當兩個運算數都是布林值的時候,邏輯與對他們進行and操作,即:當且僅當兩個布林值都是true的時候,返回結果true,否則返回false。
注意:實際表現
「&&」將偵測第一個運算式運算數布林值,如果第一個運算數運算式傳回false,則傳回左邊第一個運算數表達式的值:false;否則將繼續偵測第二個即右邊的運算數表達式,然後傳回第二個運算數表達式的值;
例如:if (a = b) stop( ); 與(a = b) && stop(); 等價
不贊成使用這個方法,因為運算子右邊的程式碼不能保證會被執行,
例如:if (( a < b) && (b++ <10) ) stop();如果運算子右邊的增量必須的話,卻有可能由於前面的返回值而不被執行,一般反對在&&的右邊使用具有其他作用的表達式(賦值、函數呼叫、增減量);
將「&&」看作是一個布林代數的運算符,會更簡單與安全。
(II)「||」當兩個運算數都是布林值的時候,邏輯或對他們進行or操作,即:當兩個布林值有一個是true的時候,回傳結果true ,否則回傳false。
注意:實際表現
「||」將偵測第一個運算式運算數布林值,如果第一個運算數運算式傳回true,則傳回左邊第一個運算數字表達式的值:true;否則將繼續偵測第二個即右邊的運算數表達式,然後傳回第二個運算數表達式的值;
同樣不贊成使用這個方法,因為運算符右邊的程式碼不能保證會被執行,
一般反對在||的右邊使用具有其他作用的表達式(賦值、函數呼叫、增減量);
將「| |」看作是一個布林代數的運算符,會更簡單與安全。
(III)「!」邏輯非是一個一元運算符,放在運算數之前,它的目的是對運算數取反。
6、賦值運算子
(I)「=」是賦值運算子;他總是期望左邊的運算數是一個變數、陣列的一個元素或物件的一個屬性;
期望右邊是一個任意類型的任意的值;
從右到左的結合性,如果一個表達式中有多個賦值運算符,則從最右邊開始計算。
注意:每一個賦值表達式都有一個值,就是運算子右邊的值;
(II)可以使用帶有運算子的賦值運算
「+=」左邊的值加上右邊的數值後,賦值於左邊的數值。 「-=」「/=」「*=」方法一樣;
7、其他運算子
「?:」條件運算子是唯一的一個三元運算子;
一個表達式的布林結果?表達式1(任意類型的任意值):表達式2(任意類型的任意值);
根據第一個運算數的布林值結果,如果為true,則執行第二個運算數表達式,傳回第二個運算數表達式的值;如果第一個運算數的布林值結果是false,則執行第三個運算數表達式,傳回第三個運算數表達式的值。
三、JavaScript運算子的注意
# 1、要注意傳遞給運算子的資料型別和傳回的資料型別!不同的運算子都期望它的運算數表達式計算出的結果符合某種資料類型。
例如:對字串是不能進行乘法運算的,"a" * "b" 是不合法的,但是,在可能的情況下,javascript會把表達式轉換成正確的類型,因此,表達式"3" * "5" 是合法的,javascript將字串轉換成數字執行運算,結果回傳的是數字15,而不是字串"15"。
2、+ 根據運算數的不同,具有不同的表現:
字串+ 字串= 字串(被連接);"a" + "b" = "ab" "5" + "6" = "11"
字串+ 數字= (字串轉換成數字)字串(被連接);"a" + 5 = "a5" 5被轉換成字符串"1" + 0 = "10"
數字+ 數字= 數字(相加)5 + 5 = 10。
3、注意運算子的結合性,有些運算子從左到右的結合性;有些從右到左結合性。
例如:w = a + b + c 等同於w = (a + b) + c;
w = ---b 等同於w = - ( - ( -b ) ); w = a = b = c 等同於w= ( a = ( b = c ))
一元運算子、賦值運算子、三元運算子的結合性是從右到左的;
JavaScript的運算子就為大家介紹到這裡了,希望能對大家在日常中有所幫助。
以上是簡述JavaScript中的運算子種類及用法規則的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

人臉偵測辨識技術已經是一個比較成熟且應用廣泛的技術。而目前最廣泛的網路應用語言非JS莫屬,在Web前端實現人臉偵測辨識相比後端的人臉辨識有優勢也有弱勢。優點包括減少網路互動、即時識別,大大縮短了使用者等待時間,提高了使用者體驗;弱勢是:受到模型大小限制,其中準確率也有限。如何在web端使用js實現人臉偵測呢?為了實現Web端人臉識別,需要熟悉相關的程式語言和技術,如JavaScript、HTML、CSS、WebRTC等。同時也需要掌握相關的電腦視覺和人工智慧技術。值得注意的是,由於Web端的計

隨著網路金融的快速發展,股票投資已經成為了越來越多人的選擇。而在股票交易中,蠟燭圖是常用的技術分析方法,它能夠顯示股票價格的變動趨勢,幫助投資人做出更精準的決策。本文將透過介紹PHP和JS的開發技巧,帶領讀者了解如何繪製股票蠟燭圖,並提供具體的程式碼範例。一、了解股票蠟燭圖在介紹如何繪製股票蠟燭圖之前,我們首先需要先了解什麼是蠟燭圖。蠟燭圖是由日本人

JavaScript教學:如何取得HTTP狀態碼,需要具體程式碼範例前言:在Web開發中,經常會涉及到與伺服器進行資料互動的場景。在與伺服器進行通訊時,我們經常需要取得傳回的HTTP狀態碼來判斷操作是否成功,並根據不同的狀態碼來進行對應的處理。本篇文章將教你如何使用JavaScript來取得HTTP狀態碼,並提供一些實用的程式碼範例。使用XMLHttpRequest

python憑藉其簡單易讀的語法,廣泛應用於廣泛的領域。掌握Python語法的基礎架構至關重要,既可以提高程式效率,又能深入理解程式碼的運作方式。為此,本文提供了一個全面的心智圖,詳細闡述了Python語法的各個面向。變數和資料類型變數是Python中用於儲存資料的容器。心智圖展示了常見的Python資料類型,包括整數、浮點數、字串、布林值和列表。每個資料類型都有其自身的特性和操作方法。運算符運算符用於對資料類型執行各種操作。心智圖涵蓋了Python中的不同運算子類型,例如算術運算子、比

js和vue的關係:1、JS作為Web開發基石;2、Vue.js作為前端框架的崛起;3、JS與Vue的互補關係;4、JS與Vue的實踐應用。

JavaScript中的HTTP狀態碼取得方法簡介:在進行前端開發中,我們常常需要處理與後端介面的交互,而HTTP狀態碼就是其中非常重要的一部分。了解並取得HTTP狀態碼有助於我們更好地處理介面傳回的資料。本文將介紹使用JavaScript取得HTTP狀態碼的方法,並提供具體程式碼範例。一、什麼是HTTP狀態碼HTTP狀態碼是指當瀏覽器向伺服器發起請求時,服務

python運算子簡介運算子是特殊符號或關鍵字,用於執行兩種或多種運算元之間的運算。 Python提供了多種運算符,涵蓋廣泛的用途,從基本的數學運算到複雜的資料操作。數學運算子數學運算子用於執行常見的數學運算。它們包括:運算子運算元範例+加法a+b-減法a-b*乘法a*b/除法a/b%模運算(取餘數)a%b**冪運算a**b//整除(丟棄餘數) a//b邏輯運算子邏輯運算子用於將布林值連接起來並對條件進行求值。它們包括:運算子操作範例and邏輯與aandbor邏輯或aorbnot邏輯非nota比較運算
