表達式是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='2'==2; document.write(box1+"<br/>");//输出true,比较的只是数值 var box2={}=={}; document.write(box2+"<br/>");//输出false,因为比较的是它们的地址,每个新创建对象的引用地址都不同。 var box3=null==undefined; document.write(box3+"<br/>");//输出true,因为均为空数值 var box4='2'===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"'; 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中文網其他相關文章!

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

在JavaScript中如何獲取原型鏈上函數的參數在JavaScript編程中,理解和操作原型鏈上的函數參數是常見且重要的任�...

在微信小程序web-view中使用Vue.js動態style位移失效的原因分析在使用Vue.js...


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中