操作符,表達(dá)式你真的學(xué)懂了嗎?

操作符和表達(dá)式

1.操作符

定義:

  • 操作符是js程序中操作值的符號(hào)。
  • 通過(guò)操作符可以構(gòu)建復(fù)雜表達(dá)式

操作數(shù)

  • 操作數(shù)指操作符可以操作值的數(shù)量
    一元操作符:可以操作一個(gè)值
-100
a++
++a

二元操作符:可以操作兩個(gè)值

1+2
a = 100
a === b
let a

三元操作符:可以操作三個(gè)值

a ? 100 : -100

操作符的結(jié)果

  • 所有的操作符在操作值的時(shí)候必須返回值

操作符的分類

操作符是否有破壞性

  • 破壞性的操作符:指操作符的運(yùn)算結(jié)果會(huì)修改之前的值
    所有的賦值操作符都是破壞性的
    ++ -- 一元操作符也是破壞性的
  • 非破壞性的操作符
    不會(huì)對(duì)原有的值產(chǎn)生影響

從功能角度分類

第一組:算數(shù)操作符
  • 一元操作運(yùn)算符 :
    定義:對(duì)一個(gè)值進(jìn)行操作返回操作后的值,特點(diǎn):它擁有最高優(yōu)先級(jí),右結(jié)合性的特點(diǎn)。
    -(負(fù)號(hào))
    +(正號(hào)):將操作的值轉(zhuǎn)換為數(shù)值并返回轉(zhuǎn)換后的值。它通過(guò)調(diào)用Number()內(nèi)置函數(shù)
    --
    ++

  • 二元運(yùn)算操作符:+ - * / % **
第二組:關(guān)系操作符

通過(guò)操作符比較兩個(gè)值的關(guān)系:是否相等,大于,小于還是等
相等不等操作符:== === != !==

true == false

比較操作符: < > <= >=

1> 2
a => b

in操作符 :檢查對(duì)象的屬性
instanceof操作符

第三組:邏輯操作符

通過(guò)操作符對(duì)兩個(gè)值進(jìn)行邏輯的判斷
邏輯與 &&
邏輯非 !
邏輯或 ||

第四組:賦值操作符

通過(guò)操作符為變量賦值

+=
-=
*=
/=
%=
**=

第五組:其他操作符

鏈接操作符:+
檢測(cè)數(shù)據(jù)類型的操作符:typeof
刪除操作符:delete
逗號(hào)操作符:,
void操作符

操作符的喜好

操作符在操作值的時(shí)候是對(duì)值有要求的,有些操作符喜歡數(shù)值,有些操作符來(lái)者不拒。

操作符的優(yōu)先級(jí)

操作符是有優(yōu)先級(jí)的

1+ 2 * 3//先乘除后加減
2*3**2//18 
  • 小括號(hào)操作符優(yōu)先級(jí)最高
  • 一元操作符優(yōu)先級(jí)第二
  • 逗號(hào)操作符優(yōu)先級(jí)最低
  • 賦值操作符優(yōu)先級(jí)倒數(shù)第二低
  • 冪操作符的優(yōu)先級(jí)高于乘除取余
  • 乘除取余高于加減
  • 算數(shù)運(yùn)算符優(yōu)先級(jí)高于關(guān)系運(yùn)算符
  • 關(guān)系運(yùn)算符優(yōu)先級(jí)高于邏輯運(yùn)算符

操作符的結(jié)合性

操作的結(jié)合性指:操作符在操作值的時(shí)候的計(jì)算方向

  • 左結(jié)合:從左向右執(zhí)行計(jì)算
  • 右結(jié)合:從右向左執(zhí)行計(jì)算
//大多數(shù)操作符都具有左結(jié)合性
1+2+3
//少量的操作符具有右結(jié)合性:冪 ,賦值運(yùn)算符,三元運(yùn)算符
2**3**2//512右結(jié)合

let c = 2//右結(jié)合
a? "hello" : (b ? 1: 0)

2.表達(dá)式

定義:表達(dá)式是一個(gè)可以求值的js短語(yǔ)。(表達(dá)式是有返回值的)
1.所有的表達(dá)式都必須計(jì)算出一個(gè)值
2.表達(dá)式是可以嵌套的

表達(dá)式分類

1.字面量表達(dá)式:常量表達(dá)式 => js中最簡(jiǎn)單的表達(dá)式

100
"abc"
true
false
undefined
null

2.變量表達(dá)式:返回的是之前賦值給變量的值

i //變量表達(dá)式
mm //變量表達(dá)式
let srt //let 是一個(gè)關(guān)鍵字,用于聲明變量

3.數(shù)組定義表達(dá)式

[1,2,3]

4.對(duì)象定義表達(dá)式

{
x = 1,
y = 2
}

5.函數(shù)定義表達(dá)式

let fn = function(a,b){
return a ** b
}

6.數(shù)組訪問(wèn)表達(dá)式

arr[0]
arr[arr.length - 1]

7.屬性訪問(wèn)表達(dá)式

let obj = {
name = "張三"
age = "18"
}
student.name

8.函數(shù)調(diào)用表達(dá)式

fn()
fn(2,3)

9.賦值表達(dá)式

a = 100
a += 100//a = a +100
a -= 10//a = a -100
a /= 100//a = a/ 100
a %= 100//a = a % 100
a *= 100//a = a*  100
a **= 100//a = a** 100

10.算數(shù)表達(dá)式

1* 1
1%1
1**1
1-1
1+1

11.關(guān)系表達(dá)式

1 > 2//比較表達(dá)式
2 < 1//比較表達(dá)式
unll == undefined//相等表達(dá)式
a != b//不等表達(dá)式

12.邏輯表達(dá)式

100 && "hello"
true || false
!1

13.求值表達(dá)式
14.其他表達(dá)式

數(shù)據(jù)類型轉(zhuǎn)換

  • 原始類型
    數(shù)值
    字符串
    undefined
    unll
    symbol
  • 對(duì)象類型
    數(shù)據(jù)類型指把任意一種數(shù)據(jù)類型轉(zhuǎn)換為數(shù)值,字符串,布爾值類型

顯示數(shù)據(jù)類型轉(zhuǎn)換

ECMAScript為我們做顯示數(shù)據(jù)轉(zhuǎn)換有三個(gè)函數(shù)

1.顯示轉(zhuǎn)數(shù)值

  • 任何一種數(shù)據(jù)類型都可以轉(zhuǎn)成數(shù)值
  • 方法一:Number()

  • 接受任意類型的值
    工作原理:
    1.內(nèi)置函數(shù)
    2.整體轉(zhuǎn)換
    3.接收任意的值
    4.可以轉(zhuǎn)首尾空格和小數(shù)點(diǎn)
    5.空都轉(zhuǎn)成0,[] unll ""
    6.NaN : [1,2,3] undefined {}
    語(yǔ)法:
new Nunber(thing)
Number(thing)

定義:
1.Number()作為函數(shù)調(diào)用時(shí),它將傳入的值轉(zhuǎn)為數(shù)值
2.Number()用于構(gòu)造函數(shù)
語(yǔ)法規(guī)則:

  • Number是整體轉(zhuǎn)換,對(duì)傳入的每一個(gè)字符進(jìn)行檢測(cè),只要有一個(gè)字符無(wú)法轉(zhuǎn)換它就返回NaN
  • Number是js的一個(gè)內(nèi)置的構(gòu)造函數(shù)
  • 調(diào)用Number方法的時(shí)候,它可以把任意類型的值轉(zhuǎn)換為數(shù)值型
    規(guī)則:
    1.Number()方法是整體1轉(zhuǎn)換:對(duì)傳入的每一個(gè)字符進(jìn)行轉(zhuǎn)換
    轉(zhuǎn)換成功:有一個(gè)字符無(wú)法轉(zhuǎn)換,那么它就返回nan
    轉(zhuǎn)換失?。?/strong>全部字符通過(guò)檢測(cè),則返回檢測(cè)到的數(shù)值
    2.字符串:Nunber()方法可以轉(zhuǎn)換小數(shù)點(diǎn)
    3.字符串:可以轉(zhuǎn)首尾空格
    4.字符串:Number()方法無(wú)法轉(zhuǎn)換字母特殊符號(hào)
    5.布爾值:true 轉(zhuǎn)為 1 false 轉(zhuǎn)為0
    6.對(duì)象 : 空對(duì)象{} 轉(zhuǎn)為nan
    7.null 轉(zhuǎn)為0
    8.undefined 轉(zhuǎn)為nan
    9.空字符串 “” 轉(zhuǎn)為0
  1. 數(shù)組 : 空數(shù)組[ ]轉(zhuǎn)為0
    11.數(shù)組:[100]轉(zhuǎn)為100
    12.數(shù)組:[1,2,3]轉(zhuǎn)為nan
       n =true //1
       n =undefined//nan
        n = {}//nan
        n = null // 0
          n = false//0
        n = !true//0
        n = "" //0
        n = []//0
        n = Number(n)
        console.log(n,typeof n)

方法2:parselnt()

定義:parselnt()函數(shù)解析字符串參數(shù)并返回指定基數(shù)(數(shù)學(xué)數(shù)字系統(tǒng)中的基數(shù))的整數(shù)

  • 該方法的對(duì)象是字符串
  • 對(duì)字符串從左到右逐一檢測(cè),遇到非數(shù)值(包括小數(shù)點(diǎn))就停止檢測(cè),返回檢測(cè)到的數(shù)值,如果沒(méi)有則返回NaN
    語(yǔ)法:
parselnt(string)
parselnt(string,radix)
  • 參數(shù)1 :字符串
  • 參數(shù)2:指定基數(shù)
 let v = "100"
            v = "3.14"http://3
            v = "10.5px"http://10
            v = "10px"http://10
            v = "px"http://對(duì)字符串從左到右逐一檢測(cè),遇到非數(shù)值就停止檢測(cè)
            v = {}//nan
            v = true //nan
        v = parseInt(v)
        console.log(v,typeof v)

工作原理:
先將參數(shù)使用內(nèi)置函數(shù)轉(zhuǎn)為字符串,然后對(duì)字符串從左到右逐一檢測(cè),遇到非數(shù)值就停止檢測(cè),返回檢測(cè)的數(shù)值,沒(méi)有檢測(cè)到返回nan。

方法3:parseFloat()

定義:parseFloat()函數(shù)解析一個(gè)字符串參數(shù)并返回一個(gè)浮點(diǎn)數(shù)

  • 對(duì)字符串從左到右逐一檢測(cè),遇到非數(shù)值(不包括小數(shù)點(diǎn))就停止檢測(cè)

2.顯示轉(zhuǎn)字符串

  • 任何一種數(shù)據(jù)類型都可以轉(zhuǎn)成字符串
  • 方法一:String()

定義:
1.String()作為函數(shù)調(diào)用時(shí),它將傳入的值轉(zhuǎn)為字符串
2.String()用于構(gòu)造函數(shù)

new String(thing)
String(thing)
let a = 100
a = String(a)//a
a = []//""
a = [100]//100
a = true//true
a= -0//0
a=[1,2,3]//1,2,39
a= {} //[object object]
a = {name:"nh"}//[object object]
console.log(a typeof a)

方法二:值.toString()函數(shù)

值.toString()是所有數(shù)據(jù)類型的方法(null和undefined除外)

let a = 100
a = a.toString()
console.log(a typeof a)//100 string

3.顯示轉(zhuǎn)布爾值

  • Boolean()

  • 任何一種數(shù)據(jù)類型都可以轉(zhuǎn)成布爾值

做數(shù)據(jù)類型轉(zhuǎn)換,請(qǐng)建立2個(gè)概念:傳入的值 返回的值

  • 可以傳入任意類型的值
  • 返回值我們只關(guān)注:字符串、數(shù)值、布爾值
  • 數(shù)據(jù)類型轉(zhuǎn)換指把任意一種數(shù)據(jù)類型轉(zhuǎn)換成為數(shù)值、字符串或布爾值類型。

隱示數(shù)據(jù)類型轉(zhuǎn)換

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 表達(dá)式:表達(dá)你的想法或者說(shuō)是意圖。 理解:表達(dá)式與數(shù)學(xué)中的定義相似,表達(dá)式是指具有一定的值、用操作符把常數(shù)和變量連...
    余生請(qǐng)你指教_7efa閱讀 233評(píng)論 1 7
  • 表達(dá)式 定義表達(dá)式是可以通過(guò)求值來(lái)產(chǎn)生一個(gè)值的PHP代碼塊。 示例最簡(jiǎn)單的表達(dá)式是字面量和變量。字面量的結(jié)果是其本...
    簡(jiǎn)單asdf閱讀 215評(píng)論 0 0
  • 表達(dá)式:表達(dá)你的想法或者說(shuō)示意圖。 理解:表達(dá)式與數(shù)學(xué)中的定義相似,表達(dá)式是指具有一定的值,用操作符把常數(shù)和變量連...
    XiaoAM閱讀 794評(píng)論 0 9
  • 一、JavaScript操作符(運(yùn)算符): 1、一元操作符(單目操作符):遞增和遞減操作符++遞增操作符,--遞減...
    旅途_1601閱讀 183評(píng)論 0 0
  • 表達(dá)式:表達(dá)你的想法或者說(shuō)是意圖。 理解:表達(dá)式與數(shù)學(xué)中的定義相似,表達(dá)式是指具有一定的值、用操作符把常數(shù)和變量連...
    別鬧23閱讀 851評(píng)論 0 0

友情鏈接更多精彩內(nèi)容