弱类型语言、ASCII与Unicode、非相等运算符

2021-11-02  本文已影响0人  darkTi

弱类型语言和强类型语言

ASCII与Unicode的区别

1、位bit(比特),缩写为b,用来表示二进制位,它是计算机内部数据储存的最小单位;
2、字节Byte(拜特),缩写为B,它是计算机数据处理的基本单位;
1Byte = 8bit,1字节等于8位

一、ASCII码

二、非ASCII编码

三、Unicode

四、Unicode的问题

五、UTF-8

非相等运算符

对于非相等运算符(><>=<=)的算法,先比较两者是否都是字符串,若都是字符串,就按照Unicode码点一个字符一个字符来比较;若都不是,则先将它两都转成数值,再比较数值大小;

1、字符串的比较

'cat' > 'Cat'    // true'

2、非字符串的比较

(1)简单类型

如果两个运算子都是简单类型的值,则是先转成数值再比较

5 > '4' // true
// 等同于 5 > Number('4')
// 即 5 > 4

true > false // true
// 等同于 Number(true) > Number(false)
// 即 1 > 0

2 > true // true
// 等同于 2 > Number(true)
// 即 2 > 1

这里需要注意与NaN的比较。任何值(包括NaN本身)与NaN使用非相等运算符进行比较,返回的都是false。

1 > NaN // false
1 <= NaN // false
'1' > NaN // false
'1' <= NaN // false
NaN > NaN // false
NaN <= NaN // false
(2)对象

如果运算子是对象,会转为原始类型的值,再进行比较

上一篇下一篇

猜你喜欢

热点阅读