专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

第七篇 前端基础十问,看看你是否真的掌握扎实?

ins518 2025-07-06 12:43:19 技术文章 4 ℃ 0 评论


常用的浏览器内核有哪些

行内元素和块元素有什么区别

清除浮动有哪些方法

如何解决JavaScript中的this

原始类型与引用类型有什么区别

如何深度克隆一个对象

数组去除重复元素有哪些方法

同步与异步的区别

get请求与post请求的区别

跨域请求有哪些方案


注:问题来源抖音的晚舟报告,我一看他的发际线就知道他肯定是资深程序员,说的面试题肯定有用!


  1. 常用的浏览器内核有哪些

我知道的有IE内核Trident、火狐浏览器的内核Gecko、谷歌浏览器的内核WebKit、谷歌chrome和网络Opera浏览器的Blink内核。

  1. 行内元素和块元素有什么区别

块元素独占一行,可设置宽高,如<dic>和<p>标签。行内元素不独占一行,根据内容本身调整宽高,如<span>和<a>标签。

  1. 清除浮动有哪些方法

有三种方法,第一是给父元素设置固定高度,但这种方法不灵活,内容增多时可能会出现问题;第二是在浮动元素后添加一个空的 <div> 标签,设置 clear: both ,但会增加额外的标签;第三是给父元素添加 overflow: hidden ,可以触发BFC(块级格式化上下文)来清除浮动,但可能会隐藏超出父元素的内容。

  1. 如何解决JavaScript中的this

有两种方法,第一可以使用箭头函数,它没有自己的 this ,会继承外层作用域的 this 。

第二使用 bind 、 call 、 apply 方法来显式绑定 this 的值。 bind 会返回一个新函数, call 和 apply 会立即执行函数,且 call 和 apply 的区别在于传参方式不同, call 是逐个传参, apply 是传数组。

  1. 原始类型与引用类型有什么区别

原始类型包括 number 、 string 、

boolean 、 null 、 undefined 等,它们存储的是具体的值,在栈内存中分配空间。

引用类型如 Object 、 Array 、 Function

等,存储的是地址,在栈内存中存储地址,实际的值在堆内存中,当把一个引用类型变量赋值给另一个变量时,传递的是地址,而不是值本身。

  1. 如何深度克隆一个对象

两种方法,第一可以使用

JSON.parse(JSON.stringify(obj)) ,但这种方法有局限性,不能克隆函数、正则表达式等特殊对象。

第二,手动实现深度克隆,通过遍历对象的属性,判断属性的类型,如果是原始类型直接赋值,如果是引用类型则递归克隆。

  1. 数组去除重复元素有哪些方法

两种方法,第一,使用 Set 数据结构, Set 中的元素是唯一的,可以将数组转换为 Set 再转换回数组,如 [...new Set(arr)] 。

第二,遍历数组,使用 indexOf 或

includes 方法判断元素是否已存在于新数组中,不存在则添加到新数组。

  1. 同步与异步的区别

同步代码是按照顺序依次执行的,只有前一个任务执行完,才会执行下一个任务。

异步代码不会阻塞后续代码的执行,它会在合适的时候被执行,比如 setTimeout 设置的回调函数会在指定时间后执行,而不会影响其他代码的执行。

  1. get请求与post请求的区别

get 请求通常用于获取数据, post 请求用于提交数据,如提交表单。get 请求的参数会显示在地址栏。

  1. 跨域请求有哪些方案

使用 JSONP ,利用 <script> 标签的 src 属性不受跨域限制的特点,通过动态创建 <script> 标签来实现跨域请求,但只支持 get 请求。

服务器设置 CORS (跨域资源共享),在响应头中添加允许跨域的相关信息,让浏览器允许跨域请求。

使用代理服务器,将跨域请求转发到同域的代理服务器,由代理服务器再请求目标服务器,然后将结果返回给前端。




OK,今天就到这里了,明天见

关注我,带你了解更多前端知识[来看我]

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表