search
HomeWeb Front-endJS Tutorial!=, ==, !==, === usage summary

This time I will bring you a summary of the use of !=, ==, !==, ===, what are the precautions when using !=, ==, !==, === , the following is a practical case, let’s take a look.

var num = 1;  
var str = '1'; 
var test = 1; 
test == num  //true 相同类型 相同值 
test === num //true 相同类型 相同值 
test !== num //false test与num类型相同,其值也相同, 非运算肯定是false 
num == str  //true  把str转换为数字,检查其是否相等。 
num != str  //false == 的 非运算 
num === str //false 类型不同,直接返回false 
num !== str //true  num 与 str类型不同 意味着其两者不等 非运算自然是true啦

== and != If the types are different, try converting the type first, then perform value comparison, and finally return the value comparison result.

And

=== and !== will only compare their values ​​if they are of the same type.

First of all, == equality is equal, === identity is equal.

==, when the value types on both sides are different, type conversion must be performed first, and then compared.

===, no type conversion is performed, and different types must not be equal.

The following are explained separately:

Let’s talk about === first, this is relatively simple. The following rules are used to determine whether two values ​​​​are === equal:

1. If the types are different, [not equal]

2. If both are numerical values ​​and are the same A value, then [equal]; (except!) if at least one of them is NaN, then [not equal]. (To determine whether a value is NaN, you can only use isNaN() to determine)

3. If both are strings, and the characters in each position are the same, then [equal ]; otherwise [not equal].

4. If both values ​​are true, or both are false, then [equal].

5. If both values ​​refer to the same object or function, then [equal]; otherwise [not equal].

6. If both values ​​are null, or both are undefined, then [equal].

Let’s talk about ==, according to the following rules:

1. If the two value types are the same, perform === comparison.

2. If two value types are different, they may be equal. Perform type conversion and then compare according to the following rules:

a. If one is null and the other is undefined, then [equal].

b. If one is a string and the other is a numerical value, convert the string into a numerical value and then compare.

c. If any value is true, convert it to 1 and then compare; if any value is false, convert it to 0 and compare.

d. If one is an object and the other is a numerical value or string, convert the object into a value of the basic type and then compare. The object is converted to the base type using its toString or valueOf method. JS core built-in classes will try valueOf before toString; the exception is Date, which uses toString conversion. Non-js core objects, such as

e or any other combination (it’s more troublesome, I don’t quite understand it), are [not equal].

Example:

"1" == true

The types are not equal, true will be converted to the value 1 first, and now it becomes "1" == 1, then convert "1" into 1, compare 1 == 1, equal.

= Assignment operator
== equals
=== strictly equals

Example:
var a = 3;
var b = "3";

a==b returns true
a===b returns false

Because the types of a and b are different

=== Used for strict comparison judgment

var data = ({"val":"7","flag":"true"});
<font></font>

How to judge the value of flag below?

Because true with double quotes == is presumed to be a string true

If without double quotes==== it is a Boolean value true

This is very important, I have never had it before Figure this out

Writing method 1

if(data.flag=true){…}else{..}

No matter how you write it, it is correct. You cannot get the value of else at all. The reason is this This way of writing is equivalent to

if(true){…}

Writing 2

if(data.flag==true){…}else{..}

There is no such way of writing

##Writing 3

if(data.flag='true'){…}else{..}
is correct no matter how you write it, you can’t get the value of else at all. The reason is that this way of writing is equivalent to the way of writing

if(true){…}

4

if(data.flag=='true'){…}else{..}

这个才是正确的写法

“=”:这个表示赋值,不是表示运算符

“==”:表示等于(值)

“===”:表示全等于(类型和值)

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

JS使用技巧整理

JS发送json格式POST请求实现步奏

The above is the detailed content of !=, ==, !==, === usage summary. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
如何在Go中使用命名管道?如何在Go中使用命名管道?May 11, 2023 pm 04:22 PM

命名管道是一种在操作系统中相对比较低级的进程通信方式,它是一种以文件为中介的进程通信方式。在Go语言中,通过os包提供了对命名管道的支持。在本文中,我们将介绍如何在Go中使用命名管道来实现进程间通信。一、命名管道的概念命名管道是一种特殊的文件,可以被多个进程同时访问。在Linux系统中,命名管道是一种特殊的文件类型,它们存在于文件系统的某个位置上,并且可以在

总结Linux系统中system()函数的用法总结Linux系统中system()函数的用法Feb 23, 2024 pm 06:45 PM

Linux下system()函数的总结在Linux系统中,system()函数是一个非常常用的函数,它可以用于执行命令行命令。本文将对system()函数进行详细的介绍,并提供一些具体的代码示例。一、system()函数的基本用法system()函数的声明如下:intsystem(constchar*command);其中,command参数是一个字符

如何在Go中使用第三方库?如何在Go中使用第三方库?May 11, 2023 pm 03:30 PM

在Go语言中,使用第三方库是非常方便的。许多优秀的第三方库和框架可以帮助我们快速地开发应用程序,同时也减少了我们自己编写代码的工作量。但是如何正确地使用第三方库,确保其稳定性和可靠性,是我们必须了解的一个问题。本文将从以下几个方面介绍如何使用第三方库,并结合具体例子进行讲解。一、第三方库的获取Go语言中获取第三方库有以下两种方式:1.使用goget命令首先

如何在PHP中使用协程?如何在PHP中使用协程?May 12, 2023 am 08:10 AM

随着传统的多线程模型在高并发场景下的性能瓶颈,协程成为了PHP编程领域的热门话题。协程是一种轻量级的线程,能够在单线程中实现多任务的并发执行。在PHP的语言生态中,协程得到了广泛的应用,比如Swoole、Workerman等框架就提供了对协程的支持。那么,如何在PHP中使用协程呢?本文将介绍一些基本的使用方法以及常见的注意事项,帮助读者了解协程的运作原理,以

如何在Go中使用音频处理?如何在Go中使用音频处理?May 11, 2023 pm 04:37 PM

随着音频处理在各种应用场景中的普及,越来越多的程序员开始使用Go编写音频处理程序。Go语言作为一种现代化的编程语言,具有优秀的并发性和高效率的特点,使用它进行音频处理十分方便。本文将介绍如何在Go中使用音频处理技术,包括读取、写入、处理和分析音频数据等方面的内容。一、读取音频数据在Go中读取音频数据有多种方式。其中比较常用的是使用第三方库进行读取,比如go-

如何在 Windows 11 中按需使用 OneDrive 的文件如何在 Windows 11 中按需使用 OneDrive 的文件Apr 14, 2023 pm 12:34 PM

&lt;p&gt;Windows 系统上的 OneDrive 应用程序允许您将文件存储在高达 5 GB 的云上。OneDrive 应用程序中还有另一个功能,它允许用户选择一个选项,是将文件保留在系统空间上还是在线提供,而不占用您的系统存储空间。此功能称为按需文件。在这篇文章中,我们进一步探索了此功能,并解释了有关如何在 Windows 11 电脑上的 OneDrive 中按需使用文件的各种选项。&lt;/p&gt;&lt;h2&gt;如何使用 On

如何在Go中使用WebSocket?如何在Go中使用WebSocket?May 11, 2023 pm 04:17 PM

近年来,WebSocket技术已经成为了Web开发中不可或缺的一部分。WebSocket是一种在单个TCP连接上进行全双工通信的协议,它使得客户端和服务器之间的通信更加流畅和高效。如今,很多现代的Web应用程序都使用了WebSocket技术,例如实时聊天、在线游戏以及实时数据可视化等。Go语言作为一个现代的编程语言,自然也提供了很好的支持WebSock

如何在Go中使用嵌套结构?如何在Go中使用嵌套结构?May 11, 2023 pm 04:39 PM

在Go语言中,嵌套结构是一种非常常见的技术。通过将一个结构体嵌入到另一个结构体中,我们可以将复杂的数据模型分解成更小的部分,使其易于理解和维护。本篇文章将介绍如何在Go中使用嵌套结构以及一些最佳实践。一、定义嵌套结构首先,我们需要定义一个包含嵌套结构的结构体。下面的代码演示了如何定义一个包含Person结构体的Company结构体:typePersons

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version