/**
* 非数值的比较:
* 1.对于非数值的比较时,会将其转换成数字然后再比较
* 2.如果符号两端是字符串的值进行比较时,不会将其转换为数字进行比较,而是
* 分别比较字符串中的字符的 unicode 编码,如果其中两个字符的编码相等则直接跳过,
* 继续比较下一个字符,若不等,直接输出结果,不会再比较后面的字符
* 3.如果比较的是两个字符串型的数字,一定要将它们都转成数字类型再进行比较
*/
// number
console.log(`2 > 1 = ${2 > 1}`); // 2 > 1 = true // NaN - 任何值与 NaN 比较都是 false
console.log(`1 > NaN = ${1 > NaN}`); // 1 > NaN = false // boolean
console.log(`1 > false = ${1 > false}`); // 1 > false = true
console.log(`true > false = ${true > false}`); // true > false = true // null
console.log(`1 > null = ${1 > null}`); // 1 > null = true // undefined
console.log(`1 > undefined = ${1 > undefined}`); // 1 > undefined = false // string
console.log(`1 > '0' = ${1 > '0'}`); // 1 > '0' = true
// 'hello' 转换成数字为 NaN, 任何值与 NaN 比较都是 false
console.log(`2 > 'hello' = ${2 > 'hello'}`); // 2 > 'hello' = false
console.log(`2 > '1h3ello' = ${2 > '1h3ello'}`); // 2 > '1h3ello' = false
console.log(`Number('1h3ello') = ${Number('1h3ello')}`); // Number('1h3ello') = NaN // 两个字符型数字的比较
// '1' 的 unicode 编码是 0x31,'5' 的 unicode 编码是 0x35,显然
// 前者小,后者大
console.log(`'1' > '5' = ${'1' > '5'}`); // '1' > '5' = false // 先将字符串 '11' 中的字符 '1' 的 unicode 编码与 '5' 的 unicode 编码进行比较,发现前者小于后者,
// 直接输出结果 false,字符串 '11' 中另外的字符 '1' 不会再进行比较
console.log(`'11' > '5' = ${'11' > '5'}`); // '11' > '5' = false // 将 '11' 与 '5' 都转换成 number 再进行比较
console.log(`+'11' > +'5' = ${+'11' > +'5'}`); // +'11' > +'5' = true // 实际比较的是:'c' > 'd'
console.log(`'abcde' > 'abdef' = ${'abcde' > 'abdef'}` ); // 'abcde' > 'abdef' = false

js非数值的比较的更多相关文章

  1. 在JS中如何判断所输入的是一个数、整数、正数、非数值?

    1.判断是否为一个数字: Number(num)不为 NaN,说明为数字 2. 判断一个数为正数: var num=prompt("请输入:"); if(Number(num)&g ...

  2. JS中数值类型的本质

    一.JS中的数值类型 众所JS爱好友周知,JS中只有一个总的数值类型--number,它包含了整型.浮点型等数值类型.其中,浮点数的实现思想有点复杂,它把一个数拆成两部分来存储.第一部分是有效位数,也 ...

  3. 写出将字符串中的数字转换为整型的方法,如:“as31d2v”->312,并写出相应的单元测试,正则去掉非数值、小数点及正负号外的字符串

    写出将字符串中的数字转换为整型的方法,如:"as31d2v"->312,并写出相应的单元测试,输入超过int范围时提示不合法输入. public struct Convert ...

  4. 在javaScript中把非数值类型的数据自动转换为数值类型的两种方式

    一.使用Number()函数. 二.使用parseInt()/parseFloat()函数. 详情: 一.使用Number()函数将非数值类型的数据自动的转化为数组类型 Number()函数可以将任何 ...

  5. js对数值型数组排序错误

    今天对一个js的数值数组排序,结果发现好像排后的像是对字符数组排的序,后来一查才发现 a = [33,1000]; a.sort(); 结果:1000 33 无论类型,sort方法会调用每个数组项的t ...

  6. js处理数值和日期本地化

    js处理数值和日期本地化 const s = new Intl.NumberFormat('zh-cn'); s.format(111.111) // "111.111" cons ...

  7. San Francisco Crime Classification非数值性多分类问题

    给出了旧金山以往犯罪活动的相关信息,预测特定条件下的犯罪情况 分析数据集和测试集信息: 训练集给出的信息有: 1.Dates:时间日期和时间,这里考虑时间对犯罪活动有影响,日期和下边的周几有相似处,取 ...

  8. 【R】如何去掉数据框中包含非数值的行?

    目录 1. 去掉指定列中包含NA/Inf/NaN的行 2. 去掉指定列中包含其他乱七八糟字符串的行 3. 去掉整个数据框中包含非数值的行 只包含NA.NaN和Inf的情况 针对其他字符情况 4. 总结 ...

  9. js 各种数值类型正则匹配检测

    随拿随用只js正则表达式,反正平时工作我是不写正则的,大神请自动绕行: 验证数字的正则表达式集验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数 ...

随机推荐

  1. linux性能分析工具Top

  2. 125-FMC125-两路125Msps AD,两路160Msps DA FMC子卡模块

    FMC125-两路125Msps AD,两路160Msps DA FMC子卡模块 1.板卡概述  该板卡可实现2路14bit 250Msps AD 和2路16bit 160MspsDA功能,FMC连接 ...

  3. 第二节:专做自己是小白——重新认识MySQL 学习记录

    一.安装MySQL的一些知识点 1.进程号是操作系统随机分配,每次启动程序都会有一个新的进程号.    2.mysql服务器进程默认名称MySQL,MySQL客户端进程默认名称mysql.    3. ...

  4. Sass函数-join()函数

    join() 函数是将两个列表连接合并成一个列表. >> join(10px 20px, 30px 40px) (10px 20px 30px 40px) >> join((b ...

  5. Codeforces 963E Alternating Sum 等比数列+逆元

    题目大意: 看一下样例就明白了 基本思路: 题目中明确提到k为一个周期,稍作思考,把k项看作一项,然后发现这是个等比数列,q=(b/a)^k, 然后重点就是怎样处理等比数列求和表达式中的除法,这个时候 ...

  6. python3访问MySQL数据库

    import pymysql db = pymysql.connect( host='XXXXXXXX.com', #数据库服务器地址 user='XXX', #用户名 passwd='XXX', d ...

  7. element-ui中使用el-radio单选切换表格

    应用场景:点击单选,切换表格数据 代码: data里的数据:(这里的值是默认选中的   和label值是对应的) change事件操作切换,这里面添加@click事件是不生效的,注意...

  8. C++ 概率算法 利用蒙特卡罗算法计算圆周率

    概率算法大致可分为4种形式: 数值概率算法: 蒙特卡罗算法: 拉斯维加斯算法: 舍伍德算法: 计算蒙特卡罗概率的算法实现: #include "stdio.h" #include ...

  9. Linux基础优化(二)

    Linux基础优化(二) 一操作系统字符优化 避免出现中文乱码,UTF-8支持中文GBK-Xx支持中文 (一)查看默认编码 [root@centos7 ~]# echo $LANG en_US.UTF ...

  10. zabbix(一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案)

    zabbix 是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决 ...