2018驾考宝典口试总结

人人好,我来自驾考宝典。时候不知不觉进入2018金九银十,下半年的尾声了,想必许多朋侪已看过网上新出的各大厂面试题。同时,我在驾考宝典也事情一年多了。驾考宝典算不上一线大公司,但我个人不管是经由过程事情,寻常的积聚,照样自立进修,我以为照样能和人人分享一些越发实战化的面试题。主假如事情当中运用的相干手艺和碰到的坑,愿望以此共勉。

Q: JS 部份

1、什么是自实行函数,它的长处是什么?
!function(){}()被称为”自实行函数”,优点是把一切变量都运行在函数内部,能够防止发生全局变量,而”!”的作用是使它和上面的代码阻隔,不会遭到其影响。

2、求1-100里7的倍数及包括7的一切数字,末了安排数组中

function calculate() {
        var arr = [];
        var reg = /7/;
        for (var i = 1; i <= 100; i++) {
            reg.test(i) || (i % 7 == 0) ? arr.push(i) : arr;
        }
        return arr;
}
console.log(calculate());

更精简版是?

3、为何0.1 + 0.2 != 0.3
js没有float型没有int型 浏览器剖析小数时 会转换成二进制 而小数转换成二进制时 js就会失精度 0.1+0.2会得0.30000004背面无限个小数 所以准确的做法是 parseFloat((0.1 + 0.2).toFixed(10))

4、将数组举行排序,比方

var arr = [ { name : 'a', value: 21}, { name : 'b', value: 10}, { name : 'c', value: -1}, { name : 'd', value: 1}];

该怎样写;若用箭头函数输出,() => {} 和() => ()区分是什么,各将输出什么。
假如数组是如许

var arr = [5,20,40,15];

用箭头函数输出,() => {} 和() => (),又各将输出什么。为何没有完成我们想要的排序,该怎样做。

var demo = arr.sort((a,b) => (
    a - b
    )
);
console.log(demo);

假如是二维数组

var arr = [ [30, -5, 0, 5], [100, 50, 20], [1, 15, 10] ];

又该怎样做。

for(var i = 0; i < arr.length; i++){
    arr[i].sort(function(a,b){
        return a - b;
    });
}
console.log(arr);

5、怎样将这么一组数据

var arr = [“123@qq.cn”,”zhangsan@163.cn”];转化为<123@qq.cn>;<zhangsan@163.cn>

var str = '';
for (var j = 0; j < arr.length -1; j++) {
    str += '<' + arr[j] + '>' + ";"
}
str += '<' + arr[arr.length -1] + '>'
console.log(str);

6、运用js婚配雷同的questionId,三个雷同的变绿色,四个赤色,并从新衬着至页面中。

var data = [{
            projectId: 3,
            questionId: 1124900
        },
        {
            projectId: 2,
            questionId: 1124900
        },
        {
            projectId: 1,
            questionId: 1124900
        },
        {
            projectId: 1,
            questionId: 1120900
        },
        {
            projectId: 3,
            questionId: 1119600
        },
        {
            projectId: 2,
            questionId: 1119600
        },
        {
            projectId: 3,
            questionId: 1119500
        },
        {
            projectId: 2,
            questionId: 1119500
        },
        {
            projectId: 1,
            questionId: 1119500
        },
        {
            projectId: 3,
            questionId: 836200
        },
        {
            projectId: 2,
            questionId: 836200
        },
        {
            projectId: 3,
            questionId: 836100
        },
        {
            projectId: 2,
            questionId: 836100
        }
    ]

var obj = {};
var newData = data.length;
for (var i = 0; i < newData; i++) {
    if (obj[data[i].questionId]) {
        obj[data[i].questionId] += 1;
    } else {
        obj[data[i].questionId] = 1;
    }
}

for (var i = 0; i < newData; i++) {
    for (var n in obj) {
        if (data[i].questionId == n && obj[n] == 4) {
           data[i].color = "red";
        } else if (data[i].questionId == n && obj[n] == 3) {
           data[i].color = "green";
        }
    }
}

var html = [];
html.push("<ul>")
for (var i = 0, len = data.length; i < len; i++) {
    html.push("<li id=" + data[i].projectId + " style='color: " + data[i].color + "'>" + data[i].questionId + "</li>");
}
html.push("</ul>")
var conDom = document.getElementById("xxx");
conDom.innerHTML = html.join("");

7、用起码的原生JS完成笔墨超越…显现。

var oBox = document.getElementById('box');
var demoHtml = oBox.innerHTML.slice(0, 10) + '...';
oBox.innerHTML = demoHtml;

8、怎样将猎取的数据,内里分别是1 2 3 … 10、102等,转化为对应的一、二、三…十、一百零二

9、挪动端罕见的字数统计,不管是递增或递减,同时兼容pc端的复制、粘贴、打消等操纵,及时统计,以及支撑挪动端的emoji脸色的统计,该怎样完成。
input propertychange 事宜

10、define和require有什么区分。
简言之,define定义模块,require加载模块,模块依靠声明是很主要的一步。

11、dom我们都晓得,bom是什么。
BOM是浏览器对象模子,DOM是文档对象模子,前者是对浏览器自身举行操纵,而后者是对浏览器(可算作容器)内的内容举行操纵。比方window.open()。

12、怎样文雅地用原生JS完成textarea跟着内容增添,高度自动增添

13、怎样监听app自带的返回键,以及安卓机里物理返回键。产物须要前端编写一个h5,内里有多少audio或video,不与客户端交互。当用户点击app自带返回键,怎样停息正在播放的文件。并处置惩罚好广大安卓机的兼容性。

14、将一切的html内容一键转化为图片,有完成的也许思绪吗。html2canvas.js插件bug太多,是不是有替换计划。

15、支付宝里的芝麻信用,现在是静态的,怎样完成让小白点跟着对应的分数、案牍从零跳转到对应的位置。

16、挪动端轮播图,比方swiper3.js(现在是4),完成的道理是什么。当swiper.js有兼容性问题时,是不是有轻量级替换计划。

17、iscroll.js的替换计划有哪些,优缺点是什么。

18、中英文一键切换,前端该怎样完成。

19、模板衬着引擎用过吗。和传统的拼接字符串比拟,优缺点是什么。

20、推断JS数据范例有哪些体式格局,它们的区分是什么。

21、什么是防抖和撙节。

22、耽误加载有哪些体式格局,什么是壅塞形式。

23、JSON全称是什么,JSON.parse()和JSON.stringify()区分是什么。

24、挪动端点击穿透、转动穿透是不是相识,是不是处置惩罚过。

25、挪动端点击耽误300ms,怎样处置惩罚。

26、click和input的区分。现实运用场景,当用户点击input要转变type的范例,你会怎样处置惩罚。

27、$(document).on(“click”,function(){})和$(document).on(“click”,”.xxx”,function(){})区分。

28、jQ的on、bind、live、delegate各有什么异同。

29、挪动端和PC端jQ版本的挑选,是不是有差别,假如有,对应的范例、缘由是什么。

30、雅虎军规35条(前端机能优化)。

31、什么是回流和重绘。

32、let和var的区分。

33、原生js完成图片上传,有哪些注意事项。

规划和css、框架临时就不问了,此次先和列位分享到这,都是本人寻常事情当中的部份积聚,和列位嵬峨上的面试题比起来,何足道哉,喜好的朋侪能够珍藏下。迎接在批评区补充更多有用的坑。我会延续更新,列位下次见~

    原文作者:WckY
    原文地址: https://segmentfault.com/a/1190000013450992
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞