js错题本
Chunbin Lv4

js中的加法

1
2
3
4
5
6
7
const m = [1, 2]
const b = (n, ...m) => {
return n + m
}
const a = b(1)

console.log(a) // '1'

解析

这道题有几个知识点

  1. b中获取的是形参,不会获取m的值
  2. ...m,如果传参为空,则为[]
  3. 1+[],[].toString(),得到'1'

拓展

js的加法转化

针对第3个知识点,js中加法运算规则,只做数字和字符串的加法操作,所有不是这两种类型的都会被转化这两种原始数据类型再进行操作
具体
关键词:ToPrimitivetoStringtoValue

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 各种转化情况
// 对象
const a1 = {
a: 1
};
console.log(a1.valueOf()); // {a:1}
console.log(a1.toString()); // '[object Object]'
// 数组
const a2 = [1,2,3];
console.log(a2.valueOf()); // [1,2,3]
console.log(a2.toString()); // "1,2,3"
// 方法
const a3 = function() {
const a = 1;
return 1;
};
console.log(a3.valueOf()); // f(){const a = 1 return 1} 函数,可以执行
console.log(a3.toString()); // 'function(){const a = 1 return 1}'
 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
访客数 访问量