JS的比较运算符,数值自动转换笔记

javascript学习——比较运算符 比较运算符用于比较两个值的大小,然后返回一个布尔值,表示是否满足指定的条件。上面代码比较2是否大于1,返回true。注意,比较运算符可以比较各种类型的值,不仅仅是数值。JavaScript 一共提供了8个比较运算符。======!!==这八个比较运算符分成两类:相等比较和非相等比较。两者的规则是不一样的,对于非相等的比较,算法是先看两个运算子是否都是字符串,如果是的,就按照字典顺序比较(实际上是比较 Unicode 码点);否则,将两个运算子都转成数值,再比较数值的大小。 阅读详情

JS的比较运算符,数值自动转换笔记

JS的比较运算符比较复杂,在学习了阮一峰老师JS参考教程之后做了笔记

总体思路

1、相等或者不相等 先转换在比较
2、全等或者不全等 比较不转换
3、NaN与什么比较都是false

数值的自动转换

数值的自动转换分为三种情况 Number Boolean String

Number

// 数值:转换后还是原来的值
Number(324) // 324

// 字符串:如果可以被解析为数值,则转换为相应的数值
Number('324') // 324

// 字符串:如果不可以被解析为数值,返回 NaN
Number('324abc') // NaN

// 空字符串转为0
Number('') // 0
// 布尔值:true 转成 1,false 转成 0
Number(true) // 1
Number(false) // 0

// undefined:转成 NaN
Number(undefined) // NaN

// null:转成0
Number(null) // 0

注意Number解析对象的时候先valueOf后toString,都不行在报错。

Number({
  valueOf: function () {
    return 2;
  }
})
// 2

Number({
  toString: function () {
    return 3;
  }
})
// 3

Number({
  valueOf: function () {
    return 2;
  },
  toString: function () {
    return 3;
  }
})
// 2

String

String(123) // "123"
String('abc') // "abc"
String(true) // "true"
String(undefined) // "undefined"
String(null) // "null"

String 与Number相反先toString后valueOf

Boolean

undefined
null
-0或+0
NaN
''(空字符串)

以上结果为false,其余为true。对象全部转化为true。

非相等比较

非想等比较首先看能否是字符串如果是则比较Unicode码点,如果无法转换则将其转换为数值在进行比较。

原始类型的非相等比较

原始类型的非相等比较为先转换为数值在比较。对于对象要先执行valueOf后执行toString。

var x = [2];
x > '11' // true
// 等同于 [2].valueOf().toString() > '11'
// 即 '2' > '11'
// 两个字符串先比较第一个码点'2'>'1'

x.valueOf = function () { return '1' };
x > '11' // false
// 等同于 [2].valueOf() > '11'
// 即 '1' > '11'

严格相等运算符

1、不同类型返回false
true === “true” // false
2、相同类型该是啥就是啥

+0==-0

3、对象等复合类型比较地址

{} === {} // false
[] === [] // false
(function () {} === function () {}) // false

4、undefined与null自身严格相等

undefined === undefined // true
null === null // true

5、严格不相等是严格相等的反

相等运算符

1、原始类型值会转换为数值进行比较
2、对象与原始类型进行比较则对象先转换为原始类型的值在进行比较

[1] == 1 // true
// 等同于 Number([1]) == 1

[1] == '1' // true
// 等同于 String([1]) == Number('1')

[1] == true // true
// 等同于 Number([1]) == Number(true)

3、undefined和null与其他类型的值比较时,结果都为false,它们互相比较时结果为true。

奇形怪状的解

0 == ''             // true
//相等比较 转换为两个数字 0==0
0 == '0'            // true
//相等比较 转化为两个数字 0==0
2 == true           // false
//转换为数字 2==1
2 == false          // false
//2==0
false == 'false'    // false
// 0==NaN
false == '0'        // true
//转换为数字 0==0
false == undefined  // false
//undefined与 任何相等都不等
false == null       // false
//null与 任何相等都不等
null == undefined   // true

' \t\r\n ' == 0     // true

以上整理自阮一峰老师的博客

ubuntu20.04搭建QGC4.2编译环境 QGC 4.2ubuntu18.04也可以编译QGC4.2,但是由于GLBC版本较低,无法使用最新版的QTCreator,Ubuntu20.04可以使用最新版QTCreator。 阅读详情

相关推荐

别再手动算重量了!用C++给UG/NX写个自动计算零件质量与质心的插件(附完整源码)

本文详细介绍了如何使用C++为UG/NX开发智能质量分析插件,实现零件质量与质心的自动计算。通过结合NXOpen和UF_MODL API,设计高效的数据结构和批量处理机制,大幅提升机械设计效率。文章包含完整源码和实用技巧,帮助工程师告别手动计算,适用于复杂装配体的自动化工程计算。

weixin_30247307的博客 131

JavaScript比较两个数字的大小

JS中比较两个数字的大小,注意将字符串转换成数字再进行比较。同时注意超长数字比较问题。

sleepwalker_1992的专栏 2万+

Windows(Win10、Win11)本地部署开源大模型保姆级教程

最近开源大模型可谓闹的沸沸扬扬,尤其是Microsoft开源的和Meta开源的llama3 70b,评测都已经接近了的水平。鉴于还有很多同学不会在上部署和使用本地模型,因此我们出一期保姆级教程。本文讲述了如何在上本地部署大模型。从最基础的软件安装到环境配置都进行了截图展示,希望对非计算机的同学也有所帮助。AI时代我们每个人都必须要掌握一些AI知识,相信不断学习的你一定不会被AI淘汰。这只是开始,后面我们还有很多工作要做,尤其是提示词和智能体。

AIGIS的博客 3万+

两个数使用JavaScript比较大小;JavaScript知识点

需要注意的是,在进行字符串大小比较时,JavaScript 将使用字符编码进行比较,这可能不同于我们通常期望的基于字符串内容的比较。如果你需要按特定规则进行字符串的大小比较,例如按照数字大小或特定的字母顺序进行比较,你可能需要编写自定义的比较函数。当进行字符串的大小比较时,JavaScript 使用的是字符串的 Unicode 字符编码值进行逐个字符的比较。需要注意的是,在进行字符串大小比较时,要保证比较的字符串具有相同的字符集和编码方式,否则比较结果可能会出现意外的情况。返回的值是一个字符串。

qq_51980838的博客 3850

AES-GCM加密认证模式:原理、优势与实战应用

在数据安全领域,加密与认证是保障信息机密性和完整性的两大基石。加密确保数据内容不被窃取,而认证则验证数据来源的真实性和传输过程中是否被篡改。传统的加密后认证方案如AES-CBC+HMAC需要串行处理,性能开销较大。GCM(伽罗瓦/计数器模式)作为一种认证加密(AEAD)方案,巧妙地将AES-CTR加密与基于伽罗瓦域的GHASH认证并行结合,实现了单次数据遍历即可同时完成加密和认证,大幅提升了处理效率。其核心价值在于高性能、支持附加认证数据(AAD)以及标准化程度高,广泛应用于TLS协议、无线网络安全和云存储

weixin_28622215的博客 313

RK3588 C-PHY摄像头驱动升级踩坑记:从‘Only CSI2 supported’报错到成功取流

本文详细记录了在RK3588平台上调试C-PHY摄像头驱动的全过程,从‘Only CSI2 supported’报错分析到成功取流。内容涵盖C-PHY与CSI-2协议差异、SDK版本对比、V4L2框架下的bus-type解析机制,以及硬件排查与寄存器调优实战经验,为嵌入式Camera驱动工程师提供宝贵参考。

weixin_42522374的博客 124

JS的相等比较运算与类型转换

在JavaScript中,相等有两种比较方式:普通相等比较(==,在ECMAScript标准中称为“抽象相等比较”)和 严格相等比较(===)。 对于被广泛使用的普通相等比较运算符来讲,不同类型的操作数在进行比较之前,会尝试将两个操作数转换成相同的类型,再作比较运算。而对于严格相等比较运算符来讲,仅当两个操作数的类型相同且值相等时,返回为true。

ambit_tsai的博客 2849

【PCIe硬件】PCIe引脚PRSNT与热插拔

热插拔的基本目的是要让PCIe设备按照规定的顺序、原则,从系统中移除或插入到系统中来,并能正常的工作,且不影响系统的正常运行。事实上,PCIe“热插拔”的关键目的就是为前面面所提到的系统RAS服务的,是提升系统RAS能力的非常重要的手段!注意,这里有两个相关概念,前面我们讲的热插拔,其实是广义的“热插拔”。这里的Hot-Plug,为了方便,我们叫做PCIe热插拔,也就是我们现在及后面将要讨论的内容。

smartvxworks的博客 2806

JS字符串换数字,过长出现精度偏差问题

参考: https://www.cnblogs.com/snandy/p/4943138.html 整数超过15位会出现偏差。

weixin_44355884的博客 1686

西安交通大学软件学院——分布式系统练习题(综合题)

摘要:本文探讨了分布式系统的核心特性与关键问题。首先阐述了分布式系统的8种透明性特性,包括访问、定位、迁移等。然后通过具体案例分析了分布式事务的回滚机制、域名解析的迭代与递归过程、不同分布式系统的异同比较。重点讨论了RPC通信中客户端/服务器崩溃的处理方法,包括消灭、再生和到期三种策略。最后介绍了Lamport时间戳算法在进程通信中的应用及问题解决方案。全文涵盖了分布式系统设计中的透明性、可靠性、一致性等核心问题。

qq_73044452的博客 204

QT里获取UUID当做唯一文件名称

QT里获取UUID当做唯一文件名称

545

js【详解】自动类型转换

会报错。

朝阳39的博客 1331

4、分布式发电系统中用于改善电能质量的有源、无源和混合滤波器

本文探讨了分布式发电系统中,尤其是光伏(PV)系统运行过程中引入的电能质量问题,并分析了有源滤波器、无源滤波器及混合滤波器在改善电能质量方面的应用。文章详细介绍了光伏系统的建模、最大功率点跟踪(MPPT)技术,以及谐波、电压波动等技术问题,同时对各类滤波器的拓扑结构和控制方法进行了系统性总结。通过仿真实例比较了不同滤波器在减少谐波方面的效果,为实际工程应用提供了参考依据。

transformer2023的博客 89

【JavaScript】JavaScript 运算符 ③ ( 比较运算符 | 等于比较 运算符 == | 不等于比较 运算符 != | 严格等于比较 运算符 === )

一、JavaScript 运算符 1、比较运算符 概念 2、比较运算符 列举 3、等于比较 运算符 == 4、不等于比较 运算符 != 5、严格等于比较 运算符 === 5、严格不等于比较 运算符 !== 6、赋值运算符 = / 等于比较运算符 == / 严格等于比较运算符 === 示例

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1683

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

JavaScript 比较和逻辑运算符

在JavaScript中,我们可以通过在对象上定义特定的方法来实现运算符重载,从而自定义对象的比较行为。例如,通过定义valueOf()或toString()方法,我们可以影响对象在使用等于或比较运算符时的行为。此外,我们还可以定义对象自己的比较方法,如equals(),来提供更精确或特定的比较逻辑。然而,需要注意的是,运算符重载应该谨慎使用,以避免引入混淆或不一致性。在大多数情况下,使用内置的比较和逻辑运算符已经足够满足需求。只有在特定场景下,当需要实现自定义的比较逻辑时,才应该考虑使用运算符重载。

Python老吕的博客 1367

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JavaScript的隐式转换

JavaScript的隐式转换一、 JavaScript 数据类型二、 JavaScript 隐式转换1. 隐式转换规则1. + 运算符2. == 运算符3. >运算符4.复杂数据类型 一、 JavaScript 数据类型 js中有7种数据类型,可以分为两类:原始类型、对象类型。 简单数据类型(也称为原始类型):Undefined、Null、Boolean、Number、String 和 Symbol。ES6 中新增了一种 Symbol 。这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属

impact_factor的博客 3734

JavaScript 比较运算符

JavaScript 的比较运算符系统既灵活又充满陷阱,核心在于理解类型转换机制(尤其是。的隐式转换)和特殊值(NaN、null、undefined)的处理逻辑。掌握这些原则可显著提升代码健壮性,避免诸如类型不同 → 直接返回false等经典陷阱带来的逻辑错误。

moment159的博客 1137

JavaScript比较运算符

比较运算符用于比较两个值的大小,返回一个布尔值1 > 2;//true比较运算符不仅可以用于数字,各种类型的值都可以比较大小。JavaScript一共提供了8种比较运算符> 大于运算符< 小于运算符>= 大于或等于运算符

qq_44621394的博客 1617

javaScript——比较运算符

概述  比较运算符用于比较两个值的大小,然后返回一个布尔值,表示是否满足指定的条件。 2 &gt; 1 // true 上面代码比较2是否大于1,返回true。 注意,比较运算符可以比较各种类型的值,不仅仅是数值。 JavaScript 一共提供了8个比较运算符。 &gt; 大于运算符 &lt; 小于运算符 &lt;= 小于或等于运算符 &gt;= 大于或等于运算符 ==...

songshuguowang的专栏 816

【JavaScript 教程】运算符—比较运算符

https://mp.weixin.qq.com/s/4xZ420eTVHnb0zsaPCqOYA 注:注意,比较运算符可以比较各种类型的值,不仅仅是数值。 JavaScript 一共提供了8个比较运算符。 这八个比较运算符分成两类:相等比较和非相等比较。两者的规则是不一样的,对于非相等的比较,算法是先看两个运算子是否都是字符串,如果是的,就按照字典顺序比较(实际上是比较 Unicode 码点);...

qq_36836277的博客 439

全栈Js数值类型转换,运算符关系比较和运算符优先级

类型转换 数值类型转换! ![](https://img-blog.csdnimg.cn/20191218103639722.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3gzNDU4OTIyMDQ1,size_16,color_FF...

x3458922045的博客 334

【JavaScript基础笔记】数值、运算符

数值 JS底层都是以64位浮点数储存,这意味着JS底层没有整数。某些运算只有整数才能完成,此时 JavaScript 会自动把64位浮点数,转成32位整数。 由于浮点数是不精确的,所以在JS涉及小数运算和比较时要特别注意! {0.1+0.2===0.3// false} {0.3/0.1// 2.9999999999999996} {(0.3-0.2)===...

a108776623的博客 201

JavaScript个人总结-运算符-比较运算符

比较运算符用于比较两个值的大小,然后返回一个布尔值,表示是否满足指定的条件。上面代码比较2是否大于1,返回true。注意,比较运算符可以比较各种类型的值,不仅仅是数值。JavaScript 一共提供了8个比较运算符。大于运算符小于运算符<=小于或等于运算符>=大于或等于运算符==相等运算符===严格相等运算符!不相等运算符!==严格不相等运算符这八个比较运算符分成两类:相等比较和非相等比较。

qq_31435455的博客 600

比较运算符与隐式类型转换

对于广大学习js的同学来讲,学习js的难点之一就是js强大的类型转换,js不仅提供了方法使得基础数据类型之间可以相互转换,而且js还会在某些情况下自己转换数据类型这种行为称为自动类型转换或者隐式类型转换。自动转换的情况如下(以下只是几种场景情景,不代表所有场景)逻辑运算比较运算数学运算isNaN(数据)会先将数据转换成数值类型在执行isNaN方法在这上面几种情况中,比较运算的情况最为复杂,接下来就为大家讲解比较运算符自动类型转换的规则提示。...

cwb_2120的博客 494

9.JS运算符-比较运算符

比较运算符 概述 比较运算符用于比较两个值的大小,然后返回一个布尔值,表示是否满足指定的条件。 2 > 1 // true 上面代码比较2是否大于1,返回true。 注意,比较运算符可以比较各种类型的值,不仅仅是数值。 JavaScript 一共提供了8个比较运算符。 > 大于运算符 < 小于运算符 <= 小于或等于运算符 >= 大于或等于运算符 == 相等运算符 === 严格相等运算符 != 不相等运算符 !== 严格不相等运算符 这八个比较运算符分成两类:相等比较

陈塘关哪吒 1127

js比较运算符

JavaScript 一共提供了8个比较运算符。 > 大于运算符 < 小于运算符 <= 小于或等于运算符 >= 大于或等于运算符 == 相等运算符 === 严格相等运算符 != 不相等运算符 !== 严格不相等运算符 这八个比较运算符分成两类:相等比较和非相等比较。 非相等的比较,算法是先看两个运算子是否都是字符串,如果是的,就按照字典顺序比较(实际上是比较 Unicode 码点);否则,将两个运算子都转成数值,再比较数值的大小 着重说下-非相等的运算

走向大厂的日子 660
上一篇: ArcGIS地图发布与数据切片
下一篇: 翻译 CSS如何水平居中-垂直居中
yatsov
博客等级 码龄16年 52粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值