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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Vue.js面试题整理 一、什么是****MVVM****? MVVM是Model-View-ViewModel的...
    EmilWong阅读 323评论 0 0
  • 1、active-class是哪个组件的属性?嵌套路由怎么定义?答:vue-router模块的router-lin...
    jane819阅读 1,853评论 0 15
  • 一、什么是MVVM? MVVM是Model-View-ViewModel的缩写。MVVM是一种设计思想。Model...
    流泪手心_521阅读 382评论 0 0
  • vue的底层原理? vue组件之间的通信? JS中判断数据类型的方法有几种? 最常见的判断方法:typeof 判断...
    蚂蚁想赛跑阅读 1,217评论 1 1
  • 作为有5年前端开发的老司机来说已经面试了无数家公司了,现在大多数公司面试,都在问“原理”、“源码”,不能只知道怎么...
    Auoth阅读 1,280评论 0 10

友情链接更多精彩内容