JavaScript 基本数据类型解析

1. JavaScript 有六种基本数据类型:Number | String | Boolean | Undefined | Null | 【ES6新增】Symbol,以及引用数据类型 Object

2. 对于基本数据类型的判断:typeof 操作符,对于不同的数据类型会返回不同的值,以下为七种常见的情况:

Number         number

Array / Object / null   Object

String          string

Undefined        undefined

Boolean           boolean

Function         function

Symbol          symbol

3. 基本数据类型介绍:

【1】Undefined:如果一个 let 或 var 声明的变量未经过初始化,那么它的默认值为 undefined,这个数据类型的意义在于 区分空指针对象的值 null 和 未经初始化的变量的值 undefined。

被 typeof 操作符检测时,结果为 undefined.

【2】Null:含义为一个空对象指针,因此 typeof 操作符检测时,返回 Object 类型似乎不是那么难以理解,在将来要保存对象的变量的初始值可以先设置为 null. Undefined 类型是 Null 派生出来的,因此JavaScript将其定义为表面上相等,即

console.log(undefined == null) // true

【3】Boolean:布尔值类型,有两个字面值:true、false. 在 if 等流程控制语句中,经常会有其他类型默认转换为 Boolean 类型的例子,因此需要理解其他类型转换到 Boolean 类型后的值.

Boolean 转 Boolean :true -> true,false -> false

Number 转 Boolean :非0数字 -> true, 0、NaN -> false

Undefined 转 Boolean :无转为 true 的情况,undefined -> false

String 转 Boolean :非空字符串 -> true,空字符串 -> false

Object 转 Boolean :任何对象 -> true,null -> false 

【4】Number:(1)NaN:即一个类型转换为 Number,本来应该返回一个数值,但失败了。

例如:1. 将字符串 “blue” 强制转换为 Number 类型,那么会返回一个 NaN,而字符串 "123" 则会正确返回数值 123.

2. 0 除以 任何数,在其他语言例如 C++ 中会报错,但在JavaScript 中会返回 NaN

在对 NaN 进行比较判断时,你会发现一个奇怪的现象:

console.log(NaN === NaN); // false

也就是说 NaN 和 任何数【包括它自身】都不相等,要使其相等,需要使用特殊的函数 isNaN() 专门对其进行判断,ES6 新增了 Object.is() 函数,也可实现对 NaN 的正确判断.

(2)parseInt(str) | parseFloat(str):将字符串转换为数值型数据,除了 str 还可以指定第二个参数,说明按哪种进制解析. str 最前面的空格会被忽略,从第一个非空格字符开始转换.

(3)其他类型转字符串的具体内容可参考 红宝书 第四版 P36

【5】String:字符串类型,(1)字符串一旦创建,就不可以再更改【例如使用索引对某个字符修改,是无效操作】,如果更改会先销毁原来字符串,再将新的字符串赋值给变量.

let str = "string";
console.log(str); // string
str = "new string";
console.log(str); // new string
console.log(str[0]); // n
str[0] = 'h';
console.log(str[0]); // n

【6】Symbol:会单独记录一篇随笔详细介绍......

posted @ 2021-09-30 14:17  TwinkleG  Views(94)  Comments(0)    收藏  举报