这些前端大厂面试题你会做吗?每日10题大厂面试题(一)

简介: 这些前端大厂面试题你会做吗?每日10题大厂面试题(一)

前言

       今天是每日10题大厂面试题专栏的第一章,所以有一些地方需要和同学们啰嗦一下,以后每天一更,周末不更,题目都是题主前一天晚上亲自做过并且总结过的题目,因为为了避免浪费大家的时间,一些题主觉得比较容易的题目就不会记录进来,所以不一定正好10题,每一道题的小标题命名将会用括号表明这题的考察点,时间有限的同学可以根据自己的优劣势进行针对性地看

       看这些题目前,最好是把答案遮住,先不看题主的解释,尝试自己写一写,可能对自己的帮助提高会更大


题1(全等/new/基础包装类型)

下面输出的结果是:


640.png


答案:true false false

这道题主要考察可以分成三个部分:

  • 全等:值和类型匹配,才是全等(即===)
  • new:new Number(3)是 使用了new相当于引用了,返回的是一个对象,如果是3 === Number(3)将返回true,这里将进一步说明new在js中的作用:
  1. 创建一个新对象
  2. 将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象)
  3. 执行构造函数中的代码(为这个新对象添加属性)
  4. 返回新对象
  • 基础包装类型:3虽然是基础类型,不是对象,却可以调用Number原型下的方法,这中间又发生了什么呢?对于js中的基础类型,他们都有对应的一个包装类类型,当对基础类型调用方法或者调用对应属性的时候,会调用基础包装类型对这个基础类型进行包装,比如’123’.length发生的过程内部实现如下:


640.png


题2(扩展符,函数参数默认值)

输出什么?


640.png


答案:{name: “Lydia”, age: 22}

这道题主要考察以下两点:

  • 扩展符,使用扩展符复制的对象是一个新的对象,但是并不代表扩展符对对象的操作是深拷贝,扩展符复制对象{…obj}其实是浅拷贝,拷贝层数只拷贝第一层,并不会进一步递归
  • 函数参数默认值,因为changeAge传了参数,所以可以对person进行修改,而changeAgeAndName没有传参数,第一点我们说到扩展符是复制一个新的对象,是浅拷贝但不是原对象,所以对x默认值的修改并不会影响到changeAgeAndName

题3(后置递增++)

输出是什么?


640.png


答案:10, 10

这道题主要考察:

  • 后置递增++,执行increaseNumber的时候,对num的+1操作会在返回数据之后执行,也就是num1会为10,然后将num1传入increasePassedNumber()中,同理,num2也是10

题4(const)

下面哪一项会报错?


640.png


答案:3

这道题主要考察:

  • const,使用了const关键字并不意味着我们都不能再改变这个变量了,如果是基础数据类型,是的,但是对于引用类型,是可以重定义变量中的值的,但是变量本身不可修改,也就是引用的地址不能改变,你不能直接把另一个引用类型赋值给用const修饰的变量

题5(变量提升,严格模式,ReferenceError, TypeError)

下面代码输出是什么?


640.png


这道题主要考察:

  • 变量提升,严格模式,es5下,如果没用var 声明变量,会自动把变量的申明提前到头部,声明为全局变量,如果是在严格模式下,禁止这种操作,并且会报出ReferenceError的错误
  • ReferenceError:ReferenceError(引用错误) 对象代表当一个不存在的变量被引用时发生的错误
  • TypeError: TypeError(类型错误) 对象用来表示值的类型非预期类型时发生的错误。

题7(类的静态函数)

下面代码的输出是什么?


640.png


答案:TypeError

这道题主要是考察:

  • 类的静态函数。colorChange方法是静态的,静态方法仅在创建它们的构造函数中存在,并且不能传递给任何子级。所以调用colorChange的时候会不存在colorChange方法,抛出TypeError

题8 (数组原型的相关方法)

下面哪些方法修改了原数组:

640.png


答案:splice

这道题主要考察:

  • 数组的相关原型方法,数组原型中其实能更改原数组的并不是很多,大部分都是返回一个新数组,能改变原数组的主要是以下几种:push, pop, shift, unshift, reverse, sort, splice,剩下的都不可以修改原数组哦,同时还要注意一点,题主原来也错误认为的部分,对数组进行foreach遍历的过程中,如果修改这个数组是并不会成功的


题10 (for…in)

下面输出是什么?

640.png

答案:“name", “age”

这道题主要考察:

  • for…in,这里题主之前不清楚,惭愧,for…in直接遍历出来的是属性的key,而不是包含key和value的对象
目录
相关文章
|
8天前
|
缓存 前端开发 中间件
[go 面试] 前端请求到后端API的中间件流程解析
[go 面试] 前端请求到后端API的中间件流程解析
|
13天前
|
前端开发 容器
前端面试热门问题--浮动和清除浮动(CSS)
前端面试热门问题--浮动和清除浮动(CSS)
|
1月前
|
缓存 前端开发 JavaScript
高级前端常见的面试题?
【7月更文挑战第11天】 **高级前端面试聚焦候选人的技术深度、项目实战、问题解决及技术趋势洞察。涉及React/Vue生命周期、Redux/Vuex状态管理、Webpack优化、HTTP/HTTPS安全、性能提升策略、PWA、GraphQL、WebAssembly、安全性议题及项目管理。通过回答,展现候选人技术广度与应对复杂场景的能力。**
46 1
|
1月前
|
移动开发 前端开发 JavaScript
前端常见的面试题都有那些?
【7月更文挑战第10天】 前端面试涵盖HTML5新特性、CSS盒模型、JS事件传播、Vue的双向绑定、React生命周期、性能优化策略、浏览器解析流程及安全知识等。例如,HTML5新增video/audio元素、CSS选择器优先级计算、闭包功能、async/await处理异步、Vue通过Object.defineProperty实现数据绑定、React组件生命周期的关键阶段、前端优化如CDN和资源压缩,以及浏览器如何构建渲染树。面试还可能涉及XSS/CSRF防护和框架选择考量。准备面试需全面理解基础概念并结合实践经验。
25 0
|
1月前
|
存储 安全 Java
Java面试题:Java内存管理、多线程与并发框架:一道综合性面试题的深度解析,描述Java内存模型,并解释如何在应用中优化内存使用,阐述Java多线程的创建和管理方式,并讨论线程安全问题
Java面试题:Java内存管理、多线程与并发框架:一道综合性面试题的深度解析,描述Java内存模型,并解释如何在应用中优化内存使用,阐述Java多线程的创建和管理方式,并讨论线程安全问题
18 0
|
1月前
|
存储 并行计算 安全
Java面试题:Java内存管理、多线程与并发框架的面试题解析与知识点梳理,深入Java内存模型与垃圾回收机制,Java多线程机制与线程安全,Java并发工具包与框架的应用
Java面试题:Java内存管理、多线程与并发框架的面试题解析与知识点梳理,深入Java内存模型与垃圾回收机制,Java多线程机制与线程安全,Java并发工具包与框架的应用
36 0
|
1月前
|
JavaScript 前端开发
JS进阶篇(前端面试题整合)(三)
JS进阶篇(前端面试题整合)(三)
23 0
|
4天前
|
存储 前端开发 JavaScript
前端语言串讲 | 青训营笔记
前端语言串讲 | 青训营笔记
9 0
|
2月前
|
JSON 前端开发 JavaScript
前端Ajax、Axios和Fetch的用法和区别笔记
前端Ajax、Axios和Fetch的用法和区别笔记
53 2
|
2月前
|
前端开发 JavaScript 数据库
如何实现前后端分离-----前端笔记
如何实现前后端分离-----前端笔记