数据类型
常用数据类型
- 常用的数据类型及其描述:
| 数据类型 | 描述 |
|---|---|
undefined |
表示变量未定义或未赋值的特殊值。 |
null |
表示一个空值。 |
boolean |
表示逻辑值,只有两个可能的值:true(真)和false(假)。 |
number |
表示数值,可以是整数或浮点数,例如42或3.14。 |
string |
表示文本字符串,例如"Hello, world!"。 |
symbol |
在ECMAScript 6中引入的新类型,表示唯一的、不可变的值。每个symbol都是独一无二的。 |
object |
表示复杂数据结构,可以包含多个键值对。对象可以是数组、函数、日期等等。 |
- 特殊的内置对象类型:
| 数据类型 | 描述 |
|---|---|
Array |
表示有序的集合,可以包含任意类型的数据。 |
Function |
表示可执行的代码块,可以接受参数并返回值。 |
Date |
表示日期和时间。 |
RegExp |
表示正则表达式,用于匹配和操作字符串。 |
Map |
表示键值对的集合,其中键和值可以是任意类型的数据。 |
Set |
表示一组唯一值的集合,其中值可以是任意类型的数据。 |
Promise |
表示一个异步操作的最终完成或失败的结果。 |
Error |
表示在运行时发生的错误,可以捕获并处理。 |
Math |
提供了一组数学相关的函数和常量。 |
JSON |
提供了用于解析和序列化JSON数据的方法。 |
Math |
提供了一组数学相关的函数和常量。 |
Math |
提供了一组数学相关的函数和常量。 |
Math |
提供了一组数学相关的函数和常量。 |
Math |
提供了一组数学相关的函数和常量。 |
Math |
提供了一组数学相关的函数和常量。 |
判断方法
-
使用
typeof操作符:typeof可以用于判断大多数基本数据类型(除了null和object)。typeof undefined; // "undefined" typeof null; // "object" typeof true; // "boolean" typeof 42; // "number" typeof "Hello"; // "string" typeof Symbol(); // "symbol" typeof {}; // "object" -
使用
instanceof操作符:instanceof可以用于判断一个对象是否属于某个特定类型或类的实例。[] instanceof Array; // true {} instanceof Object; // true new Date() instanceof Date; // true /regex/ instanceof RegExp; // true -
使用
Array.isArray()函数:Array.isArray()用于检查一个值是否为数组类型。Array.isArray([]); // true Array.isArray({}); // false -
使用
Object.prototype.toString.call()方法:这种方法可以在所有的数据类型上使用,但需要注意传入的值必须是对象。Object.prototype.toString.call(undefined); // "[object Undefined]" Object.prototype.toString.call(null); // "[object Null]" Object.prototype.toString.call(true); // "[object Boolean]" Object.prototype.toString.call(42); // "[object Number]" Object.prototype.toString.call("Hello"); // "[object String]" Object.prototype.toString.call(Symbol()); // "[object Symbol]" Object.prototype.toString.call({}); // "[object Object]"
类型转换
隐式转换:
隐式转换是在操作中自动发生的类型转换,不需要显式地指定转换操作。以下是一些常见的隐式转换情况:
-
字符串和数字之间的隐式转换:
- 字符串转换为数字:发生在算术运算或比较操作中。
- 数字转换为字符串:发生在字符串拼接或某些上下文中,如
console.log()输出。
-
布尔值的隐式转换:
- 非零数字、非空字符串、非空数组等被视为
true,0、''、null、undefined、NaN、false等被视为false。
- 非零数字、非空字符串、非空数组等被视为
-
其他类型之间的隐式转换:
- 数字和布尔值之间的转换:
true转换为1,false转换为0。 - 字符串和布尔值之间的转换:
true转换为'true',false转换为'false'。
- 数字和布尔值之间的转换:
显式转换:
-
转换为字符串:
- 使用
String()函数或.toString()方法。 - 示例:
String(42)或42.toString()。
- 使用
-
转换为数字:
- 使用
Number()函数、parseInt()函数或parseFloat()函数。 - 示例:
Number('42')、parseInt('42')或parseFloat('3.14')。
- 使用
-
转换为布尔值:
- 使用
Boolean()函数。 - 示例:
Boolean(0)、Boolean('')。
- 使用
-
转换为数组:
- 使用
Array.from()方法将类数组对象或可迭代对象转换为数组。 - 示例:
Array.from('hello')。
- 使用
创建方法
| 数据类型 | 创建方式 | 相关方法 |
|---|---|---|
undefined |
通过未定义或未赋值的变量创建 | |
null |
直接使用null关键字创建 |
|
boolean |
使用true或false关键字创建 |
|
number |
直接使用数字创建,可以是整数或浮点数 | Number.parseInt()、Number.parseFloat() |
string |
使用单引号、双引号或反引号括起来的字符序列 | 字符串对象的方法,如toUpperCase()、substring() |
symbol |
使用Symbol()函数创建唯一的符号 |
|
object |
使用对象字面量 {} 创建,或使用构造函数创建 |
对象的属性和方法,Object的方法,如Object.keys() |
Array |
使用数组字面量 [] 或通过Array构造函数创建 |
数组对象的方法,如push()、pop()、slice() |
Function |
使用函数声明或函数表达式创建 | 函数对象的方法,如call()、apply() |
Date |
使用new Date()构造函数创建 |
日期对象的方法,如getFullYear()、getMonth() |
RegExp |
使用正则表达式字面量 /pattern/ 或通过RegExp构造函数创建 |
正则表达式对象的方法,如test()、exec() |
Map |
使用new Map()构造函数创建 |
Map对象的方法,如set()、get()、has() |
Set |
使用new Set()构造函数创建 |
Set对象的方法,如add()、has()、delete() |
Promise |
使用new Promise()构造函数创建 |
then()、catch()、finally() |
Error |
使用throw关键字抛出错误 |
错误对象的属性和方法,如message属性和stack属性,try-catch块捕获和处理错误 |
浙公网安备 33010602011771号