js非数值的比较
/**
* 非数值的比较:
* 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非数值的比较的更多相关文章
- 在JS中如何判断所输入的是一个数、整数、正数、非数值?
1.判断是否为一个数字: Number(num)不为 NaN,说明为数字 2. 判断一个数为正数: var num=prompt("请输入:"); if(Number(num)&g ...
- JS中数值类型的本质
一.JS中的数值类型 众所JS爱好友周知,JS中只有一个总的数值类型--number,它包含了整型.浮点型等数值类型.其中,浮点数的实现思想有点复杂,它把一个数拆成两部分来存储.第一部分是有效位数,也 ...
- 写出将字符串中的数字转换为整型的方法,如:“as31d2v”->312,并写出相应的单元测试,正则去掉非数值、小数点及正负号外的字符串
写出将字符串中的数字转换为整型的方法,如:"as31d2v"->312,并写出相应的单元测试,输入超过int范围时提示不合法输入. public struct Convert ...
- 在javaScript中把非数值类型的数据自动转换为数值类型的两种方式
一.使用Number()函数. 二.使用parseInt()/parseFloat()函数. 详情: 一.使用Number()函数将非数值类型的数据自动的转化为数组类型 Number()函数可以将任何 ...
- js对数值型数组排序错误
今天对一个js的数值数组排序,结果发现好像排后的像是对字符数组排的序,后来一查才发现 a = [33,1000]; a.sort(); 结果:1000 33 无论类型,sort方法会调用每个数组项的t ...
- js处理数值和日期本地化
js处理数值和日期本地化 const s = new Intl.NumberFormat('zh-cn'); s.format(111.111) // "111.111" cons ...
- San Francisco Crime Classification非数值性多分类问题
给出了旧金山以往犯罪活动的相关信息,预测特定条件下的犯罪情况 分析数据集和测试集信息: 训练集给出的信息有: 1.Dates:时间日期和时间,这里考虑时间对犯罪活动有影响,日期和下边的周几有相似处,取 ...
- 【R】如何去掉数据框中包含非数值的行?
目录 1. 去掉指定列中包含NA/Inf/NaN的行 2. 去掉指定列中包含其他乱七八糟字符串的行 3. 去掉整个数据框中包含非数值的行 只包含NA.NaN和Inf的情况 针对其他字符情况 4. 总结 ...
- js 各种数值类型正则匹配检测
随拿随用只js正则表达式,反正平时工作我是不写正则的,大神请自动绕行: 验证数字的正则表达式集验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数 ...
随机推荐
- linux驱动启动顺序
首先,我们可以查看Linux内核编译完成后的System.map文件,在这个文件中我们可以看到macb(dm9161驱动模块)链接到了dm9000驱动之前,如下所示: c03b6d40 t __ini ...
- Kintex7 XC7K325T 板卡三剑客
(226)基于Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 四路光纤卡 (227)基于Xilinx Kintex-7 FPGA K7 XC7K325T的FMC U ...
- Mysql --09 Innodb核心特性——事务
目录 Innodb核心特性--事务 1.什么是事务 2.事务的通俗理解 3.事务ACID特性 4.事务流程举例 5.事务的控制语句 6.事务隐式提交情况 7.事务日志redo基本功能 8.redo数据 ...
- (ACM模板)不定长数组vector
#include<iostream> #include<cstdio> #include<vector> #include<algorithm> usi ...
- ltp-ddt nand_perf_ubifs_w_cpuload
NAND_M_PERF_UBIFS_CPU_LOAD source 'common.sh';/opt/ltp/runltp -f ddt/nand_perf_ubifs -s "NAND_S ...
- CentOS7.5 安装部署Apache+Mysql+Php
系统:CentOS7.5 安装Apache 安装 yum -y install httpd 开启apache服务 systemctl start httpd.service 设置apache服务开机启 ...
- webpackES6语法转ES5语法
安装babel-loader: npm install --save-dev babel-loader@7 babel-core babel-preset-es2015 webpack.config. ...
- python中遍历列表字典元组
遍历列表,打印:我叫name,今年age岁,家住dizhi,电话phone lt = [ {'name':'小王', 'age':18, 'info':[('phone', '123'), ('diz ...
- Ubuntu 14.04修复grub
1.进livecd 2.sudo fdisk -l 找到安装分区 3.sudo mount /dev/sda? /mnt 挂载安装分区 4.sudo mount --bind /dev /mnt/de ...
- No orientation specified, and the default is horizontal.异常处理(转)
参考:http://blog.csdn.net/sky_monkey/article/details/21466975 整的错误提示信息为: No orientation specified, and ...