基本语法规则
基本语法规则
JavaScript的语法规则定义了代码的结构和组织方式。本文将介绍JavaScript的基本语法元素,包括语句、注释、标识符和关键字等。
大小写敏感
JavaScript是大小写敏感的语言,这意味着变量、函数名和其他标识符的大小写是有区别的。
let name = "小明";
let Name = "小红";
console.log(name); // 输出: 小明
console.log(Name); // 输出: 小红
// 以下会导致错误,因为变量名大小写不匹配
// console.log(NAME); // ReferenceError: NAME is not defined
空白和换行
JavaScript会忽略多余的空格和换行符,你可以使用它们来格式化代码,提高可读性。
// 以下两种写法在功能上是等价的
let sum = a + b;
let sum=a+b;
// 代码可以跨多行
let longExpression = 1 + 2 + 3
+ 4 + 5
+ 6;
语句和分号
JavaScript中的语句通常以分号(;
)结束。虽然在某些情况下可以省略分号,但建议始终使用分号,以避免潜在的问题。
// 推荐的写法,每个语句后都有分号
let name = "张三";
console.log(name);
// 多个语句可以写在同一行,但不推荐这样做
let age = 25; console.log(age);
// 自动分号插入(ASI)可能导致意外行为
function returnObject() {
return
{
value: 42
}
}
// 上面的函数实际返回undefined,因为JavaScript会在return后自动插入分号
注释
JavaScript支持单行注释和多行注释,用于解释代码或临时禁用代码。
// 这是单行注释
/*
这是
多行
注释
*/
// 使用注释禁用代码
// console.log("这行代码不会执行");
/**
* 这是JSDoc风格的文档注释
* @param {string} name - 用户名
* @returns {string} 问候语
*/
function greet(name) {
return `你好,${name}!`;
}
标识符
标识符是用来命名变量、函数、属性或函数参数的名称。JavaScript标识符必须以字母、下划线(_
)或美元符号($
)开头,后面可以跟字母、数字、下划线或美元符号。
命名规则
// 有效的标识符
let validName;
let _privateVariable;
let $element;
let camelCaseVariable;
let π = 3.14159; // Unicode字符也允许,但不推荐
// 无效的标识符
// let 123abc; // 不能以数字开头
// let my-variable; // 不能包含连字符
// let let; // 不能使用关键字
命名约定
虽然不是强制的,但JavaScript社区有一些常见的命名约定:
- 驼峰命名法:变量和函数名(
firstName
,calculateTotal
) - 帕斯卡命名法:类名(
Person
,EventEmitter
) - 全大写:常量(
MAX_SIZE
,PI
) - 下划线前缀:表示私有属性(
_privateMethod
)
// 命名约定示例
const MAX_USERS = 100; // 常量全大写
let currentUser = "李四"; // 变量使用驼峰命名法
function calculateTotal() { /* ... */ } // 函数使用驼峰命名法
class UserProfile { /* ... */ } // 类使用帕斯卡命名法
let _privateData = {}; // 私有变量使用下划线前缀
关键字和保留字
JavaScript有一组保留的关键字,这些关键字不能用作变量名、函数名或其他标识符。
当前关键字
break case catch class const continue
debugger default delete do else export
extends finally for function if import
in instanceof new return super switch
this throw try typeof var void
while with yield
保留字
以下是保留字,虽然当前版本的JavaScript可能没有使用,但未来可能会使用:
enum implements interface let package private
protected public static await
表达式和运算符
表达式是一段可以产生值的代码。
// 简单表达式
5 + 5 // 算术表达式
x = 10 // 赋值表达式
x > 10 // 比较表达式
isReady && startGame() // 逻辑表达式
// 复杂表达式
(x > 10) ? "大于10" : "不大于10" // 条件(三元)表达式
代码块
JavaScript使用花括号({}
)来组织代码块。代码块用于将多个语句组合成一个组,通常用于条件语句、循环和函数。
// if语句的代码块
if (age >= 18) {
console.log("成年人");
canVote = true;
}
// 函数的代码块
function square(number) {
return number * number; // 函数体是一个代码块
}
// 空代码块也是有效的
if (condition) {
// 暂时没有代码
}
严格模式
JavaScript的严格模式是一种限制性更强的变体,它修复了一些语言缺陷,提供更强的错误检查,并增强安全性。
// 在脚本开头启用严格模式
"use strict";
// 或在函数内部启用
function strictFunction() {
"use strict";
// 这个函数使用严格模式
}
// 严格模式下的一些区别
function example() {
"use strict";
// 变量必须先声明
// x = 10; // 这会报错
let x = 10; // 正确的做法
// 不能删除变量或函数
// delete x; // 这会报错
// 重复的参数名会报错
// function duplicate(a, a) {} // 这会报错
}
语句类型
JavaScript包含多种语句类型,用于控制程序流程和执行操作。
条件语句
// if语句
if (condition) {
// 当condition为true时执行
} else if (anotherCondition) {
// 当anotherCondition为true时执行
} else {
// 当所有条件都为false时执行
}
// switch语句
switch (expression) {
case value1:
// 当expression等于value1时执行
break;
case value2:
// 当expression等于value2时执行
break;
default:
// 当没有匹配的case时执行
}
循环语句
// for循环
for (let i = 0; i < 5; i++) {
console.log(i);
}
// while循环
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
// do-while循环
let j = 0;
do {
console.log(j);
j++;
} while (j < 5);
// for...in循环(用于对象属性)
const person = { name: "王五", age: 30 };
for (let key in person) {
console.log(key + ": " + person[key]);
}
// for...of循环(用于可迭代对象)
const colors = ["红", "绿", "蓝"];
for (let color of colors) {
console.log(color);
}
跳转语句
// break语句(跳出循环)
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // 当i等于5时跳出循环
}
console.log(i);
}
// continue语句(跳过当前迭代)
for (let i = 0; i < 10; i++) {
if (i % 2 === 0) {
continue; // 跳过偶数
}
console.log(i); // 只输出奇数
}
// return语句(从函数返回)
function multiply(a, b) {
return a * b; // 返回乘积并结束函数执行
// 这行代码永远不会执行
console.log("计算完成");
}
// throw语句(抛出异常)
function divide(a, b) {
if (b === 0) {
throw new Error("除数不能为零");
}
return a / b;
}
总结
JavaScript的基本语法规则是学习这门语言的基础。理解这些规则将帮助你编写正确、可读的代码,并避免常见的语法错误。随着你对JavaScript的深入学习,这些基础知识将成为你构建更复杂应用程序的坚实基础。
在接下来的章节中,我们将深入探讨JavaScript的数据类型、变量、运算符和表达式等更多核心概念。
练习
- 编写一个包含变量声明、条件语句和循环的简单JavaScript程序。
- 尝试故意违反一些语法规则,观察JavaScript引擎如何报告错误。
- 使用严格模式编写一个函数,并比较它与非严格模式的区别。