2019 CETV 前端笔试题考点(3月4日更新)
前端知识多、计算机基础少量
选择题25道(混杂多选单选)
还记得住的题目我念一些
- web安全方面,考了XSS, CSRF, DNS攻击等攻击方式和防御手段,帖子了解一下,https://www.jianshu.com/p/6ddcf2ab53f1(随便找到,可能不全)
- node.js考了很多异步的问题、promise、settimeout等的执行顺序,考了很多道题,在这里强推一个好帖子,讲关于这个异步的原理(也就是event loop事件循环的原理),就是靠着视频里面讲的这个模型ko掉了所有这类题!!帖子了解一下(要***) https://www.youtube.com/watch?v=8aGhZQkoFbQ
- css 单位,几个我比较少见的单位了解一下(vw、pt等) https://www.w3.org/Style/Examples/007/units.zh_CN.html(帖子随便找的不喜勿喷)
- css 块级元素和行内元素,下列那些属于dom节点,position的值有哪些,js一元操作符。。。
- js原型级原型链、各种创建对象的方式,红宝书里面都有啦记得一定要看。http://product.dangdang.com/22628333.html
- 数组对象的常用操作 array.map/array.reduce/array.filter 这几个都真的很好用啊要get起来!!https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array
- 好像计算机网络也考了一些,我忘了,好了走了拜拜。
编程题:
- 给一个node节点对象/字典,里面有孩子节点,广度遍历出所有节点的name,给的node数据类型大概是{name: xxx,children: [{name: xxx,children:xxx},{name: xxx,children:[]},....]}
- 给一个数组,里面存放着多个对象,对象内容是节点id,节点父节点的id,节点的值,比如[{parentId: 0, id: 1, value: 5}, {parentId: 0, id: 3, value: 4}.....],要构造出一颗树并以{ id: xxx,value: xxx,children: [{id:xxxx,value:xxx,children:[xxxx]},{.....}]}形式输出。
- 个人认为考点主要是树的广度遍历深度遍历和反过程,细节的话是考数组对象的深拷贝(就是遍历到最里层),等我把代码完善了再更新上来。
关于event loop 执行原理,也就是所有异步api 的执行原理,有些同学翻不了墙于是我将原理核心截成gif.(gif看不清的话下面有详细图) http://cdn.atatakai.cn/processall.gif 动图地址

stack :这个stack就是主程序的堆栈,程序按顺序入栈,遇到非异步操作就直接执行,遇到异步操作(比如 promise、settimeout、ajax 网络请求等)就丢进web api那个堆堆里面。
webapi: 这个web api堆堆 里面的东西执行完了(比如promise 对象 resolve了,网络请求success了, settimeout到时间了),就把成功/失败回调函数丢到task queue堆堆里面。
task queue: 这个task queue 会等到stack里面的程序语句都执行完了,就把自己堆堆里面的回调函数丢到stack里面去执行。
!!这就是为啥settimeout设置的时间为0,但是回调函数却不一定会立刻执行的原因!!
因为异步宝宝们要被堆堆们丢来丢去,等来等去。这些io操作可比程序执行的效率低多了。>,<