变量声明
JavaScript 里,var、let、const 是最常见的三种变量声明方式。老代码里 var 还很多,但如果是新项目,我基本都会先看 let 和 const。
var 的问题不算玄学:它有变量提升,允许重复声明,作用域又是函数级别,不是块级作用域,所以很容易在 if、for 里写出看起来没问题、实际上会串变量的代码。
let 不能重复声明,使用前必须先声明,作用域也更符合直觉,限制在块内。
const 需要初始化,声明后不能重新赋值。它更适合放不会变的值,或者'引用不变、内容可能变'的对象和数组。
一般写法还是优先 const,要修改再换 let。var 能不用就不用,除非你在维护旧代码。
DOM 元素获取与操作
获取 DOM 元素
日常最常用的是 document.querySelector('selector') 和 document.querySelectorAll('selector')。前者拿第一个匹配项,后者拿全部匹配项,返回静态 NodeList,写复杂选择器时很顺手。
- 类选择器
const firstItem = document.querySelector('.list-item');
const allItems = document.querySelectorAll('.list-item');
- ID 选择器
使用
#前缀匹配元素的id属性。
const name = document.querySelector('#username');
- 标签选择器 直接使用 HTML 标签名。
const body = document.querySelector('body');
如果只想要最基础的标准 API,也可以直接用这些:
- 通过 ID 获取:
document.getElementById('id'),返回第一个匹配元素,不存在就返回null。 - 通过类名获取:
document.getElementsByClassName('class'),返回动态的 HTML 集合(类数组对象)。 - 通过标签名获取:
document.getElementsByTagName('tag'),返回所有匹配标签的动态 HTML 集合。


