2020面试

1. 同源策略是什么?
1
限制一个源从另一个源的交互。需要相同域名,相同协议,相同端口。
2. html块元素、行元素

块元素:

1
**行元素:**  ```span,a,input,.select,strong,em,i

空元素:

1
2
3
4
5

##### 3. splice、slice的区别
splice: 截取数组,返回被截取的值,改变原数组。```splice(1,3)```第一个参数下标,第二个参数是截取的位数

slice: 截取数组、字符串,返回新数组,原数组不动。可以用于字符串。 第二个参数是endIndex ```slice(startIndex,endIndex)

4. vue-router的钩子函数?
  • 全局钩子函数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    * **组件内钩子函数**
    ````js
    beforeRouteEnter(to, from, next) {
    // do someting
    // 在渲染该组件的对应路由被 confirm 前调用
    },
    beforeRouteUpdate(to, from, next) {
    // do someting
    // 在当前路由改变,但是依然渲染该组件是调用
    },
    beforeRouteLeave(to, from ,next) {
    // do someting
    // 导航离开该组件的对应路由时被调用
    }
    `

  • 单独路由独享组件

    1
    2
    3
    4
    5
    6
    7
    8
    9

    ###### 5. substring,substr的区别
    **substring:** 如果都是一个参数的时候截取到末尾 第二个参数 endIndex 这个是startIndex,endIndex里找出一个较小的值,然后从字符串的开始位置算起,截取较小值位置和较大值位置之间的字符串,截取出来的字符串的长度为较大值与较小值之间的差。
    **substr:** 第二个参数是长度
    ```js
    var txt = 'abcd';
    txt.substr(2) "cd"
    txt.substring(2) "cd"
    txt.substring(2,1) "b"

6. object.assign() 用于将所有可枚举的值从一个或多个源对象中转移到目标对象。

如果目标对象中的属性具有相同的键,则属性将被源对象中的属性覆盖。后面的源对象的属性将类似地覆盖前面的源对象的属性。

1
2
3
4
5
var target = [1];
var source1 = [2];
var source2 = [3];
console.log(Object.assign(target,source1,source2))
结果: [3]

1
2
3
4
5
6
7
var target = [1];
var source1 = [2];
var source2 = [3,4];
var source3 = {name:1}
var source4 = {name:4}
console.log(Object.assign(target,source1,source2,source3,source4))
结果:[3, 4, name: 4]
7. new Set() es6去重 之后返回类数组 需要…扩展运算符变为真正的数组
1
2
3
var arr = [1,2,3,4,5,2,3,4];
var newArr = [...new Set(arr)].sort((a,b)=>a-b);
console.log(newArr)
8. 什么是异步编程?

promise、回调函数、时间监听、发布/订阅

9.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
let arr1 = [1,2,3,4,5];
let arr2 = [6,7,8,9,0];
arr1.splice(2,1);
let arr3 = arr2.map(v=>{ return v+1 });
let arr4 = arr3.filter(v=>{
if( v > 8){
return v;
}
})
console.log(arr1);
console.log(arr2);
console.log(arr3);
console.log(arr4);
VM4848:10 (4) [1, 2, 4, 5]
VM4848:11 (5) [6, 7, 8, 9, 0]
VM4848:12 (5) [7, 8, 9, 10, 1]
VM4848:13 (2) [9, 10]
0%