前端面试题十@杨志刚

简述同步和异步的区别

同步是阻塞模式,异步是非阻塞模式。

同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,知道收到返回信息才继续执行下去;

异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回式系统会通知进程进行处理,这样可以提高执行的效率

同步交互:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程;

  异步交互:指发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待。

  区别:一个需要等待,一个不需要等待,在部分情况下,我们的项目开发中都会优先选择不需要等待的异步交互方式。

数组去重(手写代码)

一、利用ES6 Set去重(ES6中最常用)

function unique (arr) {

  return Array.from(new Set(arr))

}

var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];

console.log(unique(arr))

二、利用for嵌套for,然后splice去重(ES5中最常用)

function unique(arr){           

        for(var i=0; i

            for(var j=i+1; j

                if(arr[i]==arr[j]){        //第一个等同于第二个,splice方法删除第二个

                    arr.splice(j,1);

                    j--;

                }

            }

        }

return arr;

}

在javaScript中什么是伪数组?如何将伪数组转化为标准数组

伪数组(类数组):无法直接调用数组方法或期望length属性有什么特殊的行为,但仍可以对真正数组遍历方法来遍历它们。典型的是函数的argument参数,还有像调用getElementsByTagName,document.childNodes之类的,它们都返回NodeList对象都属于伪数组。可以使用Array.prototype.slice.call(fakeArray)将数组转化为真正的Array对象。

在js中,数组是特殊的对象,凡是对象有的性质,数组都有,数组表示有序数据的集合,而对象表示无序数据的集合。

那伪数组是什么呢,当然它也是对象,伪数组一般具有以下特点:

按索引方式吗存储数据;

具有length属性;

没有数组的push、shift、pop等方法;

function的arguments对象,还有getElementsByTagName、ele.childNodes等返回的NodeList对象,或者自定义的某些对象,这些都可以是伪数组。

我们可以通过以下几种方式将伪数组转换为标准数组:

1、使用Array.prototype.slice.call()或[].slice.call();

2、使用ES6中Array.from方法;

SPA路由history模式,打包上线都遇到了哪些问题?你是如何解决的?

背景图片路径问题

创建一个vue.config(扛定).js 把下面代码放进去

module.exports = {

// 基本路径

publicPath: './',

}

JavaScript中callee和caller的作用

.callee

  callee是对象的一个属性,该属性是一个指针,指向参数arguments对象的函数

  作用:就是用来指向当前对象

  返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文.

  callee是arguments 的一个属性成员,它表示对函数对象本身的引用,这有利于匿名

  函数的递归或者保证函数的封装性。

2.caller

  caller是函数对象的一个属性,该属性保存着调用当前函数的函数的引用(指向当前函数的直接父函数)

  返回一个对函数的引用,该函数调用了当前函数。

  functionName.caller

  functionName 对象是所执行函数的名称。

  注意:

    对于函数来说,caller 属性只有在函数执行时才有定义。 如果函数是由 Javascript 程序的顶层调用的,那么 caller 包含的就是 null 。

你可能感兴趣的:(前端面试题十@杨志刚)