操作符脊串,表達式你真的學懂了嗎凉泄?

操作符和表達式

1.操作符

定義:

  • 操作符是js程序中操作值的符號躏尉。
  • 通過操作符可以構建復雜表達式

操作數(shù)

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

二元操作符:可以操作兩個值

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

三元操作符:可以操作三個值

a ? 100 : -100

操作符的結果

  • 所有的操作符在操作值的時候必須返回值

操作符的分類

操作符是否有破壞性

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

從功能角度分類

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

  • 二元運算操作符:+ - * / % **
第二組:關系操作符

通過操作符比較兩個值的關系:是否相等蒂誉,大于教藻,小于還是等
相等不等操作符:== === != !==

true == false

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

1> 2
a => b

in操作符 :檢查對象的屬性
instanceof操作符

第三組:邏輯操作符

通過操作符對兩個值進行邏輯的判斷
邏輯與 &&
邏輯非 !
邏輯或 ||

第四組:賦值操作符

通過操作符為變量賦值

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

第五組:其他操作符

鏈接操作符:+
檢測數(shù)據(jù)類型的操作符:typeof
刪除操作符:delete
逗號操作符:右锨,
void操作符

操作符的喜好

操作符在操作值的時候是對值有要求的括堤,有些操作符喜歡數(shù)值,有些操作符來者不拒绍移。

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

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

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

操作符的結合性

操作的結合性指:操作符在操作值的時候的計算方向

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

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

2.表達式

定義:表達式是一個可以求值的js短語蹂窖。(表達式是有返回值的)
1.所有的表達式都必須計算出一個值
2.表達式是可以嵌套的

表達式分類

1.字面量表達式:常量表達式 => js中最簡單的表達式

100
"abc"
true
false
undefined
null

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

i //變量表達式
mm //變量表達式
let srt //let 是一個關鍵字轧抗,用于聲明變量

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

[1,2,3]

4.對象定義表達式

{
x = 1,
y = 2
}

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

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

6.數(shù)組訪問表達式

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

7.屬性訪問表達式

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

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

fn()
fn(2,3)

9.賦值表達式

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ù)表達式

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

11.關系表達式

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

12.邏輯表達式

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

13.求值表達式
14.其他表達式

數(shù)據(jù)類型轉換

  • 原始類型
    數(shù)值
    字符串
    undefined
    unll
    symbol
  • 對象類型
    數(shù)據(jù)類型指把任意一種數(shù)據(jù)類型轉換為數(shù)值瞬测,字符串横媚,布爾值類型

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

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

1.顯示轉數(shù)值

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

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

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

  • Number是整體轉換分唾,對傳入的每一個字符進行檢測抗碰,只要有一個字符無法轉換它就返回NaN
  • Number是js的一個內(nèi)置的構造函數(shù)
  • 調(diào)用Number方法的時候,它可以把任意類型的值轉換為數(shù)值型
    規(guī)則:
    1.Number()方法是整體1轉換:對傳入的每一個字符進行轉換
    轉換成功:有一個字符無法轉換绽乔,那么它就返回nan
    轉換失敾∮:全部字符通過檢測,則返回檢測到的數(shù)值
    2.字符串:Nunber()方法可以轉換小數(shù)點
    3.字符串:可以轉首尾空格
    4.字符串:Number()方法無法轉換字母特殊符號
    5.布爾值:true 轉為 1 false 轉為0
    6.對象 : 空對象{} 轉為nan
    7.null 轉為0
    8.undefined 轉為nan
    9.空字符串 “” 轉為0
  1. 數(shù)組 : 空數(shù)組[ ]轉為0
    11.數(shù)組:[100]轉為100
    12.數(shù)組:[1,2,3]轉為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ù)學數(shù)字系統(tǒng)中的基數(shù))的整數(shù)

  • 該方法的對象是字符串
  • 對字符串從左到右逐一檢測折砸,遇到非數(shù)值(包括小數(shù)點)就停止檢測看疗,返回檢測到的數(shù)值,如果沒有則返回NaN
    語法:
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://對字符串從左到右逐一檢測睦授,遇到非數(shù)值就停止檢測
            v = {}//nan
            v = true //nan
        v = parseInt(v)
        console.log(v,typeof v)

工作原理:
先將參數(shù)使用內(nèi)置函數(shù)轉為字符串两芳,然后對字符串從左到右逐一檢測,遇到非數(shù)值就停止檢測去枷,返回檢測的數(shù)值怖辆,沒有檢測到返回nan。

方法3:parseFloat()

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

  • 對字符串從左到右逐一檢測删顶,遇到非數(shù)值(不包括小數(shù)點)就停止檢測

2.顯示轉字符串

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

定義:
1.String()作為函數(shù)調(diào)用時竖螃,它將傳入的值轉為字符串
2.String()用于構造函數(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.顯示轉布爾值

  • Boolean()

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

做數(shù)據(jù)類型轉換,請建立2個概念:傳入的值 返回的值

  • 可以傳入任意類型的值
  • 返回值我們只關注:字符串逗余、數(shù)值特咆、布爾值
  • 數(shù)據(jù)類型轉換指把任意一種數(shù)據(jù)類型轉換成為數(shù)值、字符串或布爾值類型录粱。

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

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末腻格,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子啥繁,更是在濱河造成了極大的恐慌菜职,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旗闽,死亡現(xiàn)場離奇詭異酬核,居然都是意外死亡,警方通過查閱死者的電腦和手機宪睹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蚕钦,“玉大人亭病,你說我怎么就攤上這事∷痪樱” “怎么了罪帖?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵促煮,是天一觀的道長。 經(jīng)常有香客問我整袁,道長菠齿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任坐昙,我火速辦了婚禮绳匀,結果婚禮上,老公的妹妹穿的比我還像新娘炸客。我一直安慰自己疾棵,他們只是感情好,可當我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布痹仙。 她就那樣靜靜地躺著是尔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪开仰。 梳的紋絲不亂的頭發(fā)上拟枚,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機與錄音众弓,去河邊找鬼恩溅。 笑死,一個胖子當著我的面吹牛田轧,可吹牛的內(nèi)容都是我干的暴匠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼傻粘,長吁一口氣:“原來是場噩夢啊……” “哼每窖!你這毒婦竟也來了?” 一聲冷哼從身側響起弦悉,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤窒典,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后稽莉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瀑志,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年污秆,在試婚紗的時候發(fā)現(xiàn)自己被綠了劈猪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡良拼,死狀恐怖战得,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庸推,我是刑警寧澤常侦,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布浇冰,位于F島的核電站,受9級特大地震影響聋亡,放射性物質(zhì)發(fā)生泄漏肘习。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一坡倔、第九天 我趴在偏房一處隱蔽的房頂上張望漂佩。 院中可真熱鬧,春花似錦致讥、人聲如沸仅仆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽墓拜。三九已至,卻和暖如春请契,著一層夾襖步出監(jiān)牢的瞬間咳榜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工爽锥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涌韩,地道東北人。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓氯夷,卻偏偏與公主長得像臣樱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子腮考,可洞房花燭夜當晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 表達式:表達你的想法或者說是意圖雇毫。 理解:表達式與數(shù)學中的定義相似,表達式是指具有一定的值踩蔚、用操作符把常數(shù)和變量連...
    余生請你指教_7efa閱讀 192評論 1 7
  • 表達式 定義表達式是可以通過求值來產(chǎn)生一個值的PHP代碼塊棚放。 示例最簡單的表達式是字面量和變量。字面量的結果是其本...
    簡單asdf閱讀 161評論 0 0
  • 表達式:表達你的想法或者說示意圖馅闽。 理解:表達式與數(shù)學中的定義相似飘蚯,表達式是指具有一定的值,用操作符把常數(shù)和變量連...
    XiaoAM閱讀 670評論 0 9
  • 一福也、JavaScript操作符(運算符): 1局骤、一元操作符(單目操作符):遞增和遞減操作符++遞增操作符,--遞減...
    旅途_1601閱讀 142評論 0 0
  • 表達式:表達你的想法或者說是意圖暴凑。 理解:表達式與數(shù)學中的定義相似峦甩,表達式是指具有一定的值、用操作符把常數(shù)和變量連...
    別鬧23閱讀 671評論 0 0