JS知识点整理 (仅学习)

有没有人在啊,想请说明下,JS知识点整理 (仅学习)
最新回答
傲气稳了全场

2026-10-23 06:33:53

1、localstorage、sessionstorage、与 cookie 的区别?

cookie:存储在浏览器中,有服务器生成并设置失效时间,关闭浏览器后失效,大小限制为4kb,每次请求都会携带请求头。

localStorage:存储在客户端,除非清除否则永久保存,大小限制为5MB,仅存在于客户端,不参与通信。

sessionStorage:仅在当前会话下有效,关闭页面或清除浏览器后即清除,大小同样为5MB左右,仅在客户端保存,不参与通信。

2、for..in for..of for..each 的区别

for..in 用于遍历对象,也可用于数组的索引。

for..of ES6 语法,专用于遍历实现 Symbol.iterator 接口的对象,仅遍历数组内部元素,不包括数组的原型属性和索引。

for..each ES5 的数组遍历方法,不能使用 break 和 return 结束循环。

3、ES6 的新语法

常量与变量声明、解构赋值、for..of 循环、展开运算符、箭头函数与 this、Symbol、类、Promise。

4、const let 与 var 的区别

var 声明的变量挂载到全局或函数作用域,存在变量提升现象。

let 和 const 声明形成块级作用域,块外访问会报错,不能提升,在声明前访问会报错,不允许在同一作用域重复声明。

let 声明的变量值和类型可改变,无限制。

const 声明常量,只读,修改值会报错,保存内存地址,可为对象或数组添加属性或元素,不能重新赋值。

5、ES6 中箭头函数 this 的指向

全局调用指向全局对象,作为对象方法调用指向该对象,作为构造函数调用指向新创建的对象,apply调用指向调用函数的第一个参数。

6、对 Promise 的理解

Promise 是异步编程的解决方案,是一个对象,能获取异步操作的信息。状态有 pending、fulfilled、rejected,状态一旦改变,不可逆转。通过 resolve 和 reject 方法创建实例,原型上有 .then 和 .catch 方法。

7、原型与原型链的理解

原型:对象内部初始化的属性,用于存储方法和数据。原型链:对象在查找属性时,若内部没有,则向原型查找,直至到达对象原型顶部。

8、对闭包的理解

闭包是具有访问外部函数作用域内变量的函数。应用场景包括函数封装和定时器使用。闭包作用:读取外部变量、保持变量值在内存中。

9、垃圾回收机制

对象不再被引用时被回收。两个相互引用但被第三方引用的对象也会被回收。若一个对象被引用且不在被其他对象引用,则执行完毕后不会被回收。

10、ES5、ES6 中继承

组合继承结合原型链和构造函数实现继承。属性拷贝与借用构造函数用于实现继承。

11、CSS3 的新特性

选择器、背景与边框、文本效果、动画、过渡、多列布局。

12、H5 的新特性

语义化标签、增强型表单、新增表单元素、拖拽功能、本地存储。

13、盒模型

由内容、填充、边框、外边距组成。标准盒模型计算内容尺寸,不包含填充、边框、外边距。怪异盒模型计算内容尺寸加上填充、边框,不考虑外边距。

14、代码优化策略

代码重用、避免全局变量、适当注释、内存管理。

15、前端性能优化

减少HTTP请求、合理设置缓存、资源合并与压缩、外部js置底、雪碧图。

16、元素垂直与水平居中

文本图片居中:设置行高、text-align:center。绝对定位居中:left:50%、top:50%、margin值为负半值。绝对定位居中:margin:auto,top:0, left:0, right:0, bottom:0。

17、响应式布局实现

使用meta标签、百分比布局、rem布局、媒体查询、弹性盒布局。

18、浏览器缓存机制

localstorage、sessionstorage、cookie。

19、解决JSONP跨域原理

通过动态创建script标签、设置callback参数、限制请求方式。

20、ajax原理与应用场景

通过XMLHttpRequest异步向服务器请求数据,处理响应,更新页面。可用于表单输入规范验证与性能优化。

21、反向代理配置方法

使用location和proxy_pass配置。

22、js数据类型

基本类型:string、boolean、number、undefined、object、null。引用类型:array、data、function。

23、map与forEach的区别

forEach返回undefined,不支持链式调用。map返回新数组,原数组不变。

24、伪类与伪元素区别

伪类不产生新对象,仅改变元素状态。伪元素产生新对象,不可见。

25、清除浮动方法

使用overflow:hidden、clear:both、after伪元素。

26、完成一个完整ajax请求的原生对象

使用XMLHttpRequest进行请求,创建对象、设置方法、URL、验证信息,监听状态变化,获取数据,实现局部刷新。

27、内存泄漏其他方式

DOM对象与JS相互绑定、给DOM对象绑定事件、反复修改属性。

28、CSS预处理器

scss,提供嵌套、变量、混合、继承、引入等功能。

29、阻止事件冒泡方法

使用e.stopPropation()、event.cancelBubble属性。

30、阻止默认事件

使用return false、e.preventDefault()。

31、ajax缺点

不支持浏览器后退按钮、暴露服务器交互细节、对搜索引擎支持弱、破坏程序异常机制。

32、ajax流程

创建对象、设置请求、监听状态、获取数据、局部刷新。

33、==与===的区别

==进行值比较,允许类型转换。===进行值和类型比较,不允许类型转换。

34、高阶函数

array.prototype.map、array.prototype.filter、array.prototype.reduce。

35、CSS实现三角形

通过边框属性实现。

36、数组去重方法

利用indexOf、Set函数。

37、call与apply的区别

apply最多接受两个参数,call可接受多个参数。

38、ES7新特性

函数作用域的严格模式变更。

39、EC5新特性

严格模式、JSON对象转换、object扩展、Array扩展、function扩展。

40、HTTP协议请求过程

域名解析、建立TCP连接、发起HTTP请求、服务器响应、浏览器解析页面、请求页面资源、页面渲染。

41、ES6新增数组方法

Array.from、Array.of、find、fill、includes、entries、flat。

42、new执行流程

创建对象、赋值作用域、执行构造函数、返回新对象。

43、DOM操作

创建、添加、移除、移动、复制、查找节点。

44、GET与POST区别与适用场景

GET数据长度有限,POST没有限制;GET数据可见,POST数据在请求头中;场景:POST用于表单提交,GET用于简单查询。

45、JS作用域链

局部变量在函数内部,全局变量在任何地方有效。

46、ajax优点与同步与异步的区别

优点:无刷新更新、异步通信、前后端分离、广泛应用、界面与应用分离。同步:顺序执行,控制流程。异步:并行执行,节省资源。