东西进箱子前,得知道它是哪种。本页认全五种基本类型。
核心:
① 数字 number——1、3.14
② 字符串 string——"你好"(必须加引号)
③ 布尔 boolean——true / false
④ undefined / null——没赋值 / 主动清空
⑤ 模板字符串——用 ${} 把变量插进句子里
坑:数字加字符串变拼接、字符串没加引号报错。
往箱子里放东西之前,得知道这东西是哪种:是数字、是文字、是对/错、还是空着。JS 最基础的种类有 5 种:
| 类型 | 人话 | 例子 |
|---|---|---|
| number 数字 | 整数、小数、无穷、还有"算不出来"的 NaN | 10、3.14、NaN |
| string 字符串 | 引号包起来的一段文字 | '你好'、"hi" |
| boolean 布尔 | 只有两个答案:是/否 | true(是)、false(否) |
| undefined | 箱子要了,但忘了放东西 | let a; → undefined |
| null | 你主动把箱子腾空,表示现在没东西 | let b = null; |
补充一点:布尔值参与算数时,true 当 1、false 当 0(比如 true + 1 = 2)。
想拼一句话"我叫小明,今年18岁",老办法用一堆加号,又长又容易错。新办法用反引号 ` `(就是键盘左上角那个键),里面写 ${变量名} 就能直接把变量值塞进句子,还能保留换行。
// 姓名
let name = "小明";
// 年龄
let age = 18;
// 老办法:加号拼接,啰嗦
console.log("我叫" + name + ",今年" + age + "岁");
// 新办法:反引号 + ${},一眼看明白
console.log(`我叫${name},今年${age}岁`);
// length:数一数这串文字有几个字符
// 5
console.log("hello".length);
想在字符串里打出特殊符号,用反斜杠 \ 转义,常见这几个:
| 写法 | 打出来是什么 |
|---|---|
| \' | 一个单引号 ' |
| \" | 一个双引号 " |
| \\ | 一个反斜杠 \ |
| \n | 换行 |
| \t | Tab 缩进 |
// 只跟电脑要了箱子,没放东西 let a; // undefined:它"应该有值",但你还没给 console.log(a); // 你主动把箱子设成"空" let b = null; // null:是你故意说"这里先不放" console.log(b);
如果你分不清 undefined 和 null,就这么记:undefined 是"我忘了放"(意外的空),null 是"我故意放空"(主动的空)。一个是疏忽,一个是表态。
① 可能在什么地方用:用户名存字符串、年龄存数字、是否登录存布尔值。
② 常见的问题:从输入框拿到的明明像数字,相加却变成拼接(其实它是字符串)。
③ 解决思路:先 typeof 看看类型;要算数就先用 Number() 把它转成数字。
| API | 作用 | 参数 | 返回值 | 代码示例 |
|---|---|---|---|---|
| typeof | 查这个值是什么类型 | 任意值 | 类型字符串 | console.log(typeof 123); // "number" |
| null | 表示“空”的特殊值 | — | typeof 它会答 object(历史 bug) | let box = null; |
| undefined | 变量声明了却没赋值 | — | typeof 它答 undefined | let box; |