JavaScript | 運算符與表達式
這里是JavaScript系列教程第四期啦!
運算符用于執(zhí)行程序代碼運算,會針對一個以上操作數項目來進行運算。即使不是學習編程的,在學習數學的時候,就知道+,-,*,%,這幾個運算符。下面介紹幾個常用的運算符。
賦值運算符將它右邊的操作數的值賦給左邊的操作數,最簡單的就是等于(=),舉個栗子:x=y。就是將y賦值給x。當然還有一些復合賦值運算符:
解構賦值語法是一個能從數組或對象對應的數組結構或對象字面量里提取數據的 Javascript 表達式。舉個栗子:
//?數組const?list?=?['orange','blue','green']//?不使用結構const?orange?=?list[0]const?blue?=?list[1]const?green?=?list[2]//?使用解構const?[orange,blue,green]?=?list//?對象const?person?=?{name:'orange',age:18}//?不使用解構let?obj?=?{}const?obj.name?=?person.nameconst?obj.age?=?person.age//?使用解構obj?=?{...person}
比較運算符比較它的操作數并返回一個基于表達式是否為真的邏輯值。操作數可以是數字,字符串,邏輯,對象值。以下是常用的比較運算符:
算術運算符使用數值 (字面量或者變量) 作為操作數并返回一個數值。標準的算術運算符就是加減乘除 (+ - * /)。舉個栗子:
const?num?=?22/2;?//?12/num;?//?12+num;?//?42-num;?//?02*num;?//?4
以上是基本的加減乘除,在JavaScript中,還有其他常用的:
邏輯運算符也是非常重要的,簡單的理解為有三種,且或非。
舉個栗子:
let?num1?=?1,num2?=?2;//?且num1?==?1?&&?num2?==?2?//?truenum1?==?1?&&?num2?==?3?//?false//?或num1?==?1?||?num2?==?3?//?truenum1?==?2?||?num2?==?3?//?false//?非!num2?//?falseconst?n1?=?!true?//?falseconst?n2?=?!false;?//?true
條件運算符又被叫做三目運算符,是 JavaScript 中唯一需要三個操作數的運算符。運算的結果根據給定條件在兩個值中取其一。語法為:
條件???值?1?:?值?2
翻譯一下,就是如果條件是真的,那么取值1,否則取值2。
舉個栗子:
const?age?=?18const?name?=?age>18?'orange':'alex'
翻譯一下就是,定義一個年齡為18,定義一個姓名,如果年齡大于18的,姓名就是orange,否則就是alex。從以上代碼看,結果就是alex。
表達式
表達式是一組代碼的集合,它返回一個值。表達式有很多類型:
算術表達式,也就是通常使用加減乘除之類的算術運算符。
字符串表達式,使用字符串運算符,類似于'age'+'18',結果為'age18'
邏輯表達式 ,就是使用邏輯運算符的表達式。返回true或者false。
基本表達式,JavaScript中基本的關鍵字和一般表達式。
左值表達式,分配給左值。
this關鍵字被用于指代當前的對象,通常,this指代的是方法中正在被調用的對象。先了解就好,知道有這個,以后會用到。
function 關鍵字定義了函數表達式。在es5 中,我們定義函數會使用function。
class 關鍵字定義了類表達式。在一些抽象方法會使用。
這兩個是配合使用的,表示的是異步使用方法,等待一個執(zhí)行完畢后,在執(zhí)行下一個。
new 運算符創(chuàng)建了構造函數實例。舉個栗子:
const?obj?=?new?Object()?//?定義一個對象const?arr?=?new?Array()?//?定義一個數組const?str?=?new?String()?//?定義一個字符串const?num?=?new?Number()?//?定義一個數值...
super 關鍵字調用父類的構造器。這個一般在使用class類定義一個類后,又使用class定義一個子類,子類需要繼承父類的屬性時候,就會使用到super。舉個栗子:
class?Person?{??constuctor(name,age){????this.name?=?name????this.age?=?age????this.id?=?'1'??}??logAll(){????console.log('名字叫做:'?+?this.name?+?'年齡為:'?+?this.age?+?'id為'?+?this.id)??}}class?Student?extends?Person?{??constuctor(address){????super(address)?//?我們必須先使用super,下面才能使用this獲取id????this.id?=?'2'?//?這里就是繼承了Person類里面的屬性id,并且更改了它,??}}
當然以上的class是屬于高階進階的語法,所以目前知道就好了,后面進階可以學習使用。
以上就是本期的所有內容了,也算是當我復習了一遍,如果有什么錯誤的地方,歡迎指正,如果有什么不懂的地方,也歡迎詢問呀!