js的数据类型
JavaScript 有以下几种主要的数据类型(8种):
- 基本数据类型(原始类型):a. Number(数字):整数和浮点数,如 42 或 3.14159
b. String(字符串):文本数据,如 “Hello, World!”
c. Boolean(布尔值):true 或 false
d. Undefined:未定义的值
e. Null:表示空值
f. Symbol(符号):ES6 新增,表示唯一的标识符
g. BigInt(大整数):ES11 新增,用于表示大于 2^53 - 1 的整数e: 引用类型 - 复杂数据类型(引用类型):a. Object(对象):包括普通对象、数组、函数等
-
- Array(数组)
- Function(函数)
- Date(日期)
- RegExp(正则表达式)
- Map(映射)
- Set(集合)
- WeakMap
- WeakSet
可以使用 typeof 操作符来检查变量的数据类型,但要注意它对于 null 和一些对象类型可能会返回意外的结果。例如:
typeof null; // 返回 "object"
typeof []; // 返回 "object"
js的数据类型的相互转换
JavaScript 中数据类型的相互转换是一个重要的概念。以下是主要的转换方法和规则:
在进行比较或运算时,最好使用严格相等 (===) 和严格不等 (!==) 操作符,以避免意外的类型转换。
1. 转换为字符串(String):
String(123); // "123"
(123).toString(); // "123"
123 + ''; // "123"
-
- String() 函数
- toString() 方法
- 加号操作符 (+) 与空字符串 (‘’) 连接
2. 转换为数字(Number):
//取整
parseInt('123'); // 123
//取浮点数
parseFloat('123.45');
Number('123'); // 123
//取整
parseInt('123'); // 123
//取浮点数
parseFloat('123.45'); // 123.45
+'123'; // 123
-
- Number() 函数
- parseInt() 和 parseFloat() 函数
- 一元加号操作符 (+)
3. 转换为布尔值(Boolean):
Boolean(1); // true
Boolean(0); // false
!!1; // true
!!0; // false
-
- Boolean() 函数
- 双重非操作符 (!!)
4. 转换为对象:
Object(123); // Number {123}
Object('abc'); // String {'abc'}
-
- Object() 函数
5. 隐式类型转换:在某些操作中,JavaScript 会自动进行类型转换:
'5' == 5; // true (字符串 '5' 被转换为数字 5)
'5' + 3; // '53' (数字 3 被转换为字符串 '3')
if ('hello') { ... } // 字符串被转换为 true
-
- 比较操作符 (==)
- 算术操作符 (+, -, *, /, %)
- 逻辑操作符 (&&, ||, !)
6. 特殊情况:
-
- null 和 undefined 转换为数字时:
Number(null); // 0
Number(undefined); // NaN
-
- 布尔值转换为数字时:
Number(true); // 1
Number(false); // 0
-
- 字符串转换为数字时,如果字符串不能被解析为有效的数字,结果将是 NaN:
Number('abc'); // NaN