js用什么運算符訪問對象的屬性 js里和有什么區(qū)別?
js里和有什么區(qū)別?區(qū)別是當進行雙等號比較時候:先檢查兩個操作數(shù)數(shù)據(jù)類型,如果相同,則進行比較,如果不同,則愿意為你進行一次類型轉(zhuǎn)換,轉(zhuǎn)換成相同類型后再進行比較,而比較時,如果類型不同,直接就是fal
js里和有什么區(qū)別?
區(qū)別是當進行雙等號比較時候:先檢查兩個操作數(shù)數(shù)據(jù)類型,如果相同,則進行比較,如果不同,則愿意為你進行一次類型轉(zhuǎn)換,轉(zhuǎn)換成相同類型后再進行比較,而比較時,如果類型不同,直接就是false.
操作數(shù)1操作數(shù)2,操作數(shù)1操作數(shù)2
比較過程:
雙等號:
(1)如果兩個值類型相同,再進行三個等號()的比較
(2)如果兩個值類型不同,也有可能相等,需根據(jù)以下規(guī)則進行類型轉(zhuǎn)換在比較:
1)如果一個是null,一個是undefined,那么相等
2)如果一個是字符串,一個是數(shù)值,把字符串轉(zhuǎn)換成數(shù)值之后再進行比較
三等號:
(1)如果類型不同,就一定不相等
(2)如果兩個都是數(shù)值,并且是同一個值,那么相等;如果其中至少一個是NaN,那么不相等。(判斷一個值是否是NaN,只能使用isNaN()來判斷)
(3)如果兩個都是字符串,每個位置的字符都一樣,那么相等,否則不相等。
(4)如果兩個值都是true,或是false,那么相等
(5)如果兩個值都引用同一個對象或是函數(shù),那么相等,否則不相等
(6)如果兩個值都是null,或是undefined,那么相等
javascript中:truetrue 為什么返回false?
作為一個混跡于悟空問答多天的種子選手(哈哈),我覺得我可以回答一下這個問題:
首先,我們來說一下操作符。在ruby中操作符是用來比較兩個操作數(shù)是否相等的,但是需要注意一點的是,這個操作符在比較的時候會進行數(shù)據(jù)類型的轉(zhuǎn)換。其中有一條轉(zhuǎn)換規(guī)則就是,如果有一個操作數(shù)是布爾值,則將其轉(zhuǎn)成數(shù)值——false轉(zhuǎn)換成0,true轉(zhuǎn)換成1。從題中可以看出,操作符右邊是個布爾類型的值,會先將其轉(zhuǎn)換成數(shù)值1,然后再去比較。操作符左邊是個字符串,最后實際上是轉(zhuǎn)換成true1的返回值了,很明顯這個返回值是false。
下面再簡單說一下操作符的轉(zhuǎn)換規(guī)則:
如果有一個操作數(shù)是布爾值,在比較相等之前先將其轉(zhuǎn)換成數(shù)值——false轉(zhuǎn)成0,true轉(zhuǎn)成1;
如果一個操作數(shù)是字符串,另一個是數(shù)值,先將字符串轉(zhuǎn)成數(shù)值再進行比較;
如果一個操作數(shù)是對象,另一個不是,先調(diào)用對象的valueOf()方法,用得到的結(jié)果按照上面的規(guī)則進行比較;
null和undefined是相等的;
在比較相等之前,不能將null和undefined轉(zhuǎn)成其他的任何值;
如果有一個操作數(shù)是NaN,返回false,另外,即使兩個都是NaN,也是返回false;
如果兩個操作數(shù)都是對象,比較它們是不是同一個對象,如果是返回true,不是返回false。
好了,回答就到這,說的不對還望大家在下面留言指正。如果大家對技術充滿激情,熱愛分享,歡迎關注抖音:It界里一枚鎮(zhèn)中心小學,讓我們共同努力,一起進步,謝謝大家。
因為你的‘true是字符串類型,它不能直接轉(zhuǎn)換為布爾值類型,程序不認識;如果是變量的話,倒還有可能讓它返回真的結(jié)果,但是很遺憾你加了引號,讓它變成了字符串。
想要知道一個值是否為真,那得有它的條件,比如先定義為變量truetrue,那么在問式中輸出時,它返回的就是真。
布爾值的類型,可能讓初學者不是那么直觀的理解得到,其實它的結(jié)果就只有真和假,條件得到滿足,它就是真,問式中的數(shù)據(jù)類型是字符串是不應該這樣用的,也不會出現(xiàn)這樣的用法。