1. **判断数组和对象**
var a=[]
var b={}
console.log(a instanceof Array)
console.log(Array.isArray(a))
console.log(a.constructor===Array)
console.log(Object.prototype.tostring.call(a)==[object Array])
2. 浅拷贝与赋值的区别
//**赋值**
var obj={name:'zhangsan',age:18}
var obj1=obj
obj1.name='lisi'
//obj的name也被改变了
//**浅拷贝**
for(i in obj){
let newobj={}
newobj[i]=obj[i]
}
newobj.name='lisi'
//obj的name没有改变
js常见问题
本文探讨了JavaScript中数组和对象的判断方法,包括`instanceof`、`Array.isArray()`、`constructor`属性以及`Object.prototype.toString.call()`的使用。同时,通过实例比较了赋值和浅拷贝的区别,解释了浅拷贝如何避免原始对象被修改的问题。
摘要由CSDN通过智能技术生成