为什么typeof null返回的是object类型?
在JavaScript最初的实现中,JavaScript中的值是由一个表示类型的标签和实际数据值表示的。对象的类型标签是0,由于null代表的是空指针(大多数平台下值为0x00),因此,null类型标签也成为了0(十进制),typeof null就错误的返回了object(摘自原文出处)
函数带大括号和不带大括号的区别?
// 不带大括号(此时函数test相当于return a+b)
const test = (a,b) => a+b
alert(test(1,2)) // output: 3
// 带大括号,则不能写a+b
const test = (a,b) => {
a + b // output: undefined
}
// 应该写
const test = (a,b) => {
return a+b
}
test(1+2) // output: 3
引用类型的赋值关系
JS中引用类型之间的赋值(浅拷贝),相当于指针的引用(如下图)
// 简单的demo
let obj1 = {}
let obj2 = obj1
obj2.name = "zhangsan"
console.log(obj1)
console.log(obj2) // obj1 和 obj2 的值是一样的