基本类型
# 基本类型
# 1,2) undefined 和 null
- 执行表达式或函数,没有返回结果,出现 undefined
- 访问数组不存在的元素,访问对象不存在的属性,出现 undefined
- 定义变量,没有初始化,出现 undefined
例如:
console.log(1); // 函数没有返回值, 结果是 undefined
let a = 10; // 表达式没有返回值, 结果是 undefined
let b = [1,2,3];
console.log(b[10]); // 数组未定义元素,结果是 undefined
let c = {"name":"张三"};
console.log(c.age); // 对象未定义属性,结果是 undefined
let d;
console.log(d); // 变量未初始化,结果是 undefined
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
二者共同点:
- 都没有属性、方法
- 二者合称 Nullish
二者区别:
- undefined 由 js 产生
- null 由程序员提供
# 3) string ⭐️
js 字符串有以下三种写法:
let a = "hello"; // 双引号
let b = "world"; // 单引号
let c = `hello`; // 反引号
1
2
3
2
3
字符串如何表示?
html 代码如下
<a href="1.html">超链接</a>
1
java 显得比较繁琐
String s1 = "<a href=\"1.html\">超链接</a>";
String s2 = """
<a href="1.html">超链接</a>""";
1
2
3
4
2
3
4
js 就比较灵活
let s1 = '<a href="1.html">超链接</a>';
let s2 = `<a href="1.html">超链接</a>`;
1
2
3
2
3
模板字符串(Template strings)
需求:拼接 URL 的请求参数,如
/test?name=zhang&age=18
/test?name=li&age=20
1
2
2
传统方法拼接,用 + 号拼接:
let name = ; // zhang li ...
let age = ; // 18 20 ...
let url = "/test?name=" + name + "&age=" + age;
1
2
3
4
2
3
4
模板字符串方式,用 ${参数}:
let name = ; // zhang li ...
let age = ; // 18 20 ...
let url = `/test?name=${name}&age=${age}`;
1
2
3
4
2
3
4
# 4,5) number 和 bigint⭐️
number
number 类型标识的是双精度浮动小数,例如
10 / 3; // 结果 3.3333333333333335
1
既然是浮点小数,那么可以除零
10 / 0; // 结果 Infinity 正无穷大
-10 / 0; // 结果 -Infinity 负无穷大
1
2
2
浮点小数都有运算精度问题,例如
2.0 - 1.1; // 结果 0.8999999999999999
1
字符串转数字
parseInt("10"); // 结果是数字 10
parseInt("10.5"); // 结果是数字 10, 去除了小数部分
parseInt("10") / 3; // 结果仍视为 number 浮点数, 因此结果为 3.3333333333333335
parseInt("abc"); // 转换失败,结果是特殊值 NaN (Not a Number)
1
2
3
4
5
6
2
3
4
5
6
bigint
要表示真正的整数,需要用 bigint。
注意:数字的结尾用 n 表示它是一个 bigint 类型。
10n / 3n; // 结果 3n, 按整数除法处理
1
# 6) boolean ⭐️
- Truthy
- Falsy
在 js 中,并不是 boolean 才能用于条件判断,你可以在 if 语句中使用【数字】、【字符串】... 作为判断条件
let b = 1;
if(b) { // true
console.log("进入了");
}
1
2
3
4
5
2
3
4
5
这时就有一个规则,当需要条件判断时,这个值被当作 true 还是 false。
- 当作 true 的值归类为 truthy,
- 当作 false 的值归类为 falsy
下面值都是 falsy
falseNullish (null, undefined)0, 0n, NaN"" '' ``即长度为零的字符串
剩余的值绝大部分都是 truthy
有几个容易被当作 falsy 实际是 truthy 的
"false", "0"(注意双引号)即字符串的 false 和 字符串的零[]空数组{}空对象
# 7) symbol
用于表示唯一的标识符。
const mySymbol = Symbol('description');
1
- 很少使用
上次更新: 2026/11/5 11:56:09