c语言sscanf函数的用法是什么
221
2022-09-22
js【详解】比较(数字与数字比较、数字与字符串比较、字符串与字符串比较、字符串与非数字比较……)
目录
比较——数字 vs 数字
比较——数字 vs 非数字类型的数据
比较——字符串 vs 非数字类型的数据
比较——数字 vs 数字
比较原理:将所有数字转换为十进制的数字后,根据数值大小进行比较
0开头的数字会被认成是八进制数字,比如 63<0100<65 ,因0100转为十进制 Number(0100) 后的值为64在严格模式中,禁止使用0开头的数字这种表示法,会报错。
10 < 11 // true0100 < 65 // true 0100被视为八进制数字,转为10进制数字后,值为64
比较——数字 vs 非数字类型的数据
比较原理:先将非数字类型的数据转换为数字,再将所有数字都转换为十进制的数字,最后根据数值大小进行比较
通过【 Number(数据) 】 可以获取数据转换为数字后的值
字符串
纯数字的字符串转为数字时,得到对应的数字。 Number('20') 得到 20
0开头的纯数字的字符串,会先去掉头部的所有0。 Number('0100') 和 Number('00100') 都会得到100
非纯数字的字符串,因无法转化为数字,都会得到NaN,而 NaN 和任何数字(任何值,包括NaN自己)比较都会得到 false
'10' < 11 // true '10'转为数字为10'0100' < 65 // false '0100'转为数字为100'0100a' < 65 // false '0100a'转为数字为NaN,NaN与任何值比较都是false'0100a' > 65 // false '0100a'转为数字为NaN,NaN与任何值比较都是false
布尔型
false 转化为数字为 0true 转化为数字为 1
数组
[] 空数组转化为数字为 0[12]或 ['12'] 只有一个可转换为数字的元素的数组转化为数字为 12[12,2]等所有无法转为数字的数组转化为数字为 NaN
对象
时间对象可以转化为数字,值为时间对应的时间戳,相当于执行了时间对象的.getTime() 方法{} 等其他无法转换为数字的对象转化为数字为 NaN
Number(new Date()) // 得到执行时时间对应的时间戳1620872129032
undefined 转化为数字为 NaN
null 转化为数字为 0
比较——字符串 vs 非数字类型的数据
比较原理:先将非数字类型的数据转换为字符串,再从左到右,依次取出字符串各位上的字符,根据字符的Unicode 编码值的大小进行比较,直到得出最终的比较结果
通过【数据.toString() 】 可以获取数据转换为字符串后的值
通过【字符.charCodeAt() 】 可以获取字符的Unicode 编码值
'a' < 'b' //true 'a'.charCodeAt()为97 'b'.charCodeAt()为98'aa' < 'ab' //true 第1位字符相等,比较第2位字符'a' < 'ab' //true 第1位字符相等,比较第2位字符,若字符缺失,则无字符永远小于有字符// ['a','a'] 转换为字符串为 'a,a'// ','.charCodeAt()为44// ' '.charCodeAt()为32'a,a' < ['a','b'] //true 'a a' < ['a','a'] //true
lodash常用的比较函数
相等
var object = { 'a': 1 };var other = { 'a': 1 }; _.eq(object, object);// => true _.eq(object, other);// => false _.eq('a', 'a');// => true _.eq('a', Object('a'));// => false _.eq(NaN, NaN);// => true
深比较
var object = { 'a': 1 };var other = { 'a': 1 }; _.isEqual(object, other);// => true object === other;// => false
大于
大于等于 _.gte
_.gt(3, 1);// => true _.gt(3, 3);// => false _.gt(1, 3);// => false
小于
小于等于 _.lte
_.lt(1, 3);// => true _.lt(3, 3);// => false _.lt(3, 1);// => false
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~