JavaScript 作为一门动态、弱类型的编程语言,其原生知识点覆盖了语法、数据类型、执行机制等核心内容。以下是对 JavaScript 原生知识点的系统化描述:
变量与作用域
var
:函数作用域,存在变量提升(变量声明被提升到作用域顶部)。let
/const
:块级作用域,无变量提升,const
声明常量(不可重新赋值)。数据类型
undefined
、null
、boolean
、number
、string
、Symbol
(ES6)、BigInt
(ES2020)。 Object
(包括 Array
、Function
、Date
等)。 typeof
(无法区分对象与数组)、instanceof
(检测原型链)、Object.prototype.toString.call()
。运算符
===
)与宽松相等(==
),逻辑运算符短路特性(如 ||
返回第一个真值)。 const { a, b } = obj;
,支持数组和对象。if...else
、switch
(使用全等比较)。for
、while
、do...while
,for...of
(遍历可迭代对象),for...in
(遍历对象属性,含原型链)。 break
/continue
控制循环流程。this
绑定)。function(a = 1) {}
。 arguments
对象(类数组,箭头函数不可用),剩余参数(...args
)。this
绑定 call()
/apply()
/bind()
修改。 this
由外层作用域决定。{}
、构造函数 new Object()
、Object.create()
。 obj.a
)或方括号(obj['a']
)。__proto__
指向原型对象,构造函数通过 prototype
定义共享方法。 instanceof
检测原型链关系。class
关键字定义类,extends
实现继承,super()
调用父类构造函数。push()
、pop()
、splice()
。 map()
、filter()
、slice()
。 forEach()
、reduce()
(累加器)。Symbol.iterator
定义可迭代对象(如数组、字符串),支持 for...of
遍历。pending
、fulfilled
、rejected
。 .then().catch().finally()
。async
函数返回 Promise,await
暂停执行直到 Promise 完成。setTimeout
,微任务:Promise.then()
),微任务优先执行。try...catch
finally
无论是否出错都会执行。throw
Error
对象)。window.onerror
(浏览器)、process.on('uncaughtException')
(Node.js)。export
导出模块,import
导入模块,支持静态分析。 export default
)与命名导出(export const a = 1;
)。import()
返回 Promise,按需加载模块。window
对象:location
(URL)、navigator
(浏览器信息)、localStorage
(持久化存储)。document.getElementById()
、querySelector()
。 addEventListener()
、事件冒泡与捕获、事件委托。 createElement()
、appendChild()
、innerHTML
(需防 XSS 攻击)。JSON.stringify()
序列化对象,JSON.parse()
反序列化。RegExp
对象,test()
和 exec()
方法。new Date()
、时间戳 getTime()
。'use strict'
禁止隐式全局变量、重复参数等不安全操作。${variable}
)。const newObj = { ...obj1, ...obj2 };
。Reflect
提供反射方法。Set
存储唯一值,Map
键值对集合(键可为任意类型)。JavaScript 的核心知识点围绕其动态特性、原型继承、异步模型展开,同时随着 ES6+ 的演进,语言功能不断丰富。开发者需深入理解作用域、闭包、事件循环等机制,并掌握现代语法(如模块化、Promise)以应对复杂场景。学习过程中应结合实践,通过调试与性能分析深化对语言特性的理解。