V8 是一个由 Google 开发的开源 JavaScript 引擎,用于执行 JavaScript 代码。以下是 V8 引擎的简要代码解析流程: 词法分析(Lexical Analysis): JavaScript 代码首先被传递给 V8 的词法分析器,也称为词法分析器或扫描器。 词法分析器负责将源代码分割成一个个的令牌(token),这是代码的最...
v8引擎代码解析流程
http缓存机制
http缓存机制 强缓存 Cach-Control (服务端设置) 在 Response Headers 设置 Cach-Control,例如 Cache-Control: max-age=31536000(单位是秒) 它有三个值:max-age、no-cach、no-store、private、public 协商缓存 Last-Modified 和 Etag, 304 状...
css如何开启硬件加速
在CSS中,开启硬件加速可以通过使用一些特定的CSS属性来实现。硬件加速可以提高页面渲染性能,特别是在处理动画和复杂的图形时。以下是一些常用的CSS属性,可以帮助开启硬件加速: transform: translateZ(0); .example { transform: translateZ(0); } transform: translate3d(...
ts常见面试题
ts 泛型函数 声明一个方法两个参数,第一个参数为对象,第二个参数是第一个参数中的某个key 可以使用 TypeScript 的泛型来定义一个方法,该方法接受一个对象和一个表示对象属性的键(key)。以下是一个示例: // 定义泛型方法 function getValueByKey<T, K extends keyof T>(obj: T, key: K): T[K] { ...
JavaScript图片懒加载
图片懒加载 SDK 滚动节流 图片进入视图内进行加载(elem.getBoundingClientRect()) 图 top 和 window.innerHeight 代码示例: <script src="https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script&...
JavaScript基本知识
基本类型与引用类型(栈 stack / 堆 heap) 当我们定义值类型时(基本类型),他是存储在内存 栈 stack, 引用类型的值它存储在 堆 heap 中 const obj = { name: '饼干' city: '北京' } 深拷贝 示例代码: function deepClone(obj = {}) { if (typeof obj !== '...
javascript手写实现 call apply bind
实现 call Function.prototype.myCall = function(context, ...args) { // 如果 context 为 null 或 undefined,则设置为全局对象(浏览器环境下为 window) context = context || window // 将当前调用 myCall 方法的函数设置为传入的函数(当前的...
RestfulAPI设计
Restful API 常用常 method 以一个博客项目为例,实现“增删改查”功能,使用 RestfulAPI 的接口设计如下: 新增博客 url: http://xxx.com/api/blog/100 (100 为博客的 id) method: POST 删除博客 url: http://xxx.com/api/blog/100 (100 为博客的 id) ...
vue常见考题
vue组件通讯方式(全面) props 和 $emit 自定义事件(event.$on()/event.emit())。 注意: vue2:new Vue() 就是 event。 vue3 引入第三方的自定义事件 event-emitter $attr $parent $refs provide/inject Vuex 自定义事件(Vue) 可以先引入一...
react面试题
函数组件和 class 组件的区别 纯函数,输入 props,输出 JSX 没有实例,没有生命周期,没有 state 不能扩展其他方法 什么是受控组件? 表单的值受 state 控制(状态驱动视图) 需要自行监听 onChange, 更新 state 何时使用异步组件 加载大组件 路由懒加载 多个组件有公共逻辑,如何抽离 高阶组件(HOC)...