當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Javascript Object.is( )用法及代碼示例


JavaScript中的對象和對象構造函數?
在麵向對象編程的生活世界中,我們已經知道類和對象的重要性,但是與其他編程語言不同,JavaScript沒有其他語言所具有的傳統類。但是JavaScript具有對象和構造函數,它們在大多數情況下以相同的方式工作以執行相同的操作。

  • 構造函數是與“new”關鍵字一起使用的常規JavaScript函數。構造函數在JavaScript中有兩種類型,即內置構造函數(數組和對象)和自定義構造函數(定義特定對象的屬性和方法)。
  • 當我們需要一種創建可以多次使用而不必每次都重新定義對象的對象“type”的構造函數時,構造函數會很有用,這可以使用Object Constructor函數來實現。按照慣例,大寫的構造函數名稱會將其與常規函數區分開。

例如,考慮以下代碼:

function Automobile(color) {
  this.color=color;
}

var vehicle1 = new Automobile ("red");

函數“Automobile()”是一個對象構造函數,其屬性和方法即“color”在其內部聲明為關鍵字“this”。然後使用關鍵字“new”將使用對象構造函數定義的對象轉換為即時對象。


調用新的Automobile()時,JavaScript執行以下兩項操作:

  1. 它創建一個新的新對象(實例)Automobile()並將其分配給變量。
  2. 它將對象的構造函數屬性“color”設置為Automobile。

Object.is()方法
Object.is()方法用於確定兩個值是否相同。
如果兩個值具有以下屬性之一,則它們可以相同:

  • 如果兩個值都未定義。
  • 如果兩個值都為null。
  • 如果兩個值都為true或false。
  • 如果兩個字符串的長度相同,且字符相同且順序相同。
  • 如果兩個值均為數字,並且均為“+0”。
  • 如果兩個值均為數字,並且均為“-0”。
  • 如果兩個值均為數字,並且均為“NaN”或均為非零且均為非NaN且值均相同。

Object.is()接受兩個參數作為要比較的值,並返回一個布爾值,指示兩個參數是否相同。

Object.is()方法和“==”運算符之間的區別
“==”和“===”運算符將數字值“+0”和“-0”視為相等,而Object.is()方法將它們視為不相等。除此之外,“==”和“===”運算符不將Number.Nan視為Nan。

應用範圍:

  • Object.is()用於比較兩個字符串。
  • Object.is()用於比較兩個數字。
  • Object.is()用於比較兩個數字的極性。
  • Object.is()用於比較兩個對象。

用法:

Object.is(value1, value2)

Parameters Used:
value1 : It is the first value to be compared.
value1 : It is the second value to be compared.

返回值:
Object.is() returns a boolean indicating whether the two arguments are same or not.

下麵提供上述函數的示例。

例子:



Input : Object.is('geeksforgeeks', 'geeksforgeeks');
Output: true

說明:在上麵的示例中,Object.is()方法返回true,因為作為參數傳遞的兩個字符串的長度均相同,字符相同且順序相同。

Input : Object.is('geeksforgeeks', 'gfg');
Output : false

說明:在上麵的示例中,Object.is()方法返回false,因為作為參數傳遞的兩個字符串的長度都不相同,字符相同且順序相同。

Input : Object.is(0,-0);
Output: false

說明:在上麵的示例中,Object.is()方法返回false,因為作為參數傳遞的兩個數字都具有不同的極性。

Input : var check = { a: 100 };
        Object.is(check, check);  
Output: true

說明:在以上示例中,已創建對象“check”並將其作為參數傳遞給Object.is()方法。因為兩個參數都是單個對象並且相互比較,所以它返回true。

下麵提供了上述函數的代碼。

代碼1:

<script> 
  
// Comparing strings of the same length  
// with the same characters in the same order   
Object.is('geeksforgeeks', 'geeksforgeeks'); 
  
</script>

輸出:

true

代碼2:

<script> 
  
// Comapring two different strings 
Object.is('geeksforgeeks', 'gfg'); 
  
</script>

輸出:

false
代碼3:
<script> 
  
// Comapring 0 and -0  
Object.is(0,-0); 
  
</script>

輸出:

false

代碼4:

<script> 
  
// Comparing a variable with itself 
var check = { a: 100 }; 
Object.is(check, check);   
  
</script>

輸出:

false

異常:

  • “==”和“===”運算符將數字值“+0”和“-0”視為相等,但object.is()方法將它們區別對待。
  • 即使它們是不同的數據類型,Object.is()方法也不會在比較之前強製轉換這些值。

參考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is




注:本文由純淨天空篩選整理自Shubrodeep Banerjee大神的英文原創作品 Object.is() in JavaScript。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。