1. 程式人生 > >js 一個等號"=" 二個等號"==" 三個等號"===" 的區別

js 一個等號"=" 二個等號"==" 三個等號"===" 的區別

一個等號是賦值操作,==先轉換型別再比較,===先判斷型別,如果不是同一型別直接為false。

=== 判斷規則

如果型別不同,就[不相等] 
如果兩個都是數值,並且是同一個值,那麼[相等];(!例外)的是,如果其中至少一個是NaN,那麼[不相等]。(判斷一個值是否是NaN,只能用isNaN()來判斷) 
如果兩個都是字串,每個位置的字元都一樣,那麼[相等];否則[不相等]。 
如果兩個值都是true,或者都是false,那麼[相等]。 
如果兩個值都引用同一個物件或函式,那麼[相等];否則[不相等]。 
如果兩個值都是null,或者都是undefined,那麼[相等]。 
== 判斷規則:

如果兩個值型別相同,進行 === 比較。 
如果兩個值型別不同,他們可能相等。根據下面規則進行型別轉換再比較: 
如果一個是null、一個是undefined,那麼[相等]。 
如果一個是字串,一個是數值,把字串轉換成數值再進行比較。 
如果任一值是 true,把它轉換成 1 再比較;如果任一值是 false,把它轉換成 0 再比較。 
如果一個是物件,另一個是數值或字串,把物件轉換成基礎型別的值再比較。物件轉換成基礎型別,利用它的toString或者valueOf方法。js核 心內建類,會嘗試valueOf先於toString;例外的是Date,Date利用的是toString轉換。非js核心的物件,令說(比較麻煩,我 也不大懂) 
任何其他組合,都[不相等]。

alert(0 == “”); // true
alert(0 == false); // true
alert(“” == false); // true

alert(0 === “”); // false
alert(0 === false); // false
alert(“” === false); // false

===用來進行嚴格的比較判斷

alert(1 == “1″); // true

alert(1 === “1″); // false

相關推薦

css中margin標記可以帶一個、四引數,各有不同的含義

         在css中使用margin可以將margin-top,margin-right,margin-bottom,margin-left,縮寫為一個標記,順序為上右下左(順時針)。帶不同的引數具有不同的含義,

嵌入式 知識積累 () 之 學習階段

嵌入式LININX開發第一學習階段,主要打好基礎,學好C程式設計,Linux系統程式設計。 1、C語言程式設計基礎 2、嵌入式開發基礎:Linux概述安裝,shell命令,vim編輯器,GCC,GDB,Makefile,交叉開發環境構建 3、嵌入式Linux系統程式設計:shell程式設

實驗5.1(舊),寫出一個一個主函數和小函數組成的程序,該程序可以從某一字符串中刪除指定字符。

using span ring font 修改 mes out 部分 nbsp 實驗目的: 輸入一串字符,再輸入一個指定字符,將字符串中刪去指定字符再顯示出來。要求程序把輸入字符串、刪除指定字符和顯示字符串的功能分別在各自單獨的.cpp文件由外部函數來處理,主文件中

js中改變this指向的常用方法bind,call和apply

一.bind:說起bind,很多人都會想起jquery中的bind繫結方法,給元素繫結事件,今天所講的bind則是js的原生方法---可改變this的指向,下面我們來看演示:var name = 'sally'; function sayName(){ return

理解JS捕獲、目標、冒泡階段

<!DOCTYPE html> <html> <head> <title>demo</title> </head> <body> <a id="A">元素A</a> </body&

Docker 入門到實踐()Docker 基本概念

gist 系統 概念 png tag 分發 rep 創建 多層 一、Docker 的三個進本概念? 了解 Docker 的三個基本概念,就可以大致了解 Docker 的生命周期。 鏡像(Image) 容器(Container) 倉庫(Repository)

3、判斷-循環

col 三元 blog 執行 判斷 簡單的 alert fine if條件語句 一、三個判斷 // 第一種:if else,if,else, // 第二種:三元運算符(三目運算符) // 應用於簡單的if else判斷 // 第三種:switch ca

Java多執行緒-52-以上執行緒之間的通訊

        前面一篇介紹了兩個執行緒之間的通訊,那麼三個執行緒和三個以上執行緒之間的通訊是如何實現呢。我們前面一篇在查詢Object類的時候,知道有一個wait()和notify()方法,同時還有一個notifyAll()方法。這個notfiyAll(

VLOOKUP函式多條件(兩條件)查詢

到這裡就可以結束了,藉助輔助列提取到結果,如果不想用輔助列,可把上面幾步的公式合併成一個公式=VLOOKUP(A13&B13,IF({1,0},A1:A7&B1:B7,C1:C7),2,0),按ctrl+shift+回車即可。

js 一個等號"=" 等號"==" 等號"===" 的區別

一個等號是賦值操作,==先轉換型別再比較,===先判斷型別,如果不是同一型別直接為false。 === 判斷規則 如果型別不同,就[不相等]  如果兩個都是數值,並且是同一個值,那麼[相等];(!例外)的是,如果其中至少一個是NaN,那麼[不相等]。(判斷一個值是否是

JavaScript中一個等號等號等號區別

一個等號是賦值操作,==先轉換型別再比較,===先判斷型別,如果不是同一型別直接為false。=== 判斷規則如果型別不同,就[不相等] 如果兩個都是數值,並且是同一個值,那麼[相等];(!例外)的是,如果其中至少一個是NaN,那麼[不相等]。(判斷一個值是否是NaN,只能用

js中兩等號(==)和等號(===)的區別

js中兩個等號(==)和三個等號(===)的區別: 1. "=="表示:equality -> 等同  的意思,"=="使用兩個等號時,如果兩邊值的型別不同的時候,是要先先進行型別轉換後,才能做比較。 2. "==="表示:identity -> 恆等 的意思,

java中 一個等於號和兩等於號等號區別

一個等號是賦值號,兩個等號是判斷號。賦值表示把右邊的值或引用賦給左邊的變數,判斷號表示返回符號兩邊的值是否相等,這裡的值包括引用。相等運算子"==",如果兩個運算元不是同一型別,則會先嚐試轉換型別在進行比較。嚴格相等運算子“==="首先計算其運算元的值,然後比較這兩個值,比較

JS/JavaScript中兩等號 == 和 等號 === 的區別

JavaScript中兩個等號 == 和 三個等號 === 的區別 一、概念 == 和 ===  (1)  "=="叫做相等運算子,"==="叫做嚴格運算子。 (2) ==,equalit

js ==與===區別(兩等號等號) 《轉》

== equality 等同,=== identity 恆等。 ==, 兩邊值型別不同的時候,要先進行型別轉換,再比較。 ===,不做型別轉換,型別不同的一定不等。 下面分別說明: 先說 ===,這個比較簡單。下面的規則用來判斷兩個值是否===相等: 1、如果型別不同,就[不相等] 2、如果兩個都是數值

JS實現輸出一個字符串中第一連續的數字

數字 length 個數字 pri split ret () 第一個 spl 問題描述:在一個字符串中,輸出其中第一個連續的三個數字。例如:str="1234568" 輸出:1 2 3。   var printNum = function(){     var str =

js 一個感嘆號區別

今天看到一個前輩使用了三個感嘆號來判斷值,就查了一下,綜合了幾篇文章的觀點1、一個感嘆號!可將變數轉換成boolean型別,null、undefined和空字串取反都為false,其餘都為true。!null=true !undefined=true !''=true !10

PHP擷取UTF8字串 utf-8 可以能佔一個字元 字元 或者字元

PHP擷取UTF8字串   想必很多人從一開始接觸程式設計到現在,都有一個慣性思維:英文字元佔用一個位元組,中文字元佔用兩個位元組。不錯,英文字元是佔用一個位元組,但中文字元佔用兩個位元組是相對於GBK編碼而言(當然,其他一些編碼如GB2312也是),但是在

PHP等號與兩等號區別

在PHP中兩個變數間比較相等可以使用兩個等號或者三個等號,這兩種方式有什麼區別呢? 用兩個等號時,只要比較的兩個變數的值相同,輸出true,否則輸出false。 用三個等號時,除了兩個變數的值相同外,還必須這兩個變數的型別相同,才能輸出true,否則輸出false。 例如: $v1 = "1"; $v2 =