[ 面试题 ] JavaScript 基础面试题总结
2022/2/9 11:12:33
本文主要是介绍[ 面试题 ] JavaScript 基础面试题总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、JavaScript的基本类型有哪些?引用类型有哪些? null和 undefined 的区别?(必会)
基本数据类型:1、Number、2、String、3、Boolean、4、null、5、undefined、6、Symbo、7、BigInt
引用数据类型:Function、Object对象、Array数组
2、如何判断 JavaScript 的数据类型?
回答:Object.prototype.toString 和typeof ,例如Object.prototype.toString.call(1)如果是数字,返回的就是object number,如果是字符串返回的就是object String
判断方法 :type of 和 Object.prototype.toString
3、简述创建函数的几种方式?(必会)
第一个种方法是声明函数function 函数名
第二种是函数表达式var 函数名=function
第三种是函数对象的方式var 函数名=new function
4、Javascript创建对象的几种方式?(必会)
1、利用字面量创建对象 var o = {}
2、利用new Object创建对象 var obj = new Object ()
3、利用构造函数创建对象
5、请指出JavaScript 宿主对象和原生对象的区别?(必会)
原生对象
“独立于宿主环境的 ECMAScript 实现提供的对象”
包含:Object、Function、Array、String、Boolean、Number、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、Date、RegExp、Error、URIError
内置对象
开发者不必明确实例化内置对象,它已被内部实例化了
同样是“独立于宿主环境”。而 ECMA-262 只定义了两个内置对象,即 Global 和 Math
宿主对象
BOM 和 DOM 都是宿主对象。因为其对于不同的“宿主”环境所展示的内容不同。其实说白了就是,ECMAScript 官方未定义的对象都属于宿主对象,因为其未定义的对象大多数是自己通过ECMAScript 程序创建的对象
6、JavaScript 内置的常用对象有哪些?并列举该对象常用的方法?(必会)
7、===和==的区别?(必会)
相等,只要值相等那么就是相等的,会进行数据类型转换,全等需要值和类型都相等才行
8、null,undefined 的区别
null 表示一个对象被定义了,值为“空值”,另外原型链的终点是null;
undefined 表示不存在这个值;如果变量被声明了,但没有赋值时,就等于 undefined;
如果调用函数时,应该提供的参数没有提供,该参数也等于 undefined
9、JavaScript中什么情况下会返回undefined值?(必会)
1、函数没有返回值,或者返回值为空,出现undefined
2、声明变量未赋值
3、引用没有提供实参函数形参的值
4、获取对象中不存在的属性
10、如何区分数组和对象?(必会)
通过 ES6 中的 Array.isArray 或者通过 instanceof 来识别 ,判断是否是数组;
通过调用 constructor 来识别,数组或者对象;
通过 Object.prototype.toString.call 方法来识别,数组或对象
11、多维数组降维的几种方法(必会)
1、遍历递归(要是在问 就说 判断遍历的是不是数组 如果是调用本身)
2、利用数组转字符串,和字符串转数组的方法arr.toString().split(',')把[1,[2,[3,[4,[5,6]]]]]转换成
12、怎么判断两个对象相等?(必会)
如果是简单的对象里面没有复杂的function,那么就用 JSON.stringify() 转化一下,然后比较
如果是复杂的就用递归的方式
13、列举三种强制类型转换和两种隐式类型转换?(必会)
强制转换:
转化成字符串 toString() String()
转换成数字 Number()、 parseInt()、 parseFloat()
转换成布尔类型 Boolean()
隐式类型转换:拼接字符串例子 var str = "" + 18(- * / % ==)
14、JavaScript中怎么获取当前日期的月份?(必会)
15、什么是类数组(伪数组),如何将其转化为真实的数组?(必会)
伪数组:和数组类似,具有length属性,能用for循环进行遍历,但是无法调用数组的很多方法,比如push、pop等方法。
伪数组转化为真实的数组
1.使用 Arrray.from()--ES6
2.[ ].slice.call(eleArr) 或则 Array.prototype.slice.call(eleArr)
3、扩展运算符[...arr]
16、如何遍历对象的属性?(必会)
一般记得for...in就可以
1、遍历自身可枚举的属性 (可枚举,非继承属性) Object.keys() 方法,该方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中的属性名的排列
顺序和使用 for..in 遍历该对象时返回的顺序一致(两者的区别是 for ..in 还会枚举其原型 链上的属性 )
2、遍历自身的所有属性(可枚举,不可枚举,非继承属性) Object.getOwnPropertyNames()
方法,该方法返回一个由指定对象的所有自身属性组成的数组(包括不可枚举属性但不包括Symbol 值作为名称的属性)
3、遍历可枚举的自身属性和继承属性遍历对象的属性(可枚举,可继承的属性) for in
17、如何使用原生JavaScript给一个按钮绑定两个onclick事件?(必会)
可以用addeventlistenter给按钮绑定多个click事件
18、addeventlistenter第三个参数作用
false 是冒泡,默认为false,true为捕获
19、JavaScript中的作用域、预解析与变量声明提升?(必会)
20、变量提升与函数提升的区别?(必会)
21、什么是作用域链?(必会)
22、如何延长作用域链?(必会)
23、判断一个值是什么类型有哪些方法?(必会)
24、如何实现数组的随机排序?(必会)
25、src和 href 的区别是?(了解)
这篇关于[ 面试题 ] JavaScript 基础面试题总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南