About the problems of congruence and inequality, equality and inequality in JS

About the problems of congruence and inequality, equality and inequality in JS

Congruent and Incongruent

The comparison of the operands on both sides of the symbol is the same as the operator. For example, if the operands are equal, it returns true, otherwise it returns false. The equality and inequality operators do not convert the operands when comparing for equality, that is, they directly compare for equality or inequality without conversion.

congruent

Symbol: ===

let str1="1"
let str2=1
console.log(str1===str2) //false

Not all equal

symbol:! ==

let str1="1"
let str2=1
console.log(str1!==str2) //true

Equal and unequal

The equality and inequality operators also compare two operands. For example, the equality operator returns true if the two operands are equal, otherwise it returns false. However, the difference between the equality and inequality operators is that the equality and inequality operators will first perform forced type conversion on the operands, and then compare the converted operands.

equal

Symbol: ==

let str1="1"
let str2=1
console.log(str1==str2) //true
console.log(str1===str2) //false
let flag=true
let num=1
console.log(flag==num) //true
console.log(flag===num) //false

Not equal

symbol:! =

let str1="1"
let str2=1
let str3="hello"
console.log(str1!=str2) //false First type conversion, then comparison console.log(str1!==str2) //true For the equality operation, the two operands are not necessarily equal without forced type conversion.	
console.log(str2!=str3) //true	  
console.log(str2!==str3) //true

The rules for type conversion of operands for equality and inequality operators are as follows:

Boolean values ​​are directly converted to numeric values ​​for comparison: false: 0; true: 1

When a string encounters a number, it will be converted to a number and then compared.

For objects, if both operands are objects, compare whether they are the same object. If the two operands refer to the same object, return true; otherwise, return false. If one of the operands is an object, the valueOf method is called to get the original value, and then the comparison is performed (according to the above rules)

const p = new Object('zhangsan') // equivalent to const p = new String('zhangsan')
console.log(p.valueOf() == 'zhangsan') //true
console.log(p == 'zhangsan') //true
const p1={name:'zhangsan'}
let p2=p1
console.log(p1==p2) //true
p2={}
console.log(p1==p2) //false

For null and undefined, null and undefined are equal, but they will not be coerced no matter who they are compared to.

console.log(null==undefined) //true
console.log(null===undefined) //false For all equals, the return result is still false

For NaN, NaN is not equal to any value including itself. Comparison involving operators that are NaNs returns false if they are equal, and true if they are not equal.

console.log(NaN==NaN) //false
console.log(NaN!='') //true
console.log(NaN!=1) //true
console.log(NaN!={}) //true

This is the end of this article about congruence and inequality, equality and inequality in JS. For more relevant JS content about congruence and inequality, equality and inequality, please search previous articles on 123WORDPRESS.COM or continue to browse the related articles below. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Briefly explain the difference between = = (equal to) and = = = (entirely equal to) in Javascript
  • Are the Event objects between js event processing functions identical?
  • The difference between equals (==) and congruent (===) in JavaScript
  • JavaScript equality operator usage instructions
  • Solve the problem that 0.1+0.2 is not equal to 0.3 in JavaScript
  • What is the code for not equal to in javascript?

<<:  Usage of Linux userdel command

>>:  How to quickly add columns in MySQL 8.0

Recommend

The difference between HTML name id and class_PowerNode Java Academy

name Specify a name for the tag. Format <input...

Detailed explanation of the role of the new operator in Js

Preface Js is the most commonly used code manipul...

Introduction to fuzzy query method using instr in mysql

Using the internal function instr in MySQL can re...

Solution to mysql login warning problem

1. Introduction When we log in to MySQL, we often...

MySQL 8.0.14 installation and configuration method graphic tutorial (general)

MySQL service 8.0.14 installation (general), for ...

Configure Mysql master-slave service implementation example

Configure Mysql master-slave service implementati...

Detailed explanation of how to view the current number of MySQL connections

1. View the detailed information of all current c...

Pure HTML and CSS to achieve JD carousel effect

The JD carousel was implemented using pure HTML a...

Example code for implementing a hollow mask layer with CSS

Contents of this article: Page hollow mask layer,...

HTML+CSS to achieve simple navigation bar function

Without further ado, I'll go straight to the ...

How to solve the problem of clicking tomcat9.exe crashing

A reader contacted me and asked why there were pr...