引用类型有哪些?非引用类型有哪些
- 引用类型值(对象、数组、函数、正则():指的是那些保存在堆内存中的对象,变量中保存的实际上只是一个指针,这个指针执行内存中的另一个位置,由该位置保存对象。
- 非引用类型
非引用类型(基本类型值)(数值、布尔值、null和undefined):指的是保存在栈内存中的简单数据段;
如下代码输出什么?为什么?
![](https://img.haomeiwen.com/i6970717/5d53fc9b3f21d33e.jpg)
![](https://img.haomeiwen.com/i6970717/5268c131707456d4.jpg)
如下代码输出什么? 为什么?
![](https://img.haomeiwen.com/i6970717/554d2b8e6cbd1fd3.jpg)
![](https://img.haomeiwen.com/i6970717/b4bd6aabab92d34f.jpg)
如下代码输出什么? 为什么?
![](https://img.haomeiwen.com/i6970717/2d0f02745afe76c8.jpg)
![](https://img.haomeiwen.com/i6970717/49aa4547720fb634.jpg)
过滤如下数组,只保留正数,直接在原数组上操作
![](https://img.haomeiwen.com/i6970717/d25313001da4ff52.jpg)
![](https://img.haomeiwen.com/i6970717/9c17e4ea617188a6.jpg)
过滤如下数组,只保留正数,原数组不变,生成新数组
![](https://img.haomeiwen.com/i6970717/ea2fffa006050250.jpg)
![](https://img.haomeiwen.com/i6970717/e1cfec2fc112fa41.jpg)
写一个深拷贝函数,用两种方式实现
方法1
function deepCopy(oldObj) {
var newObj = {};
for(var key in oldObj) {
if(typeof oldObj[key] === 'object') {
newObj[key] = deepCopy(oldObj[key]);
}else{
newObj[key] = oldObj[key];
}
}
return newObj;
}
方法2
function deepCopy2(obj){
return JSON.parse(JSON.stringify(obj));
}
var obj3 = {
name:"ruoyu",
age:20
}
var obj4 = deepCopy2(obj3);
console.log(obj4);
obj3.age = 33;
console.log(obj4.age);
网友评论