总结2
1)谈谈前端工程化的理解
总结一下前端工程化就是为了简化开发流程,并行开发,互不影响且能够方便合并整个项目。核心目标就是建立一种开发环境,提升整体的开发效率。
- 并行开发,缩短开发周期
- 快速定位问题,迅速解决问题
- 部署可以动静分离,简化流程,提升程序的健壮性
2)说说js中数组有哪些方法开始说起。哪些是改变原数组,哪些不会改变呢?
JavaScript中创建数组有两种方式,第一种是构造函数的方式,第二种是字面量的方式。
一种是直接创建了一个字符串,一个是调用字符串的构造函数创建字符串对象然后再创建这个字符串,中间多了一个创建对象的过程。所以为了效率起见,推荐使用字面量的方式创建。
数组操作
1.改变原数组:
- push() pop()
- shift() unshift()
- sort() reverse()
- splice()
2.原数组不变:
- concat() join()
- slice() map()
- indexOf() lastIndexOf()
- filter() every()
- some() reduce()
- reduceRight()
substring slice区别 ,substring() 不接受负的参数。
http://blog.alanwu.site/2020/03/18/jsArrayAPI/
浏览器按下回车发生了什么
- IP地址查询
- 建立TCP连接
- 服务器处理
- 响应返回
- 页面渲染
重绘与回流影响的是两棵树的解析过程,那么什么是重绘和回流呢?
- 重绘
当我们修改了DOM的一些样式,比如修改文字颜色或者背景色,这些浏览器是不需要重新计算几何属性的,直接绘制新的样式。
- 回流
当我们修改DOM的几何属性,一般有修改元素的宽高等,浏览器就会重新计算位置,然后再进行重新绘制。
那么我们该如何避免呢?
- 减少使用绝对定位,使用transform代替
- 减少使用display,使用visibility代替
- css样式避免节点嵌套过多,匹配规则是从右往左
let const var
- var存在变量提升,能在声明前使用。其他两个存在暂时性死区,不能声明前使用
- let 和 const基本一致,后者不能再次赋值
箭头函数和普通函数的区别,见链接
https://www.softwhy.com/article-9330-1.html
一.外形不同:
箭头函数使用箭头定义,普通函数中没有。
二.箭头函数全都是匿名函数:
普通函数可以有匿名函数,也可以有具名函数。
三.箭头函数不能用于构造函数:
普通函数可以用于构造函数,以此创建对象实例。
四.箭头函数中this的指向不同:
在普通函数中,this总是指向调用它的对象或者,如果用作构造函数,它指向创建的对象实例。
五.箭头函数不具有arguments对象:
每一个普通函数调用后都具有一个arguments对象,用来存储实际传递的参数。
但是箭头函数并没有此对象。
六.箭头函数不具有prototype原型对象。
Node.js是一个环境,一个可以运行在服务端、跨平台的JavaScript环境。Node.js采用的是Google开发的V8运行代码,使用事件驱动、非阻塞以及异步IO模型,可以大幅度优化应用程序的传输量和规模。
所谓的特点,就是Node.js是如何解决服务器高性能瓶颈的问题。总结一下Node的特点主要有以下4个:
- 异步I/O
- 事件与回调函数
- 单线程
- 跨平台
优化方法是多方面的内容,主要有以下几个方面:
- 加载优化
- CSS优化
- 图片优化
- 脚本优化
- 渲染优化