從未有過的JavaScript運(yùn)算符詳細(xì)解釋
解釋性語言和編譯型語言
1.概述
計(jì)算機(jī)不能直接理解除機(jī)器語言以外的語言,所以要把程序員所寫的編程語言翻譯成機(jī)器語言才能被執(zhí)行程序,程序語言翻譯成機(jī)器語言的工具,被稱為翻譯器
- 翻譯器翻譯的方式有兩種:一種是編譯,一種是解釋,兩種方式之間的區(qū)別在于翻譯的時(shí)間點(diǎn)不同
- 編譯器是在代碼執(zhí)行之前,生成中間代碼文件
- 解釋器是在運(yùn)行時(shí)進(jìn)行及時(shí)解釋,并立即執(zhí)行(當(dāng)編譯器以解釋方式運(yùn)行的時(shí)候,也稱之為解釋器)
2.執(zhí)行過程
類似于請(qǐng)客吃飯
- 編譯語言:首先先把所有菜上齊了,才能吃飯
- 解釋語言:好比吃火鍋,邊吃邊涮,同時(shí)進(jìn)行
標(biāo)識(shí)符,關(guān)鍵字,保留字
(一)標(biāo)識(shí)符
標(biāo)識(shí)符:就是指開發(fā)人員為變量,屬性,函數(shù),參數(shù)取的名字(自定義)
注意:標(biāo)識(shí)符:不能是關(guān)鍵字或者保留字
(二)關(guān)鍵字
關(guān)鍵字:是指JS本身已經(jīng)使用了的字,不能再把它充當(dāng)變量名,方法名。(一旦使用就是在制造BUG)
包括:break,case,catch,continue,default,delete,do,else,finally,for,function,if,in,instanceof,new,return,switch,this,throw,try,typeof,var,void,while,with等。
(三)保留字
保留字:實(shí)際就是預(yù)留的“關(guān)鍵字”,意思是現(xiàn)在 雖然不是關(guān)鍵字,但是別人是潛力股,未來可能成為關(guān)鍵字,同樣不能使用它們當(dāng)變量名或方法名
包括:abstract,enum,int,short,boolean,export,interface,static,byte,extends,long,super,char,final,native,synchronized,class,float,package,throws,const,goto,private,transient,debugger,implements,protected,volatile,double,import,public等。
運(yùn)算符
運(yùn)算符:也被稱為操作符,是用于實(shí)現(xiàn)賦值,比較和執(zhí)行算數(shù)運(yùn)算等功能的符號(hào)。
js中常用的運(yùn)算符有
- 算數(shù)運(yùn)算符
- 遞增和遞減運(yùn)算符
- 比較運(yùn)算符
- 邏輯運(yùn)算符
- 賦值運(yùn)算符
算術(shù)運(yùn)算符
概念:算術(shù)運(yùn)算使用的符號(hào),用于執(zhí)行兩個(gè)變量或值的算術(shù)運(yùn)算。
運(yùn)算符 | 描述 | 實(shí)例 |
---|---|---|
+ | 加 | 10+20=30 |
- | 減 | 120-10=110 |
* | 乘 | 10*20=200 |
/ | 除 | 10/20=0.5 |
% | 取模(取余數(shù)) | 得到的是除法的余數(shù) 9%2=1 |
浮點(diǎn)數(shù)的精確度問題
浮點(diǎn)數(shù)的最高精確度是17位小數(shù),但是在進(jìn)行算術(shù)計(jì)算時(shí)其精確度遠(yuǎn)遠(yuǎn)不如整數(shù)、
var result=0.1+0.2; console.log(result);//結(jié)果不是 0.3,而是0.30000000000000004 console.log(0.07*100);//7.000000000000001,而是7.000000000000001
所以:不要直接判斷兩個(gè)浮點(diǎn)數(shù)是否相等
表達(dá)式和返回值
表達(dá)式:是由數(shù)字、運(yùn)算符、變量等以能求得數(shù)值的有意義排列方法所得的組合
簡單理解:是由數(shù)字、運(yùn)算符、變量等組成的式子
遞增和遞減運(yùn)算符概述
如果需要反復(fù)給數(shù)字變量添加或減去1??梢允褂眠f增( ++ )和遞減( – )運(yùn)算符來完成。
在JavaScript中,遞增( ++ )和遞減( – )既可以放在變量前面。也可以放在變量后面。放在變量前面時(shí),
我們可以稱為前置遞增(遞減)運(yùn)算符,放在變量后面時(shí),我們可以稱為后置遞增(遞減)運(yùn)算符。
注意:遞增和遞減運(yùn)算符必須和變量配合使用。
遞增運(yùn)算符
前置遞增運(yùn)算符
++num前置遞增,就是自加1,類似于num=num+1,但是++num寫起來更簡單。
使用口訣:先自加,后返回值
后置遞增運(yùn)算符
++num前置遞增,就是自加1,類似于num=num+1,但是num++寫起來更簡單。
使用口訣:先自加,后返回值
var age=10; console.log(age);//10 ++age; console.log(age);//11 var p=10; console.log(++p+10);//21 //先加1后返回值(返回初始的值) //后置++ var num=10; num++; console.log(num);//11 //單獨(dú)使用自增自減,效果一樣 var number=10; //先返回值(返回初始的值),再加+ console.log(number++ +10);//20 console.log(number);//11
比較運(yùn)算符概述
概念:比較運(yùn)算符是兩個(gè)數(shù)據(jù)進(jìn)行比較時(shí)所使用的運(yùn)算符,比較運(yùn)算后,會(huì)返回一個(gè)布爾值(true/false)作成運(yùn)算結(jié)果
運(yùn)算符 | 說明 | 案例 | 結(jié)果 |
---|---|---|---|
< | 小于 | 1<2 | true |
> | 大與 | 1>2 | false |
> = | 大于等于 | 2>=2 | true |
< = | 小于等于 | 3<=2 | false |
== | 判等號(hào)(會(huì)轉(zhuǎn)型) | 37=37 | true |
!= | 不等號(hào) | 37!=37 | false |
=== !== | 全等 要求值和數(shù)據(jù)類型都一致 | 37===‘37’ | false |
=小結(jié)
符號(hào) | 作用 | 用法 |
---|---|---|
= | 賦值 | 把右邊給左邊 |
== | 判斷 | 判斷兩邊值是否相等(注意此時(shí)有隱式轉(zhuǎn)換) |
=== | 全等 | 判斷兩邊的值和數(shù)據(jù)類型是否完全相同 |
代碼演示
console.log(3>=5); console.log(2<=4); //1.我們程序里的等于符號(hào),是默認(rèn)轉(zhuǎn)換類型,會(huì)把字符串的數(shù)據(jù)類型轉(zhuǎn)換為數(shù)字型只要求值相等就可以了 console.log(3==5); console.log('黃茂榮'=='黃茂云'); console.log(18=='18'); consjole.log(18!=18); //2.我們程序里面有全等一模一樣,要求兩側(cè)的值,還有數(shù)據(jù)類型完全一樣才可以 console.log(18===18); console.log(18 === '18');
結(jié)果如圖
邏輯運(yùn)算符
概念:邏輯運(yùn)算符是用來進(jìn)行布爾值運(yùn)算的運(yùn)算符,其返回值也是布爾值,后面開發(fā)中經(jīng)常用于多個(gè)條件的判斷
邏輯運(yùn)算符 | 說明 | 案例 |
---|---|---|
&& | “邏輯與”,簡稱"與" and | true&&false |
|| | “邏輯或”,簡稱"或" or | true||false |
! | “邏輯非”,簡稱"非" not | !true |
//1.邏輯與&& and兩側(cè)都為true結(jié)果才是true 只要有一側(cè)為false結(jié)果就為false console.log(3>5&&3>2);//false console.log(3<5&&3>2)//true //2.邏輯或 || or 兩側(cè)都為false 結(jié)果才是false 只有一側(cè)為true ,結(jié)果就是true console.log(3>5||3>2)//true console.log(3>5||3<2);//false
短路運(yùn)算(邏輯中斷)
短路運(yùn)算的原理:當(dāng)有多個(gè)表達(dá)式(值)時(shí),左邊的表達(dá)式值可以確定結(jié)果時(shí),就不在繼續(xù)運(yùn)算右邊的表達(dá)式的值
1.邏輯與
語法:表達(dá)式1&&表達(dá)式2
如果第一個(gè)表達(dá)式的值為真,則返回表達(dá)式2
如果第一個(gè)表示式的值為假,則返回表達(dá)式1
2.邏輯或
語法:表達(dá)式1||表達(dá)式2
如果第一個(gè)表達(dá)式的值為真,則返回表達(dá)式1
如果第一個(gè)表達(dá)式的值為假,則返回表達(dá)式2
//1.用我們的布爾值參與的邏輯運(yùn)算 true&&false==false //2.123&&456 是值或者是表達(dá)式參與了邏輯運(yùn)算? //3.邏輯與短路運(yùn)算,如果表達(dá)式1 結(jié)果為真 ,則返回表達(dá)式2,如果表達(dá)式1為假,那么返回表達(dá)式1 //除0以外的數(shù)都為真 console.log(1233&&2344); console.log(0&&352); console.log(0&&1+2&&456+8789); //如果有空的或者否定的為假,其余為真 //(0,'',null,undefined,NaN)空 //4.邏輯或短路運(yùn)算 如果表達(dá)式1為真 結(jié)果為真 則返回的是表達(dá)式1 如果表達(dá)式1 結(jié)果為假 則返回的是表達(dá)式2 console.log(123||456);//123 console.log(123||456||+123);//123 //邏輯中斷很重要,它會(huì)影響我們程序運(yùn)行的結(jié)果 var num=11; console.log(123||num);//123 console.log(0||num);//11 console.log(num);//11
賦值運(yùn)算符
概念:用來把數(shù)據(jù)賦值給變量的運(yùn)算符
賦值運(yùn)算符 | 說明 | 案例 |
---|---|---|
= | 直接賦值 | var userName=‘我是黃茂榮’; |
+= ,-= | 加,減一個(gè)數(shù)后賦值 | var age=10; age+=5; //age=15 |
*=,/=,%= | 乘,除,取模后賦值 | var age=2; age*=5;//age=10 |
優(yōu)先級(jí)
優(yōu)先級(jí) | 運(yùn)算符 | 順序 |
---|---|---|
1 | 小括號(hào) | () |
2 | 一元運(yùn)算符 | ++,–,! |
3 | 算數(shù)運(yùn)算符 | 先*,/ %后+ - |
4 | 關(guān)系運(yùn)算符 | > > = < < = |
5 | 相等運(yùn)算符 | == != === !== |
6 | 邏輯運(yùn)算符 | 先&& 后|| |
7 | 賦值運(yùn)算符 | = |
8 | 逗號(hào)運(yùn)算符 | , |
總結(jié)
運(yùn)算符 | > > = < < = |
| 5 | 相等運(yùn)算符 | == != === !== |
| 6 | 邏輯運(yùn)算符 | 先&& 后|| |
| 7 | 賦值運(yùn)算符 | = |
| 8 | 逗號(hào)運(yùn)算符 | , |
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
js關(guān)閉子窗體刷新父窗體實(shí)現(xiàn)方法
本文將詳細(xì)介紹js關(guān)閉子窗體刷新父窗體實(shí)現(xiàn)方法,需要了解的朋友可以參考下2012-12-12對(duì)JavaScript的全文搜索實(shí)現(xiàn)相關(guān)度評(píng)分的功能的方法
這篇文章主要介紹了對(duì)JavaScript的全文搜索實(shí)現(xiàn)相關(guān)度評(píng)分的功能的方法,采用了一個(gè)名為Okapi BM25的算法,文中亦有介紹,需要的朋友可以參考下2015-06-06Javascript 按位與賦值運(yùn)算符 (&=)使用介紹
這篇文章主要介紹了Javascript 按位與賦值運(yùn)算符 (&=)的相關(guān)資料,需要的朋友可以參考下2014-02-02JavaScript字符串對(duì)象fromCharCode方法入門實(shí)例(用于把Unicode值轉(zhuǎn)換為字符串)
這篇文章主要介紹了JavaScript字符串對(duì)象fromCharCode 方法入門實(shí)例,fromCharCode用于把Unicode值轉(zhuǎn)換為字符串,需要的朋友可以參考下2014-10-10javascript 基礎(chǔ)篇2 數(shù)據(jù)類型,語句,函數(shù)
文章里如果有錯(cuò)誤的話,希望能幫忙指正~我也是邊看視頻邊學(xué)習(xí)中,這個(gè)算是個(gè)筆記吧~自認(rèn)為總結(jié)出來的東西比看視頻要節(jié)省點(diǎn)時(shí)間~能幫到別人最好了~幫不到也起碼恩能幫到我自己2012-03-03JS失效 提示HTML1114: (UNICODE 字節(jié)順序標(biāo)記)的代碼頁 utf-8 覆蓋(META 標(biāo)記)的沖突的代
今天使用F12調(diào)試的時(shí)候提示HTML1114: (UNICODE 字節(jié)順序標(biāo)記)的代碼頁 utf-8 覆蓋(META 標(biāo)記)的沖突的代碼頁 utf-8,需要的朋友可以參考下2017-06-06