学校里有前端课吗,怎么想到去做前端
项目挑一个介绍
怎么学前端的
——————————
1. js的数据类型
(boolean,number,string,null,undefined,symbol,bigint)
1.1 null是对象吗,typeof null返回是什么,如何正确判断null类型。
(不是;”object”;Object.prototype.toString.call(null))
2. 看输出
typeof Boolean(1)
typeof new Boolean(1)
1 == ‘1’
1 == [‘1’]
("boolean”;”object”;”true”;”true”)
2.1解释为什么第三个和第四个答案是true
(两边值类型不同的时候,要先进行类型转换,再比较)
3.介绍一下闭包
(闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。
所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。)
3.1看输出
var a = 100;
function create(){
var a = 200;
return function(){
console.log(a + ‘create’);
}
}
var fn2 = create();
fn2();
(200create)
3.2看输出
for(var i = 0; i < 5; i++){
setTimeout(()=>{
console.log(i);
},1000)
}
(5,5,5,5,5)
3.2.1解释为什么是这样的输出
(这是因为setTimeout是异步执行,每一次for循环的时候,setTimeout都执行一次,但是里面的函数没有被执行,而是被放到了任务队列里,等待执行。只有主线上的任务执行完,才会执行任务队列里的任务。也就是说它会等到for循环全部运行完毕后,才会执行fun函数,但是当for循环结束后此时i的值已经变成了5,因此虽然定时器跑了5秒,控制台上的内容依然是5。)
3.2.2用闭包的方式改写函数
参考答案:
for (var i = 0; i < 5; i++) {
(function (i) {
setTimeout(() => {
console.log(i);
}, 1000)
})(i);
}
4.编程题
一个字符串只包括’(‘,’)’,’[‘,’]’,’{‘,’}’ 6种字符,判断这些括号是否正确闭合
(面试官小姐姐提示:可以考虑使用栈。遍历完字符串后需要对栈判空)
4.1
if(char === ‘(‘ || char === ‘[‘ || char === ‘{‘ ){
…
}
这个判断条件有些繁杂,怎么更改
(把这些放入数组,用Array.includes())
5.tcp和udp的区别,使用场景
https://segmentfault.com/a/1190000021815671
5.1直播用tcp还是udp
6.输入url到页面渲染的流程
每一步都熟记:https://zhuanlan.zhihu.com/p/133906695
6.1DNS查询是递归查询吗,使用tcp还是udp实现的
DNS的迭代查询和递归查询:
https://zhuanlan.zhihu.com/p/61394192
为什么DNS查询使用udp
https://draveness.me/whys-the-design-dns-udp-tcp/
6.2生成DOM树和CSSOM树之后怎么生成渲染树
6.3重绘、回流
6.4不考虑缓存和修改协议的情况下,可以通过哪些方式来最快地渲染页面呢,就是我们常说的关键渲染路径
https://developer.mozilla.org/zh-CN/docs/Web/Performance/Critical_rendering_path
7.vue的双向绑定,怎么使用,原理
8.vue3相对于vue2做的性能优化
https://segmentfault.com/a/1190000037492555
9.v-show和v-if的区别
10.computed和watch的区别
10.1 computed和watch支持对象的写法吗,就是说可以写一些get和set时候触发的
https://segmentfault.com/a/1190000012948175
11.讲一下虚拟DOM,为什么虚拟DOM比原生DOM快
11.1 虚拟DOM的变化是怎么去对比的呢
12.var let const的区别
12.1以下代码是否可行
let a = {}; a=1;
const b = {}; b=1;
const c = {}; c.a = 1;
全部评论
(5) 回帖