首頁 web前端 js教程 JavaScript操作資料值的運算子知識點匯總

JavaScript操作資料值的運算子知識點匯總

Jul 19, 2017 am 09:41 AM
javascript 知識點 運算符

表達式是JavaScript語言的一個“短語”,包含變數名稱(或字面量)和運算子。最簡單的表達式時字面量或變數名。當然也有合併簡單的表達式來建立複雜的表達式。

一、一元運算子
(1)遞增++與遞減--


var box1=100; 
++box1;//相当于box=box+1 
document.write("box1="+box1+"<br/>");//输出box1=101 
var box2=100; 
--box2;//相当于box=box2-1 
document.write("box2="+box2);//输出box2=99
登入後複製

前置和後置的區別


#
var box=100; 
var age=++box;//box先累加1为101,再赋值给age为101 
var height=box++;//box先赋值给height为101,box再累加为102 
document.write("age="+age+"<br/>");//输出age=101 
document.write("height="+height+"<br/>");//输出height=101 
document.write("box="+box);//输出box=102,原因是box经过了两次累加,所以是102
登入後複製

       在沒有賦值操作,前置和後置是一樣的。但在賦值操作時,如果遞增或遞減運算子前置,那麼前置的運算子會先累加或累減再賦值,如果是後置運算子則先賦值再累加或累減。
(2)加和減運算子
用於取正或取負運算,也有把數字字串轉換為數值形式的函數。


var box = "20"; 
document.write(typeof box+"<br/>"); //输出string 
var age=-box; 
document.write(age+"<br/>");//输出-20 
document.write(typeof age); //输出number
登入後複製

二、算術運算子
       JavaScript語言中規定了五種算術運算符,即+,-,* ,/和%(取餘)。如果在算術運算子的值不是數值,那麼它會先使用Number()轉型函數將其轉換為數值(隱式轉換)。


var box=100+"100"; 
document.write("box="+box+"<br/>");//输出100100 
document.write(typeof box);//输出string
登入後複製

       這是為什麼呢? JavaScript語言中的做算術運算時,只要其中一個是字串,那麼結果就會轉換為字串。相當於字串連接符,不能再算是加法算術運算子。


var box="100"-10; 
document.write("box="+box+"<br/>");//输出90 
var age=5/4; 
document.write("age="+age+"<br/>");//输出1.25 
var height=("你的年龄是:"+(10+10));//括号强制优先级 
document.write(height);//输出你的年龄是:20
登入後複製

  取餘


var box=10%3; 
document.write("box="+box);//输出1
登入後複製

三、關係運算子
       來進行比較的運算子稱為關係運算子:<(小於),>(大於),<=(小於等於),>=(大於等於),==(相對) ,!=(不等),===(恆等或全等),!==(不全等或不恆等)。關係運算子大多數傳回的是一個布林值。
       和其他運算子一樣,當關係運算子操作非數值時要遵守下列規則:
       1兩個運算子都是數值,則數值比較
       2兩個運算子都是數值字串,2兩個運算元則比較兩個字串對應的字元編碼值
       3兩個運算元有一個是數值,則另一個轉換為數值,並在進行數值比較
       4兩個操作數有一個是對象,則先呼叫value()方法或toString()方法,再用結果比較。


var box1=3>2; 
document.write(box1+"<br/>");//输出true 
var box2="3">22; 
document.write(box2+"<br/>");//输出false 
var box3="3">"22"; 
document.write(box3+"<br/>");//输出true 
var box4="a">"B";//a为97,B为66 
document.write(box4+"<br/>");//输出true 
var box5= "Blue"<"alpha";//Blue的第一个字母是B,alpha的第一个字母是a,a为97,B为66 
document.write(box5) //输出true
登入後複製

       在相等且不等的比較上,如果運算元是非數值,則遵循下列規則:
       1一個運算元是布林值,則比較之前將其轉換為數值,false轉成0,true轉為1。
       2一個操作數是字串,則比較先前將其轉換為數值再比較。
       3一個運算元是對象,則先呼叫value()方法或toString()方法再比較。
       4不需要任何轉換的情況下,null和undefined是相等的
       5一個操作數是NaN,則==返回false,!=回復true,並且NaN和自身不等##   個運算元都是對象,則比較它們是否是同一個對象,如果都指向同一個對象,則回傳true,否則回傳false
       7在全等且全不等的判斷上,例如值與型別都相等,才會回傳true,否則回傳fasle。


#

var box1=&#39;2&#39;==2; 
document.write(box1+"<br/>");//输出true,比较的只是数值 
var box2={}=={}; 
document.write(box2+"<br/>");//输出false,因为比较的是它们的地址,每个新创建对象的引用地址都不同。 
var box3=null==undefined; 
document.write(box3+"<br/>");//输出true,因为均为空数值 
var box4=&#39;2&#39;===2; 
document.write(box4+"<br/>");//输出false,两个操作数的数据类型不相等 
var box5=null===undefined; 
document.write(box5);//输出false,两个操作数的数据类型不相等
登入後複製

四逻辑运算符
JavaScript语言中的逻辑运算符通常作用于布尔值的操作,一般和关系运算符配合使用,有三个逻辑运算符:&&(逻辑与),||(逻辑或)和!(逻辑非)。
(1)&&表示两边都必须是true,才返回true。
如果两边的操作数有一个操作数不是布尔值的情况下,与运算就不一定返回布尔值,此时遵循下面的规则:
1第一个操作数是对象,则返回第二个操作数
2第二操作数是对象,则第一个操作数返回true,才返回第二个操作数,否则返回false
3一个操作数是null,则返回null
4一个操作数是undefined,则返回undefined
5如果一个运算数是对象,另一个是 Boolean 值,返回该对象
逻辑与运算符属于短路操作,如果有第一个操作数返回的是false,第二个不管是true还是false都返回false。


var box1={}&&(5>4); 
document.write(box1+"<br/>");//输出true 
var box2=(5>4)&&{}; 
document.write(box2+"<br/>");//输出[object Object] 
var box3=(3>4)&&{}; 
document.write(box3);//输出false
登入後複製

(2)||表示两边有一个是true,就返回true。
如果两边的操作数有一个操作数不是布尔值的情况下,与运算就不一定返回布尔值,此时遵循下面的规则:
1第一个操作数是对象,则返回第一个个操作数
2第一个操作数的求值结果为fasle,则返回第二个操作数
3两个操作数都是对象,则返回第一个操作数
4两个操作数都是null,则返回null
5两个操作数都是undefined,则返回undefined
6两个操作数都是NaN,则返回NaN
逻辑或运算符也属于短路操作,如果有第一个操作数返回的是true,第二个不管是true还是false都返回true。


var box1={}||(5>4); 
document.write(box1+"<br/>");//输出[object Object] 
var box2=(5>4)||{}; 
document.write(box2+"<br/>");//输出true 
var box3=(3>4)||{}; 
document.write(box3);//输出[object Object]
登入後複製

(3)!逻辑非运算符可以作用与任何值,无论这个值是什么数据类型,这个运算符都会返回一个布尔值,它的流程是:先将这个值转换成布尔值,然后取反,规则如下:
1操作数是一个对象,返回false
2操作数是一个空字符串,返回true
3操作数是一个非空字符串,返回false
4操作数是数值0,返回true
5操作数是任意非0数值,返回false
6操作数是null,返回true
7操作数是NaN,返回true
8操作数是undefined,返回true


var box=!{}; 
document.write(box);//输出false
登入後複製

五、位运算符
JavaScript语言中包括了七种位运算符:~(位非),&(位与),|(位或),^(位异或),<<(左移),>>(有符右移号),>>>(无符号右移)
(1)位非(~)运算把运算数转换成32位数字,然后把二进制数转换成它的二进制反码,最后把二进制数转换成浮点数。实质上是对数字求负,然后减去1即为所得值。


var box=~25; 
document.write(box);//输出-26
登入後複製

(2)位与(&)运算直接对数字的二进制形式进行运算,然后对上下同一位置的两个数位进行与运算,只有两个数位都为1时才得出1,其余的均为0.


var box=25&3; 
document.write(box);//输出1
登入後複製

(3)位或(|)运算也是直接对数字的二进制形式进行计算,然后对上下同一位置的两个数位进行或运算,只右两个数位都为0时才得出0,其余的均为1.


var box=25|3; 
document.write(box);//输出27
登入後複製

(4)位异或(^)也是直接对二进制形式进行运算。当只有一个数位存放的是1时,它才返回1。其余的返回0。也就是两个数位相同时返回0,不同时返回1.


var box=25^3; 
document.write(box);//输出26
登入後複製

(5)左移运算也是对二进制数进行操作,相等于第一个操作数乘以(2的左移位数次幂)的积。


var box=25<<3; 
document.write(box);//25左移3位相当于25乘以(2的3次幂),因此输出200
登入後複製

(6)有符号右移运算也是对二进制数进行操作,相等于第一个操作数除以(2的右移位数次幂)的商。


var box=24>>2; 
document.write(box);//输出6
登入後複製

(7)无符号右移运算也是对二进制数进行操作,对于正数,与有符号右移是相同的结果,但是对于负数,就会所不同。

六、赋值运算符
赋值运算符包括:=(),+=(),-=(),*=(),/=(),%=(),<<=(),>>=(),>>>=()。


var box=100; 
box+=100;//相当于box=box+100 
document.write("box="+box);//输出box=200
登入後複製

七、其他运算符
1)、字符串运算符:“+”,它的作用是将两个字符串想加。规则:只要有一个字符串即可。


var box=100+"10"&#39;; 
document.write("box="+box);//输出100100
登入後複製

2)、逗号运算符,可以在一条语句中执行多个操作


var box=100,age=200,height=300; 
document.write("box="+box);//输出box=100
登入後複製

3)、三元操作符:


var box=(3>4)?"对":"错"; 
document.write(box);//输出错
登入後複製

      如果想更详细的了解ECMAScript运算符的知识,可以访问JavaScript高级教程中的ECMASscript一元运算符这个系列中有详细的运算符教程。对于JS的运算符来说,我们可以对比着C++,C#和Java来学,这个还是相当的容易的。

以上是JavaScript操作資料值的運算子知識點匯總的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

如何使用WebSocket和JavaScript實現線上語音辨識系統 如何使用WebSocket和JavaScript實現線上語音辨識系統 Dec 17, 2023 pm 02:54 PM

如何使用WebSocket和JavaScript實現線上語音辨識系統

WebSocket與JavaScript:實現即時監控系統的關鍵技術 WebSocket與JavaScript:實現即時監控系統的關鍵技術 Dec 17, 2023 pm 05:30 PM

WebSocket與JavaScript:實現即時監控系統的關鍵技術

簡易JavaScript教學:取得HTTP狀態碼的方法 簡易JavaScript教學:取得HTTP狀態碼的方法 Jan 05, 2024 pm 06:08 PM

簡易JavaScript教學:取得HTTP狀態碼的方法

Python 語法的心智圖:深入理解程式碼結構 Python 語法的心智圖:深入理解程式碼結構 Feb 21, 2024 am 09:00 AM

Python 語法的心智圖:深入理解程式碼結構

C語言中+=運算子的意義與用法解析 C語言中+=運算子的意義與用法解析 Apr 03, 2024 pm 02:27 PM

C語言中+=運算子的意義與用法解析

JavaScript與WebSocket:打造高效率的即時天氣預報系統 JavaScript與WebSocket:打造高效率的即時天氣預報系統 Dec 17, 2023 pm 05:13 PM

JavaScript與WebSocket:打造高效率的即時天氣預報系統

如何在JavaScript中取得HTTP狀態碼的簡單方法 如何在JavaScript中取得HTTP狀態碼的簡單方法 Jan 05, 2024 pm 01:37 PM

如何在JavaScript中取得HTTP狀態碼的簡單方法

Python 入門到精通:從零基礎到專案開發 Python 入門到精通:從零基礎到專案開發 Feb 20, 2024 am 11:42 AM

Python 入門到精通:從零基礎到專案開發

See all articles