var array1 = [1,2];
var array2 = array1;
array1[0] = array2[1];
array2.push(3);
console.log(array1)
console.log(array2)
1.vue2第一次页面加载会触发哪几个狗子
beforeCreate,created,beforeMount, mounted
2.你是如何测试javascript代码的?
alert();
console.log();
debugger
3.如何判断当前打开设备类型
navigator.userAgent.toLowerCase();
在利用正则表达式的test方法去匹配判断;
4. 什么是闭包?
定义在一个函数内部的函数
将函数内部和外部连接起来的一座桥梁
// 为什么要使用他
可以读取函数内部的变量
使变量始终保持在内存中,不被回收
// 如何使用他
function fun1(){
let count = 1;
function fun2(){
console.log(count);
}
return fun2
}
let a = fun1()
a()
5 使用es6构造一个类(至少有两个属性),实现子类继承
class people {
constructor(name,age){
this.name = name
this.age = age
}
sayHi(){
console.log('hi')
}
}
let person = new people('小明',22)
console.log(person.name) // 小明
console.log(person.age) // 22
person.sayHi() // hi
class sun extends people{
constructor(name,age,height){
super(name,age)
this.height = height
}
}
let student = new sun('小刚',20,175)
console.log(student.name) // 小刚
console.log(student.age) // 20
console.log(student.height) // 175
student.sayHi() // hi
6. 对输入参数a进行深拷贝
function deepClone(a){
if(typeof a !== 'object') return a
let result = Array.isArray(a)?[]:{}
for(let key in a){
if(typeof a[key] === 'object'){
result[key] = deepClone(a[key])
}else{
result[key] = a[key]
}
}
return result
}
let arrs = [{name:'jack',age:18}]
let newArr = deepClone(arrs)
newArr[0].name = 'andy'
console.log(newArr) // [{"name":"andy","age":18}]
console.log(arrs) // [{"name":"jack","age":18}]
1.scss全局变量在vue中的使用
3.深拷贝使用多了会出现什么
4.pc端全屏变灰
7.小程序获取手机号
1.通过wx.login() 获取登录凭证(code)5分钟
2.将code发送给后端,换取session_key和openid
3.调用getPhoneNumber,将encryptedData和iv传给后台
4.后端进行解密获得json
iv 向量
session_key 密钥
openid 用户唯一标识
8.如何提高代码质量
封装抽离重复性的代码
每次提交代码前对代码进行审查
不断学习更高级的语法减少代码量
9.less和scss的区别
// 1.声明变量
less使用@符号
scss使用$符号
//2. Mixins的使用
scss根据@minxin声明 @include 使用
Sass支持条件语句,可以使用if{}else{},for{}循环等等。而Less不支持
事件循环机制 宏任务与微任务 填写下面的打印顺序
async function async1(){
console.log('A')
await async2()
console.log('B')
}
async function async2(){
console.log('C')
}
console.log("D")
// 先微后宏 定时器是宏任务
setTimeout(()=>{
console.log("E")
},0)
async1()
new Promise((resolve)=>{
console.log('F')
resolve()
}).then(()=>{
console.log("G")
})
console.log('H')
// 答案: DACFHBGE
微任务 > Dom渲染 > 宏任务
为什么vue2 可以通过this访问到data中的数据
通过this直接访问到methods里面的函数的原因是:
因为methods里的方法通过 bind 指定了this为 new Vue的实例(vm)。
通过 this 直接访问到 data 里面的数据的原因是:
data里的属性最终会存储到new Vue的实例(vm)上的 _data对象中,
访问 this.xxx,是访问Object.defineProperty代理后的 this._data.xxx