1. 程式人生 > 程式設計 >從未有過的JavaScript運算子詳細解釋

從未有過的JavaScript運算子詳細解釋

目錄
  • 解釋性語言和編譯型語言
    • 1.概述
    • 2.執行過程
    • 識別符號,關鍵字,保留字
      • (一)識別符號
      • (二)關鍵字
      • (三)保留字
    • 運算子
      • 算術運算子
      • 比較運算子概述
      • 邏輯運算子
      • 賦值運算子
  • 總結

    解釋性語言和編譯型語言

    1.概述

    計算機不www.cppcns.com能直接理解除機器語言以外的語言,所以要把程式設計師所寫的語言翻譯成機器語言才能被執行程式,程式語言翻譯成機器語言的工具,被稱為翻譯器

    在這裡插入圖片描述

    • 翻譯器翻譯的方式有兩種:一種是編譯,一種是解釋,兩種方式之間的區別在於翻譯的時間點不同
    • 編譯器是在程式碼執行之前,生成中間程式碼檔案
    • 直譯器是在執行時進行及時解釋,並立即執行(當編譯器以解釋方式執行的時候,也稱之為直譯器)

    2.執行過程

    在這裡插入圖片描述

    類似於請客吃飯

    • 編譯語言:首先先把所有菜上齊了,才能吃飯
    • 解釋語言:好比吃火鍋,邊吃邊涮,同時進行

    識別符號,關鍵字,保留字

    (一)識別符號

    識別符號:就是指開發人員為變數,屬性,函式,引數取的名字(自定義)

    注意:識別符號:不能是關鍵字或者保留字

    (二)關鍵字

    關鍵字:是指本身已經使用了的字,不能再把它充當變數名,方法名。(一旦使用就是在製造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等。

    (三)保留字

    保留字:實際就是預留的“關鍵字”,意思是現在 雖然不是關鍵字,但是別人是潛力股,未來可能成為關鍵字,同樣不能使用它們當變數名或方法名

    包括: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等。

    運算子

    運算子:也被稱為操作符,是用於實現賦值,比較和執行UmFPpNJIsk算數運算等功能的符號。

    js中常用的運算子有

    • 算數運算子
    • 遞增和遞減運算子
    • 比較運算子
    • 邏輯運算子
    • 賦值運算子

    算術運算子

    概念:算術運算使用的符號,用於執行兩個變數或值的算術運算。

    運算子描述例項
    +10+20=30
    -120-10=110
    *10*20=200
    /10/20=0.5
    %取模(取餘數)得到的是除法的餘數 9%2=1

    浮點數的精確度問題

    浮點數的最高精確度是17位小數,但是在進行算術計算時其精確度遠遠不如整數、

    var result=0.1+0.2;
    console.log(result);//結果不是 0.3,而是0.30000000000000004
    console.log(0.07*100);//7.000000000000001,而是7.000000000000001
    

    所以:不要直接判斷兩個浮點數是否相等

    表示式和返回值

    表示式:是由數字、運算子、變數等以能求得數值的有意義排列方法所得的組合

    簡單理解:是由數字、運算子、變數等www.cppcns.com組成的式子

    遞增和遞減運算子概述

    如果需要反覆給數字變數新增或減去1。可以使用遞增( ++ )和遞減( – )運算子來完成。

    在中,遞增( ++ )和遞減( – )既可以放在變數前面。也可以放在變數後面。放在變數前面時,

    我們可以稱為前置遞增(遞減)運算子,放在變數後面時,我們可以稱為後置遞增(遞減)運算子。

    注意:遞增和遞減運算子必須和變數配合使用。

    遞增運算子

    前置遞增運算子

    ++num前置遞增,就是自加1,類似於num=num+1,但是++num寫起來更簡單。

    使用口訣:先自加,後返回值

    後置遞增運算子

    ++num前置遞增,但是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
    //單獨使用自增自減,效果一樣
    		
    var number=10;
    //先返回值(返回初始的值),再加+
    console.log(number++ +10);//20
    console.log(number);//11
    		
    

    比較運算子概述

    概念:比較運算子是兩個資料進行比較時所使用的運算子,比較運算後,會返回一個布林值(true/false)作成運算結果

    運算子說明案例結果
    <小於1<2true
    >大與1>2false
    > =大於等於2>=2true
    < =小於等於3<=2false
    ==判等號(會轉型)37=37true
    !=不等號37!=37false
    === !==全等 要求值和資料型別都一致37===‘37’false

    =小結

    符號作用用法
    =賦值把右邊給左邊
    ==判斷判斷兩邊值是否相等(注意此時有隱式轉換)
    ===全等判斷兩邊的值和資料型別是否完全相同

    程式碼演示

    console.log(3>=5);
    		console.log(2<=4);
    		//1.我們程式裡的等於符號,是預設轉換型別,會把字串的資料型別轉換為數字型只要求值相等就可以了
    		console.log(3==5);
    		console.log('黃茂榮'=='黃茂雲');
    		console.log(18=='18');
    		consjole.log(18!=18);
    		//2.我們程式裡面有全等一模一樣,要求兩側的值,還有資料型別完全一樣才可以
    		console.log(18===18);
    		coUmFPpNJIsknsole.log(18 === '18');
    

    結果如圖

    在這裡插入圖片描述

    邏輯運算子

    概念:邏輯運算子是用來進行布林值運算的運算子,其返回值也是布林值,後面開發中經常用於多個條件的判斷

    邏輯運算子說明案例
    &&“邏輯與”,簡稱"與" andtrue&&false
    ||“邏輯或”,簡稱"或" ortrue||false
    “邏輯非”,簡稱"非" not!true
    	//1.邏輯與&& and兩側都為true結果才是true 只要有一側為false結果就為false
    	console.log(3>5&&3>2);//false
    	console.log(3<5&&3>2)//true
    	//2.邏輯或 ||  or 兩側都為false 結果才是false 只有一側為true ,結果就是true
    	console.log(3>5||3>2)//true
    	console.log(3>5||3<2);//false
    

    短路運算(邏輯中斷)

    短路運算的原理:當有多個表示式(值)時,左邊的表示式值可以確定結果時,就不在繼續運算右邊的表示式的值

    1.邏輯與

    語法:表示式1&&表示式2

    如果第一個表示式的值為真,則返回表示式2

    如果第一個表示式的值為假,則返回表示式1

    2.邏輯或

    語法:表示式1||表示式2

    如果第一個表示式的值為真,則返回表示式1

    如果第一個表示式的值為假,則返回表示式2

    //1.用我們的布林值參與的邏輯運算  true&&false==false
    		//2.123&&456 是值或者是表示式參與了邏輯運算?
    		//3.邏輯與短路運算,如果表示式1 結果為真 ,則返回表示式2,如果表示式1為假,那麼返回表示式1
    		//除0以外的數都為真
    		console.log(1233&&2344);
    		console.log(0&&352);
    		console.log(0&&1+2&&456+8789);
    		//如果有空的或者否定的為假,其餘為真   
    		 //(0,'',null,undefined,NaN)空
    		//4.邏輯或短路運算   如果表示式1為真 結果為真 則返回的是表示式1 如果表示式1 結果為假 則返回的是表示式2
    		console.log(123||456);//123
    		console.log(123||456||+123);//123
    		//邏輯中斷很重要,它會影響我們程式執行的結果
    		var num=11;
    		console.log(123||num);//123
    		console.log(0||num);//11
    		console.log(num);//11
    

    賦值運算子

    概念:用來把資料賦值給變數的運算子

    賦值運算子說明案例
    =直接賦值var userName=‘我是黃茂榮’;
    += ,-=加,減一個數後賦值var age=10; age+=5; //age=15
    *=,/=,%=乘,除,取模後賦值var age=2; age*=5;//age=10

    優先順序

    優先順序運算子順序
    1小括號()
    2一元運算子++,–,!
    3算數運算子先*,/ %後+ -
    4關係運算符> > = < < =
    5相等運算子== != === !==
    6邏輯運算子先&& 後||
    7賦值運算子=
    8逗號運算子,

    總結

    運算子 | > > = < < = |
    | 5 | 相等運算子 | == != === !== |
    | 6 | 邏輯運算子 | 先&& 後|| |
    | 7 | 賦值運算子 | = |
    | 8 | 逗號運算子 |,|

    本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注我們的更多內容!