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

==和===的区别,被坑的一天

在 JavaScript 中,===== 都用于比较两个值,但它们有一个重要的区别:

1. == (宽松相等运算符)

== 进行比较时,会 自动类型转换(也叫做强制类型转换),即如果比较的两个值的类型不同,JavaScript 会尝试将它们转换成相同的类型,再进行比较。

2. === (严格相等运算符)

=== 进行比较时 不会进行类型转换,也就是说,只有当两个值 类型相同且值相等 时,=== 才返回 true

举个例子:

1. 使用 == 时的情况(类型转换):
javascript复制代码
console.log(1 == '1');  // true
  • 1 是数字类型,'1' 是字符串类型。
  • == 会尝试将字符串 '1' 转换为数字 1,然后比较 1 == 1,结果为 true
javascript复制代码
console.log(false == 0);  // true
  • false 是布尔值,0 是数字。
  • == 会把 false 转换为 0,然后比较 0 == 0,结果为 true
2. 使用 === 时的情况(不进行类型转换):
javascript复制代码
console.log(1 === '1');  // false
  • 1 是数字类型,'1' 是字符串类型。
  • === 不会进行类型转换,直接比较 1'1',因为它们的类型不同,所以结果为 false
javascript复制代码
console.log(false === 0);  // false
  • false 是布尔值,0 是数字类型。
  • === 不会进行类型转换,直接比较 false0,因为它们的类型不同,所以结果为 false

总结:

  • == 会进行 类型转换,如果值可以转换成相同类型,它们就会被认为是相等的。
  • === 不会进行类型转换,只有 类型和值都相等 时,结果才为 true

因此,为了避免潜在的错误和不可预期的结果,推荐使用 ===,即严格相等运算符,这样比较更为准确和清晰。

讲讲今天:

代码:

computed: {selectedDurationLabel() {const option = this.durationOptions.find(option => option.value === this.room.duration);return option ? option.label : '选择起订时长';}},

功能:

在点击编辑的时候,起订时长那显示原先存的值,

实现:

我在这里有一个判断,拿原先存的值去和我的durationOptions去比较,如果找到一样的,那么就给他返回该值,可以做到默认显示的效果

遇到的问题:

这里一直都是显示:选择起订时长,并没有达到我要的效果,然后我想办法测试了一下,尝试分别输出这两个值,发现,这两个值在控制台上颜色不一样,突然就想到会不会是因为这个原因引起的(因为颜色不一样肯定字段类型也不一样)
在这里插入图片描述
然后就解决这个问题了(类型转换一下或者改为==就好)

http://www.lryc.cn/news/514216.html

相关文章:

  • 基于 GPUTasker 的 GPU 使用情况钉钉推送机器人实现
  • Python自学 - 函数初步(内置函数、模块函数、自定义函数)
  • 【生活】冬天如何选口罩(医用口罩,N95, KN95还是KP95?带不带呼吸阀门?带不带活性炭?)
  • HTML5新特性|01 音频视频
  • 迅为RK3568开发板编译Android12源码包-设置屏幕配置
  • 力扣hot100——图论
  • Docker- Unable to find image “hello-world“locally
  • spring-boot启动源码分析(二)之SpringApplicationRunListener
  • ELK入门教程(超详细)
  • 人工智能知识分享第六天-机器学习_​逻辑回归(Logistic Regression)
  • 基于Springboot + vue实现的校园周边美食探索及分享平台
  • 初学STM32 --- 外部SRAM
  • 创龙3588——debian根文件系统制作
  • javacript中function (res) {}与箭头函数表达式(res) =>{}的区别
  • kylin安装docker
  • 【Yarn】通过JMX采集yarn相关指标的Flink任务核心逻辑
  • 鸿蒙HarmonyOS开发:基于Swiper组件和自定义指示器实现多图片进度条轮播功能
  • Excel 身份证号计算年龄
  • 【2024年-6月-14日-开源社区openEuler实践记录】探索 test - tools:高效测试的开源宝库
  • 2022浙江大学信号与系统笔记
  • DeepSeek-VL2
  • 前端⾯试⼋股⽂
  • 【Rust自学】8.6. HashMap Pt.2:更新HashMap
  • Python异常处理详解:概念、语法与实践
  • Kotlin在医疗大健康域的应用实例探究与编程剖析(上)
  • QT----------QT Data Visualzation
  • 什么是Sight Words(信号词)
  • SpringBoot日志快速集成详解-生产实战
  • 路由技术在网络中的作用及特点
  • 【Python系列】Flask 与 FastAPI:两个 Python Web 框架的对比分析