每日前端签到(第二十天)

第二十天(2018-08-25)

html:js放在html的和有什么区别

css:说说浏览器解析CSS选择器的过程?

js:你对new操作符的理解是什么?手动实现一个new方法

软技能:前端工程师这个职位你是怎么样理解的?聊聊它的前景?

第一题:
在浏览器解析HTML中的时候,如果在head标签中遇到了script标签并且是同步执行的,那么就会影响文档的加载,如果引入的过多的同步脚本文件
那么加载会变得非常怪异且卡顿;但是放在body中,根据script标签,从上到下的解析顺序,它不会对html进行阻塞;

那么在一般业务中我们如何做呢?一般情况下是在网站中,同步在head加载的脚本通常是业务必须的,比如说我要注册一个window对象,或者用document.write写入一些内容,或者是业务需求,我们可以用head来做加载,
就是意味着没有这个脚本,下面的文档走不下去;
那么我们也可以在头部给script标签加入async的属性,表示它是异步加载的脚本,不会对html进行阻塞,这也是大部分网站的做法;
除了上面的情况我们都需要把js引入到底部或者body中合适的位置,比如说我的jq从那个html代码进行了使用,那么就在它之前均可;

第二题:
浏览器解析CSS选择器的顺序是从右到左的,而不是直观上的从左到右。
之所以是从右到左,是因为选择器一般也是有规律的,一般选择器的最右边是最宽泛的,比如div标签等,而选择器的最左边一般是最具体的,比如属性等。所以从最左边开始解析有助于能一开始就快速的判断出大部分标签是否是潜在的符合要求的目标

第三题:

function _new(Fn, ...arg) {
const obj = Object.create(Fn.prototype);
const obj1 = Fn.apply(obj, arg);
return obj1 instanceof Object ? obj1 : obj;
}


第四题
通过各种终端来向用户展示数据,或者给用户提供一些和后台的交互接口。
前景:首先,在我看来,一切和用户交互的终端都可以属于前端。并且随着现在跨端开发框架的兴起,比如Electron框架等,也使得前端的那套开发技术栈以及开发流程可以复制到桌面端来,使得前端的范畴越来越广泛。
并且,随着AR,VR技术的兴起,手机app中应用了大量的3维场景来提高用户体验,比如手机app上看房,看车,甚至是看一个城市的街景,都已经有了3D的场景,并且用户还能进行简单的操作。而这些都对前端提出了更高的要求

你可能感兴趣的:(每日前端签到(第二十天))