net网站建设语言,网站开通时间查询,大连微网站开发,tp3.2.3网站开发实例1.常见的盒子水平垂直居中的方法有哪些 使用定位 使用margin#xff1a;auto; display:flex; justify-content:center; align-items:center; 使用transform: translate(-50%,-50%);
2.简述下深浅拷贝的原理和常用的方法
浅拷贝
对于基本类型数据来说#xff0c;拷贝的…1.常见的盒子水平垂直居中的方法有哪些 使用定位 使用marginauto; display:flex; justify-content:center; align-items:center; 使用transform: translate(-50%,-50%);
2.简述下深浅拷贝的原理和常用的方法
浅拷贝
对于基本类型数据来说拷贝的是值对于引用数据来说拷贝了地址因此拷贝后的对象和原对象会共用一个内存地址因此属性值会同步变化
浅拷贝常用的方法
① Object.assign可以直接拷贝对象进行数据的处理还有就是可以实现对象的拷贝合并
② 数组的slice和concat方法第一个可以截取数组的值、第二个可以用来连接数组。实际上他俩还可以用来进行数组的浅拷贝复制是浅拷贝数组的一个常用方法
③ Es6展开运算符...是浅拷贝最简单的方式而且还很强大数组和对象都可以用它来进行浅拷贝
深拷贝
对于引用数据类型来说就是拷贝原始对象的所有属性与方法在内存中重新开辟一块内存空间进行存储
深拷贝常用的方法
① Json.stringify(Json.parse( ))是深拷贝里面最容易的一种方法
② 递归深拷贝属于递归版的深拷贝实现方法这个是简易版的实现方法
3.vue中computed和watch的区别
相同
都是观察页面的数据变化的都与data同级
不同
computed会缓存计算的结果只有计算属性依赖的数据变化时才会重新进行计算
Watch不支持缓存数据变化的时候直接进行相应的操作
监听每次都要执行函数
数据变化时执行异步使用watch
Watch支持异步可以监听数据的变化
watch监听单个computed可以同时计算多个
4.什么是同源策略
协议、域名、端口三者都相同
5.考察局部作用域
请写出三个log代码的输出值
可以看到下方代码中函数体中也有一个b、函数名也是b这里输出的b其实是整个函数体也就是函数b和外面的b其实是没多大关系的
可以说全局的那三行代码其实是都没有什么关系的可以忽略
这里其实也考察了在前和在后的区别 在后先输出再自增 在前先自增再输出
var a1;
a;
var b10;
(function b(){var a1;console.log(a);//1console.log(a);//3console.log(b);//null
})()
6.考察let和var的区别
这里考察的是let和var区别中的是否可以重新进行赋值
for (var i 0; i 5; i) {setTimeout(function() {console.log(i);//5 5 5 5 5})
};
//每⼀次for循环的时候setTimeout都执⾏⼀次但是⾥⾯的函数没有被执⾏⽽是被放到了任务队列⾥⾯等待执⾏for循环了5次就放了5次当主线程执行完成后才进入任务队列里面执行
for (let i 0; i 5; i) {setTimeout(function() {console.log(i);//0 1 2 3 4})
};
//因为for循环头部的let不仅将 i 绑定到for循环中事实上它将其重新绑定到循环体的每一次迭代中确保上一次迭代结束的值重新被赋值。setTimeout 里面的 function( ) 属于一个新的域通过 var 定义的变量会不断覆盖之前的值通过 let 定义的变量会产生块级作用域后面赋值的变量不会改变前面的值因为它们处于不同的块级作用域