常用知识点

# 常用知识点

# 新建数组

  1. 创建长度为 n 的数组
new Array(n);
1
  1. 创建 n 个值为 0 的数组
new Array(n).fill(0);
1

# valueOf 与 toString

  1. valueOf 偏向于运算,toString 偏向于显示
  2. 对象转换时,优先调用 valueOf
  3. 强转字符串优先调用 toString,强转数字优先调用 valueOf
  4. 正常情况下,优先调用 toString
  5. 运算操作符情况下优先调用 valueOf

# 调用 valueOf

调用者 返回值 返回值类型
Array 数组本身 Array
Date 毫秒数 Number
Function 函数本身 Function
Object 对象本身 Object
String 字符串 String

# 调用 toString

调用者 返回值 返回值类型
Array 数组转字符串,相当于 Array.join() String
Boolean 转字符串'true'、'false' String
Date 字符串日期,如'Fri Dec 23 2016 11:24:47 GMT+0800 (中国标准时间)' String
Number 数字字符串 String
Object '[object Object]' String
String 字符串 String

# 双等号左右两边的转换规则?

  • 1、null == undefined 为 true
  • 2、如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false 转换为 0,而 true 转换为 1;
  • 3、如果一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值
  • 4、如果一个操作数是对象,另一个操作数不是,则调用对象的 toString()方法,用得到的基本类型值按照前面的规则进行比较

# 数组常用的方法

方法 作用 是否影响原数组
push 在数组后添加元素,返回数组长度 ✅
pop 删除数组最后一项,返回被删除项 ✅
shift 删除数组第一项,并返回被删除项 ✅
unshift 数组开头添加元素,返回数组长度 ✅
reserve 反转一个数组,返回修改后的数组 ✅
sort 排序一个数组,返回修改后的数组 ✅
splice 截取数组,返回被截取的区间 ✅
join 将一个数组所有元素连接成字符串并返回这个字符串 ❌
concat arr1.concat(arr2, arr3) 连接数组 ❌
map 操作数组每一项并返回一个新数组 ❌
forEach 遍历数组,没有返回值 ❌
filter 对数组所有项进行判断,返回符合规则的新数组 ❌
every 数组每一项都符合规则才返回 true ❌
some 数组有符合规则的一项就返回 true ❌
reduce 接收上一个 return 和数组的下一项 ❌
flat 数组扁平化 ❌
slice 截取数组,返回被截取的区间 ❌

# Math 的常用方法有哪些?

方法 作用
Math.max(...arr) 取 arr 中的最大值
Math.min(...arr) 取 arr 中的最小值
Math.ceil(小数) 小数向上取整
Math.floor(小数) 小数向下取整
Math.round(小数) 小数四舍五入
Math.sqrt(num) 对 num 进行开方
Math.pow(num, m) 对 num 取 m 次幂
Math.random() * num 取 0-num 的随机数

# 使用 Object.prototype.toString.call() 返回的结果

类型 toString 结果
Map Object.prototype.toString.call(new Map()) [object Map]
Set Object.prototype.toString.call(new Set()) [object Set]
Array Object.prototype.toString.call([]) [object Array]
Object Object.prototype.toString.call({})) [object Object]
Symbol Object.prototype.toString.call(Symbol()) [object Symbol]
RegExp Object.prototype.toString.call(new RegExp()) [object RegExp]
Function Object.prototype.toString.call(function() {}) [object Function]
Null Object.prototype.toString.call(null) [object Null]
Undefined Object.prototype.toString.call(undefined) [object Undefined]
NaN Object.prototype.toString.call(NaN) [object Number]
最后更新时间: 2024/5/30 08:43:24