资讯专栏INFORMATION COLUMN

2018驾考宝典面试总结

EdwardUp / 2341人阅读

摘要:大家好,我来自驾考宝典。同时,我在驾考宝典也工作一年多了。驾考宝典算不上一线大公司,但我个人不管是通过工作,平常的积累,还是自主学习,我觉得还是能和大家分享一些更加实战化的面试题。并处理好广大安卓机的兼容性。

大家好,我来自驾考宝典。时间不知不觉进入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>;

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("
    ") for (var i = 0, len = data.length; i < len; i++) { html.push("
  • " + data[i].questionId + "
  • "); } html.push("
") 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、框架暂时就不问了,这次先和各位分享到这,都是本人平常工作当中的部分积累,和各位高大上的面试题比起来,不值一提,喜欢的朋友可以收藏下。欢迎在评论区补充更多实用的坑。我会持续更新,各位下次见~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/93017.html

相关文章

  • 2018驾考宝典面试总结

    摘要:大家好,我来自驾考宝典。同时,我在驾考宝典也工作一年多了。驾考宝典算不上一线大公司,但我个人不管是通过工作,平常的积累,还是自主学习,我觉得还是能和大家分享一些更加实战化的面试题。并处理好广大安卓机的兼容性。 大家好,我来自驾考宝典。时间不知不觉进入2018金九银十,下半年的尾声了,想必很多朋友已经看过网上新出的各大厂面试题。同时,我在驾考宝典也工作一年多了。驾考宝典算不上一线大公司,...

    tomener 评论0 收藏0
  • 个人建议之PHP面试的准备

    摘要:个人也建议不要满足于自己当下所知道的,多去拓展自己,多去学新的东西。作为一个面试者来说,知识点的记忆准备为的是更好的应对面试中技术面中问到的各种问题。 你好,是我琉忆——PHP程序员面试笔试系列图书的作者。 随着越来越多的人开始迈入PHP开发工程师的队列,不管是一个PHP新手还是一个有一两年开发经验的PHPer都不得不去面对找工作前面试这件事。 我现在以个人对面试的经历和见解来全面的对...

    macg0406 评论0 收藏0
  • 面试宝典

    摘要:有谈谈面试与面试题对于前端面试的一些看法。动态规划算法的思想及实现方法帮大家理清动态规划的解决思路以及原理方法前端经典面试题从输入到页面加载发生了什么这是一篇开发的科普类文章,涉及到优化等多个方面。极客学院前端练习题道练习题,面试季练练手。 由数据绑定和排序引入的几个 JavaScript 知识点 在 JavaScript 的数据绑定和做简单的表格排序中遇到的几个知识点 [[JS 基础...

    neu 评论0 收藏0
  • 使用h5新特性,轻松监听任何App自带返回键

    摘要:前言如今新特性新标签新规范等有很多,而且正在不断完善中,各大浏览器商对它们的支持,也是相当给力。接下来我将和各位分享一个特别好用的新特性目前也不是特别新,轻松监听任何自带的返回键,包括安卓机里的物理返回键,从而实现项目开发中进一步的需求。 1、前言 如今h5新特性、新标签、新规范等有很多,而且正在不断完善中,各大浏览器商对它们的支持,也是相当给力。作为前端程序员,我觉得我们还是有必要积...

    paney129 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<