1. 程式人生 > >javascript中的"x != x"

javascript中的"x != x"

在javascript的運用中,經常遇到判斷兩個 物件/值 是否相等的情況。有些表明上看著一樣,其實他們不一樣。有些特殊情況,需要我們辨別。

引用型別

他們都是引用型別,儲存的空間將從堆中分配。變數處的值是一個指標,指向儲存物件的記憶體處。

具有相同屬性的兩個物件。

var a = { x : 1 }
var b = { x : 1 }
a === b // false  兩個單獨的物件永不相等
a == b // false  兩個單獨的物件永不相等

他們實際是new Object()的簡寫。初始化變數a時候,賦了一個物件值,那麼在堆中開闢了一個新空間。
初始化變數b時候,也是開闢了一個新空間。兩個變數,所指向的記憶體地址是不一樣的。

兩個單獨的空陣列.

var a = [], b = []
a === b // false  兩個單獨的陣列永不相等。
a == b // false  兩個單獨的陣列永不相等。

以上兩個例子,原理相同。

原始型別

判斷Number型別的值是否為NaN

ECMAScript (ES6)包含Number.isNaN()函式。
通過Number.isNaN(x)來檢測變數x是否是一個非數值。然而,在缺少Number.isNaN函式的情況下,通過表示式(x != x)來檢測變數x是否是NaN會更加可靠。

String型別

String型別,我目前沒有發現相同字面量,會不相等的情況。

Symbol型別

const s1 = Symbol() 
const s2 = Symbol()
s1 == s2 // false
s1 === s2 // false

Symbol()函式返回symbol型別的值,都是唯一的,不相等的,並且具有靜態屬性和靜態方法。

[完]

相關推薦

JavaScriptsubstring(x,y)提取字串

  說明:substring()方法用於提取字串中介於兩個指定下標之間的字元。 語法規則 語法:stringObject.substring(start,stop),start——此引數必填,為非負整數,表示規定要提取的子串的第一個字元在stringObject中的位置;sto

javascript的"x != x"

在javascript的運用中,經常遇到判斷兩個 物件/值 是否相等的情況。有些表明上看著一樣,其實他們不一樣。有些特殊情況,需要我們辨別。 引用型別 他們都是引用型別,儲存的空間將從堆中分配。變數處的值是一個指標,指向儲存物件的記憶體處。 具有相同屬性的兩個物件。 var a = { x : 1 } var

javascript x offsetX clientX screenX pageX的區別

long src article art 左右滑動 tail java avi eight 在javascript的事件對象中的關於事件鼠標位置的幾個屬性(x, pageX, offsetX, scrrenX clientX)及(y, pageY, offsetY, scr

javascript的"x != x"

AR 內存地址 指向 obj 靜態方法 false 一個 原理 目前 在javascript的運用中,經常遇到判斷兩個 對象/值 是否相等的情況。有些表明上看著一樣,其實他們不一樣。有些特殊情況,需要我們辨別。 引用類型 他們都是引用類型,存儲的空間將從堆中分配。變量處的值

Javascript 關於if(xx)和 x==y的判斷

轉化 onu 方法 IV 技術分享 很多 布爾 空字符串 top Javascript 中關於if(xx)和 x==y的判斷是非常基礎但卻十分重要的內容,以下是筆者學習的一些總結: 1、if(xx)的判斷: 在if(xx)的判斷中,括號裏的內容會強制轉換會布爾類型,結果

HTTP 請求頭X-Forwarded-For,X-Real-IP

進行 gnu 防止 cal 截取 雲服務器 sta 分配 wow X-Forwarded-For 在使用nginx做反向代理時,我們為了記錄整個的代理過程,我們往往會在配置文件中做如下配置: location / { 省略...

javascript dom節點x

文本 prev 下一個 alt 返回 技術 復制代碼 bili 順序 一,js 獲取元素(父節點,子節點,兄弟節點) var test = document.getElementById("test");  var parent = test.parentNod

HTML Meta新增X-UA-Compatible和IE=Edge,chrome=1有什麼作用

公司在做文件預覽時經常遇到IE的相容性問題,這時就需要在meta標籤中加入一句話,強制IE的相容性版本 原文來自:https://zhidao.baidu.com/question/264134661794412085.html 這是一個,文件相容模式的定義。 Edge 模式告訴

apache iis 使用HTTP 響應頭資訊X-Frame-Options屬性

原文:https://www.jb51.net/article/109436.htm 方法三:使用HTTP 響應頭資訊中的 X-Frame-Options屬性 使用 X-Frame-Options 有三個可選的值: DENY:瀏覽器拒絕當前頁面載入任何Frame頁面SAMEORIGIN:

Scala元組別名.x的含義

Scala元組知識點 (大神請直接跳過此部分,檢視後文) 4.3. 元組(Tuple) 對映:對映是K/V對的集合。 元組:K/V對是元組的最簡單形式,元組可以裝著多個不同型別的值,是不同型別的值的聚集。 4.3.1. 建立訪問元組 a、建立元素的一種方式 b、建立元組的第二種方式

(轉)PythonX[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]

      Python中對於陣列和列表進行切片操作是很頻繁的,當然對於切片的操作可供我們直接使用的函式也是很遍歷了,我們今天主要簡單總結一下常用集中索引化方式,希望對大家有所幫助吧。           對於列表的切片比較簡單,在我之前的部落格裡面有詳細的講解,需要的話可

Meta新增X-UA-Compatible和IE=Edge,chrome=1有什麼作用

常常在很多網站下看到如下meta定義: <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 這是一個文件相容模式的定義。主要用於加強程式碼對IE的相容性,強制IE使用當前本地最新版標準模

Python function(#) (X)格式 和 (#)在Python3.*的注意

python 的語法定義和C++、matlab、java 還是很有區別的。 1. 括號與函式呼叫 def devided_3(x): return x/3. print(a) #不帶括號呼叫的結果:<function a at 0x139c756a8>

關於cx及其它格式化符

                格式化:%x表示按16進位制輸出;int a = 16;%02x:輸出10;%03x:輸出:010;%04x:輸出:0010;1.1.1 格式化輸入輸出函式Turbo C2.0 標準庫提供了兩個控制檯格式化輸入、 輸出函式printf( ) 和scanf(), 這兩個函式可以在

java關於++x前加加和x++後加加的疑惑!

java中關於前加加和後加加的疑惑! 大家看下面的程式碼和截圖(執行結果在截圖中可以看到),不知道會不會跟我一樣的感覺,會不會覺得自己對前加加和後加加的知識點還沒學懂呢? 我甚至都一度懷疑是不是自己

Java關於x++與++x在運算值的變化

首先(x++)+1中的小括號毫無意義,小括號並不會改變++運算的優先順序, 對錶達式自增運算子加括號絕大部分是因為需要進行程式碼的格式化, 並告訴java++應該是如何被解釋的,否則x+++x只會有一種解釋方式。但要注意是否該自增變數的後一表達式元素是否為常量。 如都為變數

HTTPapplication/x-www-form-urlencoded字元說明

在學習ajax的時候,如果用post請求,需要設定如下程式碼。 ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");11 雖然知道需要這麼做,但是不知道application/x-www-form-urlenc

matlab 不顯示圖x,y軸

計算機視覺網站:http://www.cvpapers.com/ 國際會議投稿參考:http://web.cs.wpi.edu/~gogo/hive/AcceptanceRates/ < 科學論文------任勝利的編輯之家 http://blog.sciencenet.cn

PythonX[:,0]和X[:,1]

X[:,0]是numpy中陣列的一種寫法,表示對一個二維陣列,取該二維陣列第一維中的所有資料,第二維中取第0個數據,直觀來說,X[:,0]就是取所有行的第0個數據, X[:,1] 就是取所有行的第1個數據。 舉例說明: import numpy as np X = np

Bootstrap 實現輸入框x 按鈕刪除文字值

bootstrap 的 form-control提供了一個 form-control-feedback類,用於在輸入框中顯示一個狀態,下面的地址有例項: http://www.w3schools.com/bootstrap/bootstrap_forms_in