内容简介:<!--变量提升--><p>当执行JS代码时,会生成执行环境,代码不是在全局执行环境中,就是在函数执行环境中.JS解释器在解释一段代码时,第一阶段:对于var 会先找出来进行变量提升,给它们在内存提前开辟好空间,函数的话会将整个函数存入内存中,变量只声明并且赋值为undefined,第二阶段,代码执行.</p>
当执行JS代码时,会生成执行环境,代码不是在全局执行环境中,就是在函数执行环境中.
JS解释器在解释一段代码时,第一阶段:对于var 会先找出来进行变量提升,给它们在内存提前开辟好空间,函数的话会将整个函数存入内存中,变量只声明并且赋值为undefined,第二阶段,代码执行.
call和apply都可以解决this指向,作用域是相同的,传参的方式不同.call可以接收一个参数列表,apply只接收一个参数数组.bind方法会返回一个函数,且通过bind实现柯里化.
1.css样式表放在页面头部Header内且Link链式接入,javaScript放在底部body结束标签前避免堵塞.
2.代码压缩:html/css/js/图片进行压缩,图片预加载,懒加载,图片加载使用TinyPNG.
3.减少DOM元素数量且减少使用:after等伪类的使用,有效避免页面重绘/重排.
4.不常变动的静态资源采用CDN分发,img标签设置高宽,减少页面重排/重绘,使用WebP格式图片,对原图进行98%压缩.
5.域名拆分:增加了浏览器请求的并发数,让浏览器能同时发起更多的请求,解决默认携带的Cookie问题,减少数据传输字节.
通常分为三类:前端类:业务代码本身html,css,js,图片等. 静态类:CDN资源类 动态类:后端API接口类.
6.合理使用dns-prefetch, prefetch,preload,defer,async;
JavaScript
执行上下文,尤其是词法作用域和闭包.提升机制,函数与块级作用域,以及函数表达式和声明
绑定,特别是bind,apply,this关键字,对象原型,构造函数和mixins,组合函数和高阶函数.
时间委托和冒泡,typeof instanceof和object.prototype,toString
使用回调,promiss和await和async处理异步调用.使用函数声明和表达式
DOM
如何遍历和操作DOM,包括使用document.querySelector和旧浏览器中的document.getElementsByTagName选择或查找节点。上下遍历(Node.parentNode,Node.firstChild,Node.lastChild和Node.childNodes),左右遍历(Node.previousSibling和Node.nextSibling)在DOM树中添加,删除,复制和创建节点,以及切换,删除或添加CSS类名等操作。
CSS
布局
HTML
以上所述就是小编给大家介绍的《前端_面试》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Inside Larry's and Sergey's Brain
Richard Brandt / Portfolio / 17 Sep 2009 / USD 24.95
You’ve used their products. You’ve heard about their skyrocketing wealth and “don’t be evil” business motto. But how much do you really know about Google’s founders, Larry Page and Sergey Brin? Inside......一起来看看 《Inside Larry's and Sergey's Brain》 这本书的介绍吧!