前端_面试

7次阅读

共计 1223 个字符,预计需要花费 4 分钟才能阅读完成。

<!– 变量提升 –> <p> 当执行 JS 代码时, 会生成执行环境, 代码不是在全局执行环境中, 就是在函数执行环境中.JS 解释器在解释一段代码时, 第一阶段: 对于 var 会先找出来进行变量提升, 给它们在内存提前开辟好空间, 函数的话会将整个函数存入内存中, 变量只声明并且赋值为 undefined, 第二阶段, 代码执行.</p> <!–bind call apply 区别 –><p>call 和 apply 都可以解决 this 指向, 作用域是相同的, 传参的方式不同.call 可以接收一个参数列表,apply 只接收一个参数数组.bind 方法会返回一个函数, 且通过 bind 实现柯里化.</p> <!– == 与 === 的区别 –> <!– 前端优化 –><p>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;</p>
<!– 前端面试 –><h3>JavaScript</h3><p> 执行上下文, 尤其是词法作用域和闭包. 提升机制, 函数与块级作用域, 以及函数表达式和声明 </p><p> 绑定, 特别是 bind,apply,this 关键字, 对象原型, 构造函数和 mixins, 组合函数和高阶函数.</p><p> 时间委托和冒泡,typeof instanceof 和 object.prototype,toString</p><p> 使用回调,promiss 和 await 和 async 处理异步调用. 使用函数声明和表达式 </p>
<h3>DOM</h3><p> 如何遍历和操作 DOM,包括使用 document.querySelector 和旧浏览器中的 document.getElementsByTagName 选择或查找节点。上下遍历(Node.parentNode,Node.firstChild,Node.lastChild 和 Node.childNodes), 左右遍历(Node.previousSibling 和 Node.nextSibling)在 DOM 树中添加,删除,复制和创建节点,以及切换,删除或添加 CSS 类名等操作。</p>
<h3>CSS</h3><p> 布局 </p>
<h3>HTML</h3><p></p>

正文完
 0