当前位置: 首页 > news >正文

JS语法让人困惑的点 “==与===”

在JS中有很多神奇的语法,非常让人困惑,我们就先一一道来,相信你在开发中或多或少都踩过这些坑,或者让人无法理解。 今天我们就来说下【】和【=】

这题对于很多没有系统学过前端开发的技术人员来说,算个重点,来画起来,我们一起看。

(图片来源于网络)

请看题,以下执行结果是啥?

console.log([]==![]);

是不是很神奇
那么为什么会出现这种情况,我们从=的特性说起
我们先来分析一下上面的等式:
1.左边是一个数组,右边是一个表达式,左边数组就是:[]  , 右边是一个数组的取反 ![] ,所以算是一个表达式,后面取反后得到 false,

所以这里可以将等式替换为,相当于 []==false 的比较,

console.log([]==false);

这里,还是有点不符合逻辑,我们再继续拆分。
分析:因为这里用的是双等号,左边是数组,右边是值,所以根据双等号的特性,需要将两边都转换为原始类型,用ToString来转换,所以这里执行后显示为:

我们继续替换等式

console.log(‘’==false);

执行后结果为:true,是不是有点抓狂的感觉。
现在两边都为原始类型,但是类型还是不一样,左边是字符串,右边是bool 类型 ,所以这个 == 又要去干件大事了,继续转,将两边都转换为数值类型 。
那么继续转:

然后最终执行的表达式就是:

console.log(0==0);

执行结果为:true;

所以表达式中如果需要比较,尽量使用===,因为==在执行中非常诡异,给大家再举个例子:

console.log(true==[1]);

是不是神奇的知识又增加了!

在后续我们会为大家带来更多有趣内容介绍~

拓展阅读

详解商业智能前世今生,嵌入式BI如何百花齐放?

使用WIX进行商业智能OEM打包

数据可视化分析工具如何在国内弯道超车?

相关文章:

JS语法让人困惑的点 “==与===”

在JS中有很多神奇的语法,非常让人困惑,我们就先一一道来,相信你在开发中或多或少都踩过这些坑,或者让人无法理解。 今天我们就来说下【】和【】 这题对于很多没有系统学过前端开发的技术人员来说,算个重点&#xff0c…...

《狂飙》壁纸大嫂如此惊艳,做成日历壁纸天天看

兄弟们,今年的反腐大剧狂飙都有看吗 ? 话说,名字虽然叫狂飙,但是全剧只有有田一个人在狂飙! 当然,有田虽然亮眼,但是毕竟是个糟老头子,正经人谁看有田啊,当然是看大嫂了…...

手机照片删除了怎么恢复

手机照片删除了怎么恢复?喜欢拍照的小伙伴,都会不定期删除手机上的照片,因为这些爱拍照的人,手机中会存储着很多照片,删除照片是必然的,但在手机删除照片时,如果是一张一张删除太麻烦了,就直接…...

maven pom.xml 依赖的scope属性

maven pom.xml 依赖的scope属性 compile 适用范围 编译期、测试期、运行期 作用 从中央仓库拉取依赖到本地,并编译 打包到结果包中 runtime 适用范围 测试期、运行期 作用 runtime 用在 Class.forName(“com.mysql.jdbc.Driver”) 时,compile 编…...

git 的使用方法 (下 - 远程仓库和图形化)

目录前言:一、什么是协同开发二、Gitee 使用协同开发1. 首先注册一个码云账号2. 新建一个仓库3. 根据下图把新建仓库设置为开源4. 在远端合并分支的方法5. 链接 git 远程6. 提交(同步)远程7. 远程拉取至本地8. 远程分支三、git 图形化的使用1…...

Java基础:拼图小游戏

涉及到的知识: 1.图形用户接口GUI(Graphical User Interface)用图形化的方式显示操作界面 两个体系: AWT包和Swing包 2.界面会用到JFrame类 3.界面中的菜单会用到JMenuBar, JMenu, JMenuItem 4.添加图片 在设置完JLabel的location之后还需要获得展示内容的窗体, 通过setLay…...

一个跟蘑菇结缘的企业老板

记得那是一个很久以前的一家公司了董事长办公室里中的大型盆栽里面长了一个蘑菇董事长认为是祥瑞每天都会浇水后来一个新来的保洁阿姨以为杂草啥的给他掰掉扔垃圾桶了董事长第二天来浇水的时候发现没了就问谁动了他的蘑菇问道之后就跑到楼道大垃圾桶那里把蘑菇找回来种在花盆里…...

【Leetcode 剑指Offer】第 4 天 查找算法(简单)

查找剑指 Offer 03. 数组中重复的数字剑指 Offer 53 - I. 在排序数组中查找数字 I二分法题目链接剑指 Offer 03. 数组中重复的数字 题:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数…...

Jenkins利用docker部署vue项目

Jenkins利用docker部署vue项目一、环境准备1、安装docker2、安装nodejs3、安装cnpm与配置淘宝镜像4、jenkins安装nodejs插件二、jenkins以vue项目1、全局参数配置2、源码配置3、构建环境4、构建三、构建项目四、访问一、环境准备 本次jenkins与部署vue项目在同一台机器&#x…...

【Linux】如何将ntfs硬盘挂载到home目录下并具有读写权限

步骤1. 查看当前挂载的硬盘及其挂载点2. 查看需要挂载到home下的磁盘类型信息3. 在home下新建一个空的文件夹作为该磁盘的新挂载点4. 以ntfs类型的硬盘为例,使用mount命令进行挂载5. 问题1:进程占用了磁盘6. 问题2:磁盘权限为只读的7. 永久挂…...

拖拽删除元素、拖拽排序、拖拽预览图片和拖拽移动元素

介绍 HTML5 提供了专门的拖拽与拖放的 API,目前各浏览器都已支持,包括 IE。HTML 拖放(Drag and Drop)接口使应用程序能够在浏览器中使用拖放功能。例如,用户可使用鼠标选择可拖拽(draggable)元素…...

yarn的global安装命令不生效

问题 yarn全局安装某个依赖完成之后,但依赖没有生效,一般有两种情况导致的。 解决思路 1.yarn命令问题 yarn在全局安装某个依赖时,global要紧接在yarn之后,然后才是add yarn global add xxxx如果出现global在add之后&#xff…...

如何发布自己的npm包?

1 文件组成 package.json文件components文件css样式文件index.js文件 2 package.json配置 description:描述title:题目keywords:搜索关键词typings:指定TypeScript的入口文件main:加载的入口文件module:…...

达梦数据库 闪回查询

当用户操作不慎导致错误的删改数据时,非常希望有一种简单快捷的方式可以恢复数据。闪回技术,就是为了用户可以迅速处理这种数据逻辑损坏的情况而产生的。 闪回技术主要是通过回滚段存储的 UNDO 记录来完成历史记录的还原。如果提交了,还没有…...

java基础学习 day44(多态的优点和劣势)

1. 多态的优势 在多态形式下,右边对象可以实现解耦合(即之后的代码与右边的子类对象不绑定,在更改子类对象后,之后的代码仍可以使用),便于扩展和维护在定义方法的时候,使用父类型作为参数&…...

Guna UI WinForms 2.0.4.4 Crack

Guna.UI2 WinForms is the suite for creating groundbreaking desktop app UI. It is for developers targeting the .NET Windows Forms platform. 50 多个 UI 控件 具有广泛功能的综合组件可帮助您开发任何东西。 无尽的定制 只需拖放即可创建视觉效果命令和体验。 出色的…...

零售航母沃尔玛公布业绩:喜忧参半

2月21日美股盘前,零售巨无霸沃尔玛公布了截至1月的2023财年第四季度业绩报告。财报中不乏可圈可点之处,但是利润迎来六年首降,新财年的利润指引要也比预期低很多,可以说喜忧参半。 一、Q4业绩可圈可点 营收方面:在本…...

Python学习笔记丨while、for、if循环结构基础知识与易错点

Python流程控制 本篇笔记的主要内容是:条件控制和循环控制,包括if语句、while语句、for语句等。 Python条件控制 if (m : 1) > 0: # :是海象运算符,用于在函数内部为变量赋值 print("ok")ok 通过if语句来判断条件是否成立&am…...

【ROS学习笔记1】ROS快速体验输出Hello World

【ROS学习笔记1】ROS快速体验输出Hello World 文章目录【ROS学习笔记1】ROS快速体验输出Hello World1.1 ROS快速体验1.1.1 Hello World快速实现简介1.1.2 Hello World的C实现1.1.3 Hello World的Python实现写在前面,本系列笔记参考的是AutoLabor的教程,具…...

复习git的使用

文章目录复习git的使用基础提交文件查看回退撤销修改分支创建切换tag其他命令HEAD 指针 的理解复习git的使用 最近公司的老旧项目要由svn转到git,git 命令大都忘记了,这里复习总结一下。 基础 查看本地git版本 git --version 查看本地git配置信息 gi…...

香橙派3B部署OpenClaw(提供完整的教程文档)

OpenClaw 安装与配置指南 系统要求 Node.js 版本:≥ 22.0操作系统:Windows 10、MacOS 12 或 Linux(Ubuntu 20.04、Debian 11)硬件要求:RAM 最低 2GB(推荐 4GB),磁盘空间至少 500Mb(推荐 1GB 以…...

Pine Script交易策略开发实战指南:从零基础到自动化交易的完整路径

Pine Script交易策略开发实战指南:从零基础到自动化交易的完整路径 【免费下载链接】awesome-pinescript A Comprehensive Collection of Everything Related to Tradingview Pine Script. 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-pinescript …...

arq源码解析:深入理解异步作业队列的实现原理

arq源码解析:深入理解异步作业队列的实现原理 【免费下载链接】arq Fast job queuing and RPC in python with asyncio and redis. 项目地址: https://gitcode.com/gh_mirrors/ar/arq arq是一个基于Python asyncio和Redis构建的高性能异步作业队列系统&#…...

智能编码伙伴:基于快马AI与openclaw打造你的AI辅助开发chrome插件

最近在开发一个Chrome插件时,发现结合AI能力可以大幅提升开发效率。于是尝试用openclaw框架和InsCode(快马)平台的AI辅助功能,打造了一个智能开发助手插件。这个项目让我深刻体会到AI如何改变传统插件开发模式,下面分享下具体实现思路和关键点…...

SmallThinker-3B-Preview赋能网络安全:恶意流量日志的自然语言分析报告

SmallThinker-3B-Preview赋能网络安全:恶意流量日志的自然语言分析报告 最近和几个做安全运维的朋友聊天,他们都在抱怨同一个问题:每天上班第一件事,就是面对防火墙、WAF这些设备吐出来的成千上万条告警日志。里面全是看不懂的IP…...

动态库路径配置实战:解决openssl symbol lookup error的深层解析

1. 问题背景:当openssl升级遇上symbol lookup error 上周我在升级服务器上的openssl时,遇到了一个典型的动态库问题。系统原本使用的是Ubuntu 20.04自带的openssl 1.1.1f,但项目需要用到1.1.1k的新特性。像大多数开发者一样,我选择…...

IndexTTS2 V23实战:用情感语音为你的视频配音,效果超真实

IndexTTS2 V23实战:用情感语音为你的视频配音,效果超真实 1. 引言:让视频配音拥有真实情感 想象一下,当你制作了一个精彩的视频,却苦于找不到合适的配音演员。或者你需要为大量视频内容快速生成配音,但又…...

Hunyuan-MT-7B在Keil5项目中的集成:嵌入式系统多语言界面

Hunyuan-MT-7B在Keil5项目中的集成:嵌入式系统多语言界面 1. 引言 你有没有遇到过这样的情况:开发了一款很棒的嵌入式产品,准备推向国际市场时,却发现多语言支持成了大问题?传统的解决方案要么需要为每种语言单独编译…...

告别90%无效操作:3个让文档获取效率倍增的反直觉方案

告别90%无效操作:3个让文档获取效率倍增的反直觉方案 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解…...

新手福音:零基础在快马平台创建你的第一个口播智能体

今天想和大家分享一个特别适合编程新手的实战项目——在InsCode(快马)平台上创建一个旗博士口播智能体。这个项目不需要任何后端知识,用最基础的HTML和JavaScript就能实现,而且能让你直观感受到AI应用的开发流程。 项目整体思路 这个口播智能体的核心功能…...