JavaScript 中,数据类型 有哪些?(复习/面试)
目录
面试简答
基本数据类型
1. Number
2. String
3. Boolean
4. undefined
5. null
6. Symbol
7. Bigint
复杂数据类型
1. Object
2. Array
3. Function
面试简答
基本数据类型
数值 Number, 字符串String,布尔值Boolean, undefined,null,Symbol,Bigint
复杂数据类型
对象Object, 数组Array, 函数Function, RegExp, Data
存储区别
基本数据类型存储在栈中
复杂数据类型存储在堆中
基本数据类型
1. Number
-
整数和浮点数
-
常用方法
-
toFixed(x) 将数字转化为小数位的 字符串 x表示保留几位小数
-
let num = 3.14123;
console.log(num.toFixed(2)); // 3.14 这里的类型为字符串,并非数字类型
2. String
-
字符串,也可理解为文本数据
-
常用方法
-
length 返回字符串的长度
-
toUpperCase()和 toLowerCase()将字符串转化为大写或小写
-
indexOf()返回指定字符串第一次出现的位置
let str = "Hello, World!";
console.log(str.indexOf("World")); // 7
-
slice(start, end)字符串截取,返回提取的部分,不会更改原始字符串
细节:根据下标来截取
参数 start ,如果是负数 即,-1 指字符串中的最后一个字符,-2 指倒数第二个字符,以此类推
参数 end , 默认为字符串长度(可选)
let text = "Hello world!";
console.log(textg.slice(0, 1)) //仅第一个字符 t
console.log(textg.slice(-1)) //仅最后一个字符 g
console.log(textg.slice(0)) //整个字符串 textg 因为参数end 默认是字符串的长度
3. Boolean
-
只有两个值 true 和 false, 用于逻辑判断
-
常用方法: 通常会使用布尔运算符(如
&&
、||
、!
)进行逻辑操作。
4. undefined
- 变量已声明未赋值, 或函数没有返回值
5. null
- 表示一个对象空指针,日常在项目初始化可手动设置为null,表示该变量不指向任何对象
6. Symbol
-
含义:表示独一无二的值,主要用于创建对象的私有属性和方法。
-
常用方法:通常不会直接对
symbol
调用方法,而是用于对象的属性名。
const sym = Symbol('key');
const obj = {
[sym]: 'value'
};
console.log(obj[sym]); // "value"
7. Bigint
-
表示任意大的整数。 const bigIntNum = 12345678901234567890n
-
常用方法
-
支持基本的数学运算,如
+
、-
、*
、/
等
-
复杂数据类型
1. Object
-
对象, 无序的数据集合,由键值对组成
-
常用方法
-
Object.keys( ) 返回对象的所有键组成的数组
-
Object.values( ) 返回对象的所有值组成的数组
-
Object.assign( ) 用于合并对象。
-
const target = { a: 1 };
const source = { b: 2 };
const merged = Object.assign(target, source); //target目标对象 source源对象,源对象可以是多个,
console.log(merged); // { a: 1, b: 2 }
2. Array
-
数组,有序的数据集合 数组索引从零开始:数组中的第一个元素是 0,第二个元素是 1
-
常用方法
-
push()
和pop()
:在数组末尾添加或删除元素 -
shift()
和unshift()
:在数组开头添加或删除元素 -
splice()
:用于添加或删除数组中的元素 -
map()
:对数组中的每个元素执行指定的操作,并返回新的数组
-
3. Function
-
可执行的代码块
-
常用方法
-
call()
和apply()
:用于调用函数并指定this
值 -
bind()
:创建一个新的函数,在调用时this
值会被绑定到指定的对象。
-
function greet(message) {
console.log(`${message}, ${this.name}`);
}
const person = { name: "John" };
greet.call(person, "Hello"); // "Hello, John"
greet.apply(person, ["Hello"]); // "Hello, John"
function greet(message) {
console.log(`${message}, ${this.name}`);
}
const person = { name: "John" };
greet.call(person, "Hello"); // "Hello, John"
greet.apply(person, ["Hello"]); // "Hello, John"