/**
* 非数值的比较:
* 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. python控制cpu使用率

    以下亲测可行. 使用方法:命令行模式 runing.py -c 2 -t 0.01 -c 指定cpu核数:不指定-c参数默认为所有核数. -t 数值越大,cpu使用率越低. runing.py &qu ...

  2. QT + openssl + VS2015静态编译

    从http://slproweb.com/products/Win32OpenSSL.html下载已经编译好的openssl,一路next 我将OpenSSL-Win32\lib\VC目录下的libe ...

  3. k8s阅读笔记1-云原生

    前言 阅读书籍地址https://rootsongjc.gitbooks.io/kubernetes-handbook/content/cloud-native/cloud-native-defini ...

  4. 【LeetCode】一种博弈思路 minimax(共5题)

    [292] Nim Game (2019年3月12日,E) 有一堆石头,游戏规则是每次可以从里面拿1-3颗石头,拿到最后的石头的人赢.你和你的对手都 optimal 的玩这个游戏,问先手(也就是你)能 ...

  5. java8 Stream2

    new Thread(() -> System.out.println("lambda表达式,取代匿名函数......")).start(); Stream.of(" ...

  6. html5 图片墙

    代码实例: <!DOCTYPE html> <html> <head> <style> body,html{ padding:0;margin:0;wi ...

  7. freertos优秀博客收藏

    https://blog.csdn.net/zhzht19861011 朱工的专栏 专注/深入/分享 https://blog.csdn.net/xukai871105 xukai871105 专注于 ...

  8. Git 如何删除分支

  9. Angular JS - 4 - Angular JS 作用域与控制器对象

    1. 控制器对象使用 <!DOCTYPE html> <html> <head lang="en"> <meta charset=&quo ...

  10. php min()函数 语法

    php min()函数 语法 作用:从所有参数中找到最小数 语法:min(X,Y,Z) 或者min(array(X,Y,Z)) 参数:min函数中参数至少一个,可以多个参数,也可以是数组. 说明:如果 ...