2018前端面试题及参考答案整理(一)

时间:2021-07-01 14:36:57

前言:最近在找工作,遇到一些面试题,鄙人觉得还挺有代表性便与参考答案一并整理出来,以供广大道友参考,还望指教


1.什么是vue生命周期 ?  

vue实例从被创建到销毁的一系列过程就叫vue生命周期. 也就是从开始创建、初始化数据、编译模版、挂载DOM→渲染、更新、渲染、卸载等一系列过程。

2.axios的特点有哪些

  1. axios是一个基于promise的HTTP库,支持promise的所有API
  2. 它可以拦截请求和响应
  3. 它可以转换请求数据和响应数据,并对响应回来的内容自动转换为json类型的数据
  4. 它安全性更高,客户端支持防御XSRF

3.vue父组件怎么给子组件传值?

父组件的数据要通过prop传到子组件

vue参考链接

4.请说下具体使用vue的理解

我也不知道题目到底问些什么(是问vue的具体使用过程还是问使用vue的优缺点呢?)

5.active-class是哪个组件的属性?嵌套路由怎么定义?

vue-router模块的router-link组件

  const routes = [  
     { path: "/", redirect: "/home" },//重定向,指向了home组件  
     {  
         path: "/home", component: home,  
        children: [  
            { path: "/home/game", component: game }  
         ]  
    }  
 ] 

6.谈谈javascript数组排序方法sort()的使用,重点介绍参数使用及内部机制?

语法:arrayObject.sort(sortby)

参数sortby可选,规定排序顺序,必须是函数

注:如果调用该方法是没有使用参数,将按字符编码的顺序进行排序,要实现这一点,首先应把数组的元素都转换成字符串,以便进行比较。

如果想按照其他的标准进行排序,就需要两个比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对排序的数字。比较函数应该具有两个参数a和b,其返回值如下:

若a<b,则返回一个小于0的值

若a=b,则返回一个0

若a>b,则返回一个大于0的值

7.简述DIV元素和span元素的区别

div是一个块级元素,span是内嵌元素。块元素相当于内嵌元素在前后各加了一个换行。其实,块元素和行内元素也不是一成不变的,只要给块元素定义display:inline,块元素就变成了内嵌元素,同样的,给内嵌元素定义了display:block就变成了块元素了。

8.说几条XHTML规范的内容(至少3条)

  1. 所有的标记都必须有一个相应的结束标记
  2. 所有标签的元素和属性的名字都必须使用小写
  3. 所有的xml标记都必须合理嵌套
  4. 所有的属性值都必须用引号“”括起来
  5. 所有的<和&特殊符号用编码表示
  6. 给所有属性赋一个值

9.对web标准化(或网站重构)知道哪些相关的知识,简述几条你知道的Web标准?

网页主要有三部分组成:结构(Structrue)、表现(presentation)和行为(Behavior)。对应的网站标准也分为三方面:

  1. 结构化标准语言,主要包括XHTML和XML;
  2. 表现标准主要包括css
  3. 行为标准主要包括对象模型(如W3C  DOM)、ECMAScript等

10.localstorage和sessionstorage是什么?区别是什么?

localstorage和sessionstorage一样都是用来存储客户端临时信息的对象,他们均只能存储字符串类型对象

localstorage生命周期是永久的,这意味着除非用户在浏览器提供的UI上清除localstorage信息,否则这些信息将永远存在。

sessionstorage生命周期为当前窗口或标签,一旦窗口或标签被永久关闭了,那么所有通过sessionstorage存储的数据也将被清空。

不同浏览器无法共享localstorage或sessionstorage中的信息。相同浏览器的不同页面可以共享相同的localstorage(页面属于相同的域名和端口),但是不同页面或标签间无法共享sessionstorage。这里需要注意的是,页面及标签仅指*窗口,如果一个标签页包含多个iframe标签他们属于同源页面,那么他们之间是可以共享sessionstorage的。

11.如何获取一个元素的属性值

element.getAttribute('属性名称')

12.举例说明一下什么是事件委托?

事件委托就是利用冒泡的原理,把事件加到父元素或祖先元素上,触发执行效果

    <ul id="ul1">
        <li>111</li>
        <li>222</li>
        <li>333</li>
        <li>444</li>
    </ul>
    <script>
        window.onload = function () { 
                var oUl = document.getElementById('ul1');
                oUl.onclick = function (ev) {
                        var ev = ev || window.event;
                        var target = ev.target || ev.srcElement;
                        if(target.nodeName.toLowerCase() == 'li') {
                                alert(target.innerHTML)
                        }
                }
        }
    </script>

13.json和jsonp的区别?

json返回的是一串json格式数据;而jsonp返回的是脚本代码(包含一个函数调用)

jsonp的全名叫做json with padding,就是把json对象用符合js语法的形式包裹起来以使其他的网站可以请求到,也就是将json封装成js文件传过去。