JavaScript(简称JS)作为前端开发的核心语言,其常用命令涵盖了变量声明、数据类型、流程控制、函数、对象操作等多个方面,掌握这些命令是编写高效、可维护JS代码的基础,以下将详细介绍JS中的常用命令及其应用场景。

变量声明与数据类型
在JS中,变量声明主要有var
、let
和const
三种命令。var
是ES5时代的声明方式,存在函数作用域和变量提升特性;let
和const
是ES6引入的新命令,具有块级作用域,let
声明的变量可重新赋值,而const
声明的是常量,一旦赋值后不可修改,数据类型方面,JS分为基本数据类型(Number、String、Boolean、Undefined、Null、Symbol、BigInt)和引用数据类型(Object、Array、Function、Date、RegExp等)。let name = "Alice";
声明了一个字符串变量,const age = 25;
声明了一个数值常量,const person = {name: "Bob", age: 30};
则声明了一个对象。
运算符与表达式
JS提供了丰富的运算符,包括算术运算符(、、、、)、比较运算符(、、、、>
、<
等)、逻辑运算符(&&
、、)和赋值运算符(、、等),需要注意的是,会进行类型转换,而严格判断值和类型是否相等,表达式是由运算符和操作数组成的式子,例如let sum = a + b;
是一个算术表达式,let isAdult = age >= 18;
是一个比较表达式。
流程控制语句
流程控制语句用于控制代码的执行顺序,包括条件语句和循环语句,条件语句有if-else
和switch
。if-else
适用于二选或多选场景,if (age < 18) { console.log("未成年"); } else { console.log("成年"); }
。switch
适用于多分支且条件为固定值的场景,switch (day) { case 1: console.log("周一"); break; default: console.log("其他日期"); }
,循环语句有for
、while
、do-while
和for-in
/for-of
。for
循环适用于明确循环次数的场景,while
循环适用于条件满足时重复执行的场景,for-in
用于遍历对象的可枚举属性,for-of
用于遍历可迭代对象(如数组、字符串)的值。for (let i = 0; i < 5; i++) { console.log(i); }
或for (const value of arr) { console.log(value); }
。
函数
函数是JS中的一等公民,可以声明为函数声明、函数表达式或箭头函数,函数声明:function add(a, b) { return a + b; }
,函数表达式:const multiply = function(a, b) { return a * b; }
,箭头函数(ES6):const divide = (a, b) => a / b;
,箭头函数没有自己的this
,适合用于回调函数,函数参数可以是默认参数(function greet(name = "Guest") { console.log("Hello, " + name); }
)和剩余参数(function sum(...numbers) { return numbers.reduce((acc, curr) => acc + curr, 0); }
)。

对象与数组操作
对象是键值对的集合,创建对象可以使用字面量:const car = { brand: "Toyota", model: "Camry" };
,也可以使用构造函数或class
(ES6),对象操作包括访问属性(car.brand
或car["brand"]
)、添加/修改属性(car.year = 2023;
)、删除属性(delete car.model;
)和遍历对象(for (const key in car) { console.log(key + ": " + car[key]); }
),数组是特殊的对象,常用操作包括:创建数组(const numbers = [1, 2, 3];
)、添加元素(numbers.push(4);
或numbers.unshift(0);
)、删除元素(numbers.pop();
或numbers.shift();
)、遍历数组(forEach
、map
、filter
、reduce
等)。const doubled = numbers.map(num => num * 2);
或const evenNumbers = numbers.filter(num => num % 2 === 0);
。
DOM操作
DOM(文档对象模型)操作是JS与HTML交互的核心,常用命令包括:获取元素(document.getElementById("id")
、document.querySelector(".class")
、document.querySelectorAll("div")
)、修改内容(element.textContent = "新内容";
或element.innerHTML = "<span>新内容</span>";
)、修改样式(element.style.color = "red";
)、添加/删除元素(document.createElement("div")
、parentElement.appendChild(childElement)
、parentElement.removeChild(childElement)
)和事件监听(element.addEventListener("click", function() { console.log("点击了"); });
)。
异步编程
JS是单线程语言,异步编程通过回调函数、Promise、async/await实现,回调函数:setTimeout(function() { console.log("延迟执行"); }, 1000);
,Promise:const promise = new Promise((resolve, reject) => { if (成功) { resolve("成功结果"); } else { reject("错误信息"); } }); promise.then(result => console.log(result)).catch(error => console.log(error));
,async/await(ES7):async function fetchData() { try { const response = await fetch(url); const data = await response.json(); console.log(data); } catch (error) { console.log(error); } }
。
常用内置对象
JS提供了许多内置对象,简化开发:Math
对象(Math.random()
、Math.max()
、Math.floor()
)、Date
对象(new Date()
、getFullYear()
、getMonth()
)、String
对象(split()
、slice()
、toUpperCase()
)、Array
对象(push()
、pop()
、join()
)等。const randomNum = Math.floor(Math.random() * 10 + 1);
生成1-10的随机数。

模块化
ES6模块化使用import
和export
命令,导出:export const name = "Module";
或export function func() { }
,导入:import { name, func } from "./module.js";
或import * as Module from "./module.js";
。
JS常用命令是构建动态网页和应用程序的基础,从变量声明到异步编程,每个命令都有其特定的应用场景,熟练掌握这些命令,并结合实际项目练习,能够显著提升开发效率和代码质量。
相关问答FAQs
问题1:let
和const
的区别是什么?在什么场景下使用?
解答:let
和const
都是ES6引入的块级作用域变量声明命令,主要区别在于:let
声明的变量可以被重新赋值,而const
声明的是常量,一旦赋值后不可修改(对于对象和数组,其引用地址不可变,但内部属性可变),使用场景:当变量需要重新赋值时(如循环计数器for (let i = 0;...)
),使用let
;当声明不需要修改的值(如配置项、函数参数默认值)时,使用const
,以避免意外修改。
问题2:for-in
和for-of
循环有什么区别?如何选择?
解答:for-in
和for-of
都是遍历循环,但适用场景不同。for-in
用于遍历对象的可枚举属性(键名),遍历的是字符串类型的键名,for (const key in obj) { console.log(key); }
,适用于普通对象。for-of
用于遍历可迭代对象(如数组、字符串、Map、Set等)的值,for (const value of arr) { console.log(value); }
,适用于数组、字符串等,选择时,如果遍历对象属性,用for-in
;如果遍历数组或字符串的值,用for-of
,更简洁且避免类型转换问题。