-
H5的新特性?
-
更加语义化的标签,如
、、等,便于网页结构的表达。 -
新的多媒体标签,如和,支持本地视频和音频的播放。
-
本地存储API,如localStorage和sessionStorage,用于在客户端保存数据。
-
离线web应用程序缓存,允许网页在断网情况下继续访问。
-
地理位置API,可以获取用户的地理位置信息。
-
拖放API,支持在网页中进行拖放操作。
-
Canvas 2D绘图API,可以在网页中动态绘制图形。
-
-
事件循环(EventLoop)?
-
检查宏任务队列(如setTimeout)中是否有可执行的任务,如果有则执行。
-
执行完所有宏任务后,检查微任务队列(如Promise.then)是否有待执行的任务,依次执行。
-
执行完微任务后,如果有需要重新渲染的DOM变化,则进行页面重新渲染。
-
重复上述步骤,进入下一个事件循环。
-
-
setTimeout和setImmediate?
-
setTimeout是宏任务,会被添加到宏任务队列中,在事件循环的宏任务阶段执行。
-
setImmediate是Node.js中的特有API,属于微任务,会被添加到微任务队列中,在事件循环的微任务阶段执行。
-所以在Node.js环境中,setImmediate会先于setTimeout执行。
-
-
环境变量配置?
可以通过process.env来访问和设置环境变量。在不同的操作系统上,设置环境变量的方式有所不同,比如在Windows上使用set命令,在Unix/Linux上使用export命令。在前端开发中,通常会在构建过程中注入一些环境变量,比如API接口地址、版本号等。
-
Git工作流?
-
主干开发模型(Git Flow):使用master/develop/feature等分支。
-
GitHub Flow:以master分支为主,每个功能单元一个分支,pull request合并。
-
GitLab Flow:在GitHub Flow的基础上,增加了环境分支。
4)具体流程包括:创建分支 -> 提交修改 -> 推送分支 -> 发起合并请求 -> 代码审查 -> 合并到主干。
-
-
登录工作流?
-
传统的表单提交方式,后端返回session ID,前端保存。
-
基于token的认证,前端获取token并保存在cookie或localStorage中。
-
单点登录(SSO),通过第三方认证服务完成登录。
-
基于OAuth2.0的认证授权,如微信登录、Github登录等。
-
-
JavaScript中的堆栈?
-
1)值类型包括number、string、boolean、null、undefined、symbol,存储在栈内存中。
-
2)引用类型如object、array、function,存储在堆内存中,变量只是保存了对象的引用。
-
3)这种区别会影响到变量的赋值和比较行为。在前端面试中,考察这些基本概念是非常常见的。
-