【JavaScript】 =,==,===区别

=:赋值运算符。

==:相等运算符,当等号两边值类型不同时,先转换为同一类型后,再比较值是否相等。

===:严格运算符,不做类型转换,类型不同一定为false。
一般用来比较是否相等用===。

js 复制代码
//==做类型转换后判断
console.log("1" == true)//true
console.log(1 == true)//true

//===不做类型转换,类型不同则直接false
console.log(1 === true)//false
console.log("1" === "1")//true

//比较object, Array, Function时,比较他们是否指向同一个对象
let arr1 = [1,2,3]
let arr2 = arr1
console.log(arr1 === arr2)

//null和undefined
console.log(null == undefined)//true
console.log(null === undefined)//false
console.log(null === null)//true
console.log(undefined === undefined)//true
相关推荐
optimistic_chen22 分钟前
【AI Agent 全栈开发】MCP
java·linux·运维·人工智能·ai编程·mcp
D_jing2028 分钟前
Vue 3 + Element Plus 重置el-drawer样式失效
前端·javascript·vue.js
__log29 分钟前
Vue 3 与 React 18+ 核心技术深度对比:从源码到实战
前端·vue.js·react.js
很晚很晚了5 小时前
纯前端转全栈 Day 1:我从第一个 NestJS 接口开始
前端
Lee川6 小时前
从零解剖一个 AI Agent Tool是如何实现的
前端·人工智能·后端
wangruofeng7 小时前
Playwright 深度调研:为什么它成了浏览器自动化的新底座
前端·测试
2401_833269307 小时前
Java网络编程入门
java·开发语言
金銀銅鐵8 小时前
[Java] 如何将 Lambda 表达式对应的类保存到 class 文件中?
java·后端
それども8 小时前
Gradle 构建疑难杂症 Could not find netty-transport-native-epoll-linux-aarch_64.ja
java·服务器·gradle·maven
正儿八经的少年9 小时前
application.yml 系列配置文件作用与区别
java·配置文件