<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>sort 排序</title>
</head>
<body>
<script>
var arrNum = [9, 19, 39, 49, 55, 67, 200, 299, 87, 5550]
let sort01 = arrNum.sort()
console.log(sort01);// [19, 200, 299, 39, 49, 55, 5550, 67, 87, 9]
/*
sort() 方法默认会把数组元素转换为字符串,然后依据字符串的 Unicode 编码顺序来进行排序,并非按照数值大小排序
字符 Unicode(十进制) Unicode(十六进制)
0 48 0x30
1 49 0x31
2 50 0x32
3 51 0x33
4 52 0x34
5 53 0x35
6 54 0x36
7 55 0x37
8 56 0x38
9 57 0x39
问题1:js 中,字符‘0’ 和数字 0 区别
1. 数据类型不同
字符 '0':属于字符串类型(string),由单引号或双引号包裹。
数字 0:属于数值类型(number),代表数值零。
2. 底层表示不同
字符 '0':在内存中以 Unicode 编码形式存储,对应的 Unicode 值是 U+0030(十进制为 48)。
数字 0:遵循 IEEE 754 双精度 64 位浮点数规范存储。
问题2:‘0’ 二进制值 0 二进制值
1. '0' Unicode 编码点:U+0030(十进制 48) -- 00000000 00110000(16 位,高位补零)
2. 0
符号位(1) 指数位(11) 尾数位(52)
0 00000000000 000000000000000000000000000000000000000000000000
符号位:0(表示正数)
指数位:全 0(特殊处理,表示指数为 1 - 1023 = -1022)
尾数位:全 0(表示尾数为 0)
最终值:
(-1)^0 × 0 × 2^(-1022) = 0
内存占用: '0':通常为 2 字节(UTF-16) 0 : 8 字节(64 位浮点数)
*/
debugger
var arr = [
{ name: 'zopp', age: 0 },
{ name: 'gpp', age: 18 },
{ name: 'yjj', age: 8 }
];
</script>
</body>
</html>