【面试笔记(一)】

面试笔记

一.请问在JavaScript中有哪些常用数据类型?

在JavaScript中,基本数据类型(也称为原始数据类型(Primitive types))和引用数据类型(也称为复合数据类型(Composite types))有着明确的区别。基本数据类型是不可变的,而引用数据类型是可变的,并且可以包含其他对象。

基本数据类型:

  1. Number:数值类型,表示数字,可以是整数或浮点数。
  2. undefined:表示未定义的值,变量声明了但未初始化时的默认值。
  3. null:表示空值,是一个特殊的值,用来表示变量不指向任何对象或值。
  4. Boolean:布尔类型,表示逻辑值,只有两个可能的值:true 或 false。
  5. String:字符串类型,表示字符串,由一系列字符组成,用单引号(’ ')或双引号(" ")包围。

引用数据类型:

  1. Object:表示对象,可以包含多种类型的属性和方法。对象是复合类型,可以是任何非原始类型,如数组、函数、日期等。
  2. Array:表示数组,是对象的一种特殊形式,用于存储有序的数据集合。
  3. Function:表示函数,是一段可执行的代码块,可以作为对象来调用。
  4. Date(对象):表示日期和时间,是一个特殊的对象,用于处理日期和时间。

如果想要具体的区分数据类型可以通过Object.prototype.toString.call(value) ->找到Object原型上的toString方法,让方法执行,并且让方法中的this变为value(value->就是我们要检测数据类型的值)。

二.请问在JavaScript中有哪些常用字符串方法?

  1. concat(string1, string2, …):连接两个或多个字符串,并返回一个新字符串。
const str = 'hello';
console.log(str.concat(' ', 'world')); // 输出结果:'hello world'
  1. split(separator, limit):使用指定的分隔符将字符串分割成数组。
const str = 'hello world';
console.log(str.split(' ')); // 输出结果:['hello', 'world']
  1. slice(start, end):提取字符串的一部分,并返回新字符串。
const str = 'hello';
console.log(str.slice(1, 3)); // 输出结果:'el'
  1. substring(start, end):提取字符串的一部分,并返回新字符串,与slice类似,但不接受负数索引。
const str = 'hello';
console.log(str.substring(1, 3)); // 输出结果:'el'
  1. length:返回字符串的长度。
const str = 'hello';
console.log(str.length); // 输出结果:5
  1. toUpperCase():将字符串转换为大写。
const str = 'hello';
console.log(str.toUpperCase()); // 输出结果:'HELLO'
  1. toLowerCase():将字符串转换为小写。
const str = 'HELLO';
console.log(str.toLowerCase()); // 输出结果:'hello'
  1. trim():移除字符串两端的空白字符。
const str = '   hello   ';
console.log(str.trim()); // 输出结果:'hello'
  1. charAt(index):返回指定位置的字符。
const str = 'hello';
console.log(str.charAt(1)); // 输出结果:'e'
  1. includes(searchvalue, start):判断字符串是否包含指定的子字符串。
const str = 'hello';
console.log(str.includes('e')); // 输出结果:true

三.请问在JavaScript中有哪些常用数组方法?

  1. push():向数组的末尾添加一个或多个元素,并返回新的长度。
let arr = [1, 2, 3];
arr.push(4); // arr 变为 [1, 2, 3, 4]
  1. pop():删除数组的最后一个元素,并返回被删除的元素。
arr.pop(); // 删除 4,返回 4,数组变为 [1, 2, 3]
  1. unshift():在数组的开头添加一个或多个元素,并返回新的长度。
arr.unshift(0); // arr 变为 [0, 1, 2, 3]
  1. shift():删除数组的第一个元素,并返回被删除的元素。
arr.shift(); // 删除 0,返回 0,数组变为 [1, 2, 3] 
  1. splice():通过指定的索引来删除、替换或添加新元素。
arr.splice(1, 1, 'a'); // 从索引 1 开始删除 1 个元素,然后添加 'a',数组变为 [1, 'a', 3]
  1. slice():返回一个新数组,包含从开始到结束(不包括结束)选择的数组的一部分。
let newArr = arr.slice(1, 3); // 返回 [2, 3]
  1. concat():合并两个或多个数组,并返回一个新数组。
let combined = arr.concat([4, 5]); // 返回 [1, 2, 3, 4, 5]
  1. join():将数组的所有元素连接成一个字符串。
let str = arr.join(', '); // 返回 "1, 2, 3"
  1. indexOf() 和 lastIndexOf():返回在数组中可以找到给定元素的第一个或最后一个的索引,如果不存在则返回-1。
arr.indexOf(2); // 返回 1
arr.lastIndexOf(3); // 返回 2
  1. forEach():对数组的每个元素执行一次提供的函数。
arr.forEach(function(element) {
 console.log(element); // 遍历数组并打印每个元素
});
  1. map():创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值。
let doubled = arr.map(function(element) {
 return element * 2; // 返回每个元素乘以 2 的新数组
});
  1. sort():对数组进行排序,并返回排序后的数组。
let fruits = ['banana', 'apple', 'cherry', 'date'];

// 默认排序,按照字符串的Unicode码点排序
fruits.sort();
console.log(fruits); // 输出结果:['apple', 'banana', 'cherry', 'date']

// 数值排序,按照数值大小排序
let numbers = [4, 2, 8, 1, 5];
numbers.sort(function(a, b) {
 return a - b; // 升序排序
});
console.log(numbers); // 输出结果:[1, 2, 4, 5, 8]

// 自定义排序,按照字符串长度排序
fruits.sort(function(a, b) {
 return a.length - b.length; // 按照字符串长度升序排序
});
console.log(fruits); // 输出结果:['date', 'apple', 'banana', 'cherry']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值