java中兩個等號跟三個等號的區別?
首先,== equality 等同,=== identity 恆等。
==, 兩邊值型別不同的時候,要先進行型別轉換,再比較。
===,不做型別轉換,型別不同的一定不等。
下面分別說明:
先說 ===,這個比較簡單。下面的規則用來判斷兩個值是否===相等:
1、如果型別不同,就[不相等]
2、如果兩個都是數值,並且是同一個值,那麼[相等];(!例外)的是,如果其中至少一個是NaN,那麼[不相等]。(判斷一個值是否是NaN,只能用isNaN()來判斷)
3、如果兩個都是字串,每個位置的字元都一樣,那麼[相等];否則[不相等]。
4、如果兩個值都是true,或者都是false,那麼[相等]。
5、如果兩個值都引用同一個物件或函式,那麼[相等];否則[不相等]。
6、如果兩個值都是null,或者都是undefined,那麼[相等]。
再說 ==,根據以下規則:
1、如果兩個值型別相同,進行 === 比較。
2、如果兩個值型別不同,他們可能相等。根據下面規則進行型別轉換再比較:
a、如果一個是null、一個是undefined,那麼[相等]。
b、如果一個是字串,一個是數值,把字串轉換成數值再進行比較。
c、如果任一值是 true,把它轉換成 1 再比較;如果任一值是 false,把它轉換成 0 再比較。
d、如果一個是物件,另一個是數值或字串,把物件轉換成基礎型別的值再比較。物件轉換成基礎型別,利用它的toString或者valueOf方法。js核心內建類,會嘗試valueOf先於toString;例外的是Date,Date利用的是toString轉換。非js核心的物件,令說(比較麻煩,我也不大懂)
e、任何其他組合,都[不相等]。
舉例:
"1" == true
型別不等,true會先轉換成數值 1,現在變成 "1" == 1,再把"1"轉換成 1,比較 1 == 1, 相等。
= 賦值運算子
== 等於
=== 嚴格等於
例:
var a = 3;
var b = "3";
a==b 返回 true
a===b 返回 false
因為a,b的型別不一樣
===用來進行嚴格的比較判斷
相關推薦
java中兩個等號跟三個等號的區別?
首先,== equality 等同,=== identity 恆等。 ==, 兩邊值型別不同的時候,要先進行型別轉換,再比較。 ===,不做型別轉換,型別不同的一定不等。下面分別說明: 先說 ===,這個比較簡單。下面的規則用來判斷兩個值是否===相等: 1、如果型別不同,就
java方面中,引數後面跟三個點(...)的含義
private void removeTempFiles(String... fileNames) { for (String fileName : fileNames) { try { new File(fileName).delete(); } catch (Excep
JAVA中String,StringBuilder以及StringBuffer三個類之間的區別
不斷地學習,不斷地填充自己的技術庫,學習Java已經有一段時間了,由一開始的不適應到後來的足以靈活應對,不僅僅取決於老師的精緻講課,還有就是依靠我的學習祕籍:記錄自己的學習筆記。今天給大家分享的技術學習筆記是JAVAString,StringBuilder以及StringBuffer這三個類之間的區別。 &
java中a[i].length跟a.length的區別
public class Main { public static void main(String[] args) { int[][] A=new int[][]{{1,2},{4,5},{7,8,10,11,12},{}}; Sy
java中 一個等於號和兩個等於號三個等號的區別?
一個等號是賦值號,兩個等號是判斷號。賦值表示把右邊的值或引用賦給左邊的變數,判斷號表示返回符號兩邊的值是否相等,這裡的值包括引用。相等運算子"==",如果兩個運算元不是同一型別,則會先嚐試轉換型別在進行比較。嚴格相等運算子“==="首先計算其運算元的值,然後比較這兩個值,比較
js中兩個等號(==)和三個等號(===)的區別
js中兩個等號(==)和三個等號(===)的區別: 1. "=="表示:equality -> 等同 的意思,"=="使用兩個等號時,如果兩邊值的型別不同的時候,是要先先進行型別轉換後,才能做比較。 2. "==="表示:identity -> 恆等 的意思,
JS/JavaScript中兩個等號 == 和 三個等號 === 的區別
JavaScript中兩個等號 == 和 三個等號 === 的區別 一、概念 == 和 === (1) "=="叫做相等運算子,"==="叫做嚴格運算子。 (2) ==,equalit
java中兩個字串連線的三種方法
java中兩個字串連線有以下三種方法: 第一種方法:使用+; 第二種方法:使用concat(); 第三種方法:使用append(); 如下程式碼: public class Practice { //第一種方法:使用+ public static String
java中兩個字符串如何比較大小
blog 順序 body ring 差值 int print compare gpo 使用 String.compareTo 方法:compareTo() 的返回值是int, 它是先比較對應字符的大小(ASCII碼順序)1、如果字符串相等返回值02、如果第一個字符和
Java中兩個byte型別相加結果賦值給byte型別的變數會報編譯錯誤,byte加byte的結果為什麼是int?
背景: 之前偶然看到有討論這個問題,在網上搜了半天,結果都不盡如人意,解釋沒有到位, 有的說byte加byte預設就是int,那為什麼這麼做呢? 這不是找麻煩麼?這種奇怪的預設還有哪些?帶來一些列疑問。。。。。。 有的說byte儲存的就是整型資料,這種說法的對錯姑且不論,至少我覺得難免有
在java中兩個時間相減
間隔=Date1.getTime()-Date2.getTime();得出來的是毫秒數. 除1000是秒,再除60是分,再除60是小時. SimpleDateFormat myFormatter = new SimpleDateFormat( "yyyy-MM-dd "
Android-LayoutInflater中inflate方法兩個引數和三個引數的區別
關於inflate引數問題,我想很多人多多少少都瞭解一點,網上也有很多關於這方面介紹的文章,但是枯燥的理論或者翻譯讓很多小夥伴看完之後還是一臉懵逼,so,我今天想通過三個案例來讓小夥伴徹底的搞清楚這個東東。本篇部落格我們不講原始碼,只看使用。原始碼的解讀會在下一篇博文中帶
JavaScript中一個等號、二個等號、 三個等號 的區別
一個等號是賦值操作,==先轉換型別再比較,===先判斷型別,如果不是同一型別直接為false。=== 判斷規則如果型別不同,就[不相等] 如果兩個都是數值,並且是同一個值,那麼[相等];(!例外)的是,如果其中至少一個是NaN,那麼[不相等]。(判斷一個值是否是NaN,只能用
三個案例帶你看懂LayoutInflater中inflate方法兩個引數和三個引數的區別
關於inflate引數問題,我想很多人多多少少都瞭解一點,網上也有很多關於這方面介紹的文章,但是枯燥的理論或者翻譯讓很多小夥伴看完之後還是一臉懵逼,so,我今天想通過三個案例來讓小夥伴徹底的搞清楚這個東東。本篇部落格我們不講原始碼,只看使用。原始碼的解讀會在下一篇博文中帶來。
java引數後面跟三個點所代表的意思
java引數後面跟三個點是什麼意思 (2011-04-14 11:55:36)轉載 標籤: it 分類: OutStandingIdeas AVA中型別後面跟三個點是什麼來的。 瀏覽次數:808次懸賞分:5 | 解決時間:2009-6-26 10:30 | 提問者:不
java中 兩個List copy 遇到的問題
先看一段程式碼: 把 List taskDataRelInfos 中的 內容 拷貝到 List taskDataRels 中,二者 欄位型別 基本一樣。 List<TaskDataRelInfo> taskDataRelInfo
解決java中兩個double型別的值相加
每週六都急急忙忙趕過來加班,今天早上一同事問我兩個double型別相加會出現精度問題,找了很久沒找到原因,後來在網上一看需要額外處理一下,提供幾個通用的方法。 /** * 提供精確的加法運算 * @param
在java中兩個執行緒同時執行是怎麼變化的
線上程執行中,兩個執行緒同時執行的情況是很平常的,下面我用一個案例來說明一下兩個執行緒同時執行時,執行緒狀態的變化情況: 程式碼如下: /* * 功能:兩個執行緒同時執行是如何變化的 * 作者:zyj0813 * 案例:編寫一個程式,該程式可以接受一個整數n,建立兩個
java中兩個map的融合(兩個map有相同欄位)
試想這樣一個場景: 資料庫表中 有 城市資訊表 city_tbl; 有院士資訊表 ys_tbl ,其中院士有城市id欄位(id); 但是不是所有城市都有院士; 我們想要得到 城市的詳細資訊,包括院
js ==與===區別(兩個等號與三個等號) 《轉》
== equality 等同,=== identity 恆等。 ==, 兩邊值型別不同的時候,要先進行型別轉換,再比較。 ===,不做型別轉換,型別不同的一定不等。 下面分別說明: 先說 ===,這個比較簡單。下面的規則用來判斷兩個值是否===相等: 1、如果型別不同,就[不相等] 2、如果兩個都是數值