黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 關(guān)系運(yùn)算符詳解

關(guān)系運(yùn)算符詳解

更新時(shí)間:2020-10-13 17:15:55 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1224次

關(guān)系運(yùn)算符用于測(cè)試兩個(gè)值之間的關(guān)系,根據(jù)關(guān)系是否存在而返回true或false,關(guān)系表達(dá)式總是返回一個(gè)布爾值,通常在if、while或for語句中使用關(guān)系表達(dá)式,用以控制程序的執(zhí)行流程。本文我們就根據(jù)實(shí)例來一起學(xué)習(xí)關(guān)系運(yùn)算符。

Java中共有===、!==、==、!=、<、<=、>、>=8種關(guān)系運(yùn)算符,本文將分別為大家來介紹這8種關(guān)系運(yùn)算符。


一、恒等運(yùn)算符

1.恒等運(yùn)算符'===',也叫嚴(yán)格相等運(yùn)算符,首先計(jì)算其操作數(shù)的值,然后比較這兩個(gè)值,比較過程沒有任何類型轉(zhuǎn)換,比較過程如下:

如果兩個(gè)值的類型不相同,則返回false

console.log(1 === '1');//false

console.log(1 === [1]);//false

如果兩個(gè)值都是Undefined、Null、Boolean、Number、String相同原始類型的值,值相同,就返回true,否則,返回false

console.log(undefined === undefined);//true

console.log(null === null);//true

console.log(true === true);//true

console.log(false === false);//true

console.log(1 === 1);//true

console.log(2.5 === 2.5);//true

如果兩個(gè)值引用同一個(gè)對(duì)象,則返回true,否則,返回false

更詳細(xì)的解釋是,javascript對(duì)象的比較是引用的比較,而不是值的比較。對(duì)象和其本身是相等的,但和其他任何對(duì)象都不相等。如果兩個(gè)不同的對(duì)象具有相同數(shù)量的屬性,相同的屬性名和值,它們依然是不相等的

console.log([] === []);//false

console.log({} === {});//false

console.log(function(){} === function(){});//false

var a = {};

b = a;

console.log(a === b);//true


二、恒不等運(yùn)算符

恒不等運(yùn)算符(!==)又叫嚴(yán)格不等于運(yùn)算符,操作數(shù)的比較過程與恒等運(yùn)算符相同,結(jié)果取反。如果'==='的比較結(jié)果是true,則'!=='的比較結(jié)果是false;如果'==='的比較結(jié)果是false,則'!=='的比較結(jié)果是true

console.log(1 !== '1');//true

console.log(1 !== 1);//false

console.log(true !== false);//true

console.log({} !== {});//true


三、相等運(yùn)算符

相等運(yùn)算符'=='和恒等運(yùn)算符相似,但相等運(yùn)算符的比較并不嚴(yán)格,如果兩個(gè)操作數(shù)不是同一類型,相等運(yùn)算符會(huì)嘗試進(jìn)行一些類型轉(zhuǎn)換,然后再進(jìn)行比較

當(dāng)兩個(gè)操作數(shù)類型相同時(shí),比較規(guī)則和恒等運(yùn)算符規(guī)則相同

console.log(undefined == undefined);//true

console.log(10 == 0xa);//true

console.log(NaN == NaN);//false

console.log([] == []);//false

當(dāng)兩個(gè)操作數(shù)類型不同時(shí),相等運(yùn)算符'=='會(huì)遵守如下規(guī)則:

如果一個(gè)值是對(duì)象類型,另一值是原始類型,則對(duì)象類型會(huì)先使用valueOf()轉(zhuǎn)換成原始值,如果結(jié)果還不是原始值,則再使用toString()方法轉(zhuǎn)換,再進(jìn)行比較

2.在對(duì)象轉(zhuǎn)換為原始值之后,如果兩個(gè)操作數(shù)都是字符串,則進(jìn)行字符串的比較

console.log(new Date() == 'Sat Jun 25 2016 11:07:20 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)');//true

3.在對(duì)象轉(zhuǎn)換為原始值之后,如果至少有一個(gè)操作數(shù)不是字符串,則兩個(gè)操作數(shù)都將通過Number()轉(zhuǎn)型函數(shù)轉(zhuǎn)換成數(shù)字進(jìn)行數(shù)值比較

console.log(true == 1);//true

console.log(true == 0);//false

console.log(false == '1');//false

console.log(false == '0');//true

console.log(true == 'true');//false,相當(dāng)于1 == NaN

console.log([1] == 1);//true,相當(dāng)于1 == 1

console.log([1] == '1');//true,相當(dāng)于'1' == '1'

console.log([] == 0);//true,相當(dāng)于0 == 0

console.log([] == '0');//false,相當(dāng)于'' == '0'

console.log([] == true);//false,相當(dāng)于0 == 1

console.log([1] == true);//true,相當(dāng)于1 == 1

var a = {

valueOf:function(){

return 1;

},

toString:function(){

return '2';

}

}

console.log( a == '1');//true,相當(dāng)于1 == 1

var a = {

valueOf:function(){

return {};

},

toString:function(){

return '1';

}

}

console.log( a == 1);//true,相當(dāng)于1 == 1


四、不相等運(yùn)算符

不相等運(yùn)算符(!=)的操作數(shù)比較過程與相等運(yùn)算符相同,結(jié)果取反。如果'=='的比較結(jié)果是true,則'!='的比較結(jié)果是false;如果'=='的比較結(jié)果是false,則'!='的比較結(jié)果是true

console.log(1 != '1');//false,相當(dāng)于1 != 1

console.log(true != '1');//false,相當(dāng)于1 != 1

console.log('true' != 1);//true,相當(dāng)于NaN != 1

console.log([1] != '1');//false,相當(dāng)于'1' != '1'

console.log([1] != true);//false,相當(dāng)于1 != 1


五、大于運(yùn)算符

大于運(yùn)算符(>)用于比較兩個(gè)操作數(shù),如果第一個(gè)操作數(shù)大于第二個(gè)操作數(shù),則大于運(yùn)算符的計(jì)算結(jié)果為true,否則為false

大于運(yùn)算符的操作數(shù)可能是任意類型,然而,只有數(shù)字和字符串才能真正執(zhí)行比較操作,因此那些不是數(shù)字和字符串的操作數(shù)都將進(jìn)行類型轉(zhuǎn)換,類型轉(zhuǎn)換規(guī)則如下:

1.如果操作數(shù)是對(duì)象,則這個(gè)對(duì)象將先使用valueOf()轉(zhuǎn)換成原始值,如果結(jié)果還不是原始值,則再使用toString()方法轉(zhuǎn)換

2.在對(duì)象轉(zhuǎn)換為原始值之后,如果兩個(gè)操作數(shù)都是字符串,則按照字母表的順序?qū)蓚€(gè)字符串進(jìn)行比較,這里提到的字母表順序是指組成這個(gè)字符串的16位unicode字符的索引順序

console.log('b' > 'a');//true

console.log('B' > 'a');//false

console.log({} > '[a]');//true,相當(dāng)于'[object Object]' > '[a]'

console.log({} > '[p]');//false,相當(dāng)于'[object Object]' > '[p]'

console.log(['a'] > ['b']);//false,相當(dāng)于'a' > 'b'

console.log([2] > [11]);//true,相當(dāng)于'2' > '11'

3.在對(duì)象轉(zhuǎn)換為原始值之后,如果至少有一個(gè)操作數(shù)不是字符串,則兩個(gè)操作數(shù)都轉(zhuǎn)換成數(shù)字進(jìn)行比較

console.log(new Date() > 100);//true,相當(dāng)于1466826928667 > 100

console.log(true > [0]);//true,相當(dāng)于 1 > 0

console.log(2 > 1);//true

console.log(11 > '2');//true,相當(dāng)于11 > 2

console.log(NaN > 1);//false

console.log(1 > NaN);//false

console.log({} > true);//false,相當(dāng)于 NaN > 1

對(duì)于數(shù)字和字符串來說,加號(hào)運(yùn)算符和比較運(yùn)算符的行為有所不同,加號(hào)運(yùn)算符更偏愛字符串,如果它的一個(gè)操作數(shù)是字符串,就進(jìn)行字符串連接。而比較運(yùn)算符則更偏愛數(shù)字,只有在兩個(gè)操作數(shù)都是字符串時(shí),才進(jìn)行字符串的比較

console.log(1 + 2);//3

console.log('1' + '2');//'12'

console.log('1' + 2);//'12',相當(dāng)于 '1' + '2'

console.log(2 > 1);//true

console.log('2' > '1');//true

console.log('2' > 1);//true,相當(dāng)于 2 > 1


六、小于等于運(yùn)算符

小于等于運(yùn)算符(<=)并不依賴于小于或等于運(yùn)算符的比較規(guī)則,而是遵循大于運(yùn)算符的比較規(guī)則,結(jié)果取反。如果'>'的比較結(jié)果是true,則'<='的比較結(jié)果是false;如果'>'的比較結(jié)果是false,則'<='的比較結(jié)果是true

console.log(1 <= '0');//false,相當(dāng)于1 <= 0

console.log(true <= '0');//false,相當(dāng)于1 <= 0

console.log('true' <= 0);//false,相當(dāng)于NaN <= 0

console.log([1] <= '0');//false,相當(dāng)于'1' <= '0'

console.log([0] <= true);//true,相當(dāng)于0 <= 1

console.log(1 <= 1);//true


七、小于運(yùn)算符

小于運(yùn)算符(<)用于比較兩個(gè)操作數(shù),如果第一個(gè)操作數(shù)小于第二個(gè)操作數(shù),則小于運(yùn)算符的計(jì)算結(jié)果為true,否則為false

小于運(yùn)算符與大于運(yùn)算符的類型轉(zhuǎn)換規(guī)則類似,就不再贅述。

八、大于等于運(yùn)算符

同樣地,大于等于運(yùn)算符(>=)并不依賴于大于或等于運(yùn)算符的比較規(guī)則,而是遵循小于運(yùn)算符的比較規(guī)則,結(jié)果取反。如果'<'的比較結(jié)果是true,則'>='的結(jié)果是false;如果'<'的比較結(jié)果是false,則'>='的結(jié)果是true。


以上就是對(duì)8種關(guān)系運(yùn)算符的詳細(xì)介紹,也舉了不少實(shí)例來方便大家理解。其實(shí)這些關(guān)系運(yùn)算符就像一架架橋梁,連通著各種各樣的數(shù)據(jù),向我們表述它們之間的關(guān)系。關(guān)系運(yùn)算符的學(xué)習(xí)同樣也是一架溝通著我們和Java的橋梁,觀看本站的Java零基礎(chǔ)教程,夯實(shí)自己的Java基礎(chǔ),讓我們的學(xué)習(xí)之橋堅(jiān)不可摧!


提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 一级毛片免费的 | 成人午夜视频在线观看 | 天天骑天天干 | 男女视频免费观看 | 一级黄色在线视频 | 国产免费a视频 | 五月激情在线 | 精品国产免费观看久久久 | 一个人www免费看的视频 | 亚洲国产成人久久综合区 | 最近中文字幕高清视频2019 | 一级毛片免费一级直接观看 | 羞羞视频成人 | 国产91色在线 | 亚洲 | 美日韩一区二区三区 | 亚洲成成熟老妇女 | 亚洲性爰视频 | 成人午夜性a一级毛片美女 成人午夜小视频 | 黄片毛片免费在线观看 | 日韩高清不卡 | 七色永久性tv网站免费看 | 韩国福利视频一区二区 | 国产精品视频无圣光一区 | 精品视频一区二区三区 | 97久久人人爽人人爽人人 | 日日操夜夜爽 | 中文字幕亚洲精品日韩精品 | 国产精品成人麻豆专区 | 精品国产欧美 | 劲爆欧美精品13页 | 在线亚洲黄色 | 亚洲精品国产精品精 | 中文字幕小明 | 国产手机免费视频 | 欧美最新一区二区三区四区 | 国产精品久久久久久亚洲伦理 | 亚洲成年人在线观看 | 午夜性影院爽爽爽爽爽爽 | 欧美猛妇色xxxxxbbbb | 亚洲日韩中文字幕 | 国产精品久久久久久久午夜片 |