二、JavaScript
1、JS由哪三部分组成?
ECMScript:JS的核心内容,描述了语言的基础语法,比如var,for,数据类型(数组、字符串)
文档对象模型(DOM):DOM把整个HTML页面规划为元素构成的文档;
浏览器对象模型(BOM):对浏览器窗口进行访问和操作
2、JS有哪些内置对象?
String、Boolean、Number、Array、Object、Function、Math、Date、RegExp...
常用的有下面这些:
Math
abs()、sqrt()、max()、min()
Data
new Data()、getYear()
Array
String
concat()、length、slice()、split()
3、操作数组的方法
push()、pop()、sort()、splice()、unshift()、shift()、reverse()、concat()、join()、map()、filter()、 ervery()、some()、reduce()、isArray()、findIndex() ...
哪些方法会改变原数组?
push()、pop()、sort()、unshift()、shift()、reverse()
4、JS对数据类的检测方式有哪些?
typeof() 对于基本数据类型没问题 遇到引用数据类型就不管用
instanceof() 只能判断引用数据类型,不能判断基本数据类型
constructor() 几乎可以判断基本数据类型和引用数据类型;如果声明了一个构造函数,并把它的原型指向了Array
Object.prototype.toString.call()
5、说一下闭包,闭包有什么特点?
什么是闭包? 函数嵌套函数,内部函数被外部函数返回并保存下来时,就会产生闭包。
特点:可以重复利用变量,并且这个变量不会污染全局的一种机制:这个变量是一只保存在内存中,不会被垃圾回收机制回收。
缺点:闭包较多的时候,会消耗内存,导致页面的性能下降,在IE浏览器中才会导致内存泄漏。
使用场景:防抖、节流、函数嵌套函数避免全局污染的时候。
6、前端的内存泄漏怎么理解?
JS里已经分配内存地址的对象,但是由于长时间没有释放或者没办法清除,造成长期占用内存的现象,会让内存资源大幅浪费,最终导致运行速度慢,甚至崩溃的情况。
垃圾回收机制
因素:一些未声明直接复制的变量;一些未清空的定时器;过度的闭包;一些引用元素没有被清除。