前端面试题(12)答案版

1. H5的新特性?

   1) 更加语义化的标签,如<header>、<nav>、<article>等,便于网页结构的表达。

   2) 新的多媒体标签,如<video>和<audio>,支持本地视频和音频的播放。

   3) 本地存储API,如localStorage和sessionStorage,用于在客户端保存数据。

   4) 离线web应用程序缓存,允许网页在断网情况下继续访问。

   5) 地理位置API,可以获取用户的地理位置信息。

   6) 拖放API,支持在网页中进行拖放操作。

   7) Canvas 2D绘图API,可以在网页中动态绘制图形。

 

2. 事件循环(EventLoop)?

   1) 检查宏任务队列(如setTimeout)中是否有可执行的任务,如果有则执行。

   2) 执行完所有宏任务后,检查微任务队列(如Promise.then)是否有待执行的任务,依次执行。

   3) 执行完微任务后,如果有需要重新渲染的DOM变化,则进行页面重新渲染。

   4) 重复上述步骤,进入下一个事件循环。

 

3. setTimeout和setImmediate执行顺序?

   - 1)setTimeout:是宏任务,会被添加到宏任务队列中,在事件循环的宏任务阶段执行。

   -2) setImmediate:是Node.js中的特有API,属于微任务,会被添加到微任务队列中,在事件循环的微任务阶段执行。

   -3)总结:所以在Node.js环境中,setImmediate会先于setTimeout执行。

 

4. 环境变量配置?

   可以通过process.env来访问和设置环境变量。在不同的操作系统上,设置环境变量的方式有所不同,比如在Windows上使用set命令,在Unix/Linux上使用export命令。在前端开发中,通常会在构建过程中注入一些环境变量,比如API接口地址、版本号等。

 

5. Git工作流?

   1) 主干开发模型(Git Flow):使用master/develop/feature等分支。

   2) GitHub Flow:以master分支为主,每个功能单元一个分支,pull request合并。

   3) GitLab Flow:在GitHub Flow的基础上,增加了环境分支。

   4)具体流程包括:创建分支 -> 提交修改 -> 推送分支 -> 发起合并请求 -> 代码审查 -> 合并到主干。

 

6. 登录工作流?

   1) 传统的表单提交方式,后端返回session ID,前端保存。

   2) 基于token的认证,前端获取token并保存在cookie或localStorage中。

   3) 单点登录(SSO),通过第三方认证服务完成登录。

   4) 基于OAuth2.0的认证授权,如微信登录、Github登录等。

 

7. JavaScript中的堆栈?

   - 1)值类型包括number、string、boolean、null、undefined、symbol,存储在栈内存中。

   -2) 引用类型如object、array、function,存储在堆内存中,变量只是保存了对象的引用。

   -3)这种区别会影响到变量的赋值和比较行为。在前端面试中,考察这些基本概念是非常常见的。

 

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法提供完整的2024前端面试题答案,因为这些问题是根据具体公司和岗位需求而定的,而且在2024年之前还有很长的时间,技术可能会有所变化。但是我可以给你提供一些常见的前端面试题答案作为参考: 1. 什么是盒模型?盒模型有哪些属性? 答:盒模型是指在网页中,每个元素都被看作是一个矩形的盒子,包括内容区域、内边距、边框和外边距。盒模型的属性有width、height、padding、border和margin。 2. 请解释一下CSS选择器的优先级。 答:CSS选择器的优先级是用来确定当多个规则应用于同一个元素时,哪个规则将会被应用。优先级从高到低依次为:!important > 内联样式 > ID选择器 > 类选择器/属性选择器/伪类选择器 > 元素选择器/伪元素选择器。 3. 请解释一下什么是闭包,并举一个例子。 答:闭包是指函数可以访问其词法作用域以外的变量。一个简单的闭包例子是: ``` function outer() { var x = 10; function inner() { console.log(x); } return inner; } var closure = outer(); closure(); // 输出10 ``` 4. 请解释一下什么是跨域,以及如何解决跨域问题。 答:跨域是指在浏览器中,一个域下的网页获取另一个域下的资源时遇到的限制。常见的解决跨域问题的方法有:JSONP、CORS、代理服务器等。 5. 请解释一下什么是响应式设计。 答:响应式设计是指网页能够根据不同设备的屏幕尺寸和分辨率进行自适应布局和显示,以提供更好的用户体验。常见的响应式设计方法有使用媒体查询、弹性布局和流式布局等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值