深入理解 JavaScript 中的表达式、运算符、语句和声明概念

深入理解 JavaScript 中的表达式、运算符、语句和声明

在学习和使用 JavaScript 编程时,理解基本的语言构成要素至关重要。本文将详细介绍 JavaScript 中的表达式、运算符、语句和声明概念。


目录

  1. 表达式(Expressions)
  2. 运算符(Operators)
  3. 语句(Statements)
  4. 声明(Declarations)
  5. 总结

表达式(Expressions)

什么是表达式

表达式 是 JavaScript 中能够产生值的代码片段。任何能够被计算并返回一个值的代码都是表达式。

表达式的类型

  1. 原始表达式 :直接量(字面量)和关键字,如数字、字符串、布尔值、nullundefined

    javascript 复制代码
    42;
    'Hello, world!';
    true;
    null;
    undefined;
  2. 对象初始化表达式:创建对象或数组。

    javascript 复制代码
    { name: 'Alice', age: 25 };
    [1, 2, 3];
  3. 函数表达式:使用函数关键字创建匿名或命名函数。

    javascript 复制代码
    function() { return 'Hello'; };
    (function namedFunc() { return 'Hi'; });
  4. 类表达式 :使用 class 关键字创建类。

    javascript 复制代码
    class {};
    class MyClass {};
  5. 算术表达式:使用算术运算符计算值。

    javascript 复制代码
    5 + 3;
    10 * (2 + 3);
  6. 逻辑表达式:使用逻辑运算符返回布尔值。

    javascript 复制代码
    true && false;
    5 > 3 || 2 < 1;
  7. 条件(三元)表达式

    javascript 复制代码
    condition ? exprIfTrue : exprIfFalse;

表达式示例

javascript 复制代码
// 数字字面量
let a = 10;

// 字符串字面量
let b = 'JavaScript';

// 算术表达式
let c = a * 2; // c 的值为 20

// 逻辑表达式
let isAdult = age >= 18;

// 函数表达式
let greet = function(name) {
  return 'Hello, ' + name;
};

// 条件表达式
let max = a > b ? a : b;

运算符(Operators)

什么是运算符

运算符是用于操作数之间的计算、比较或逻辑操作的符号。运算符结合操作数形成表达式,并返回一个新值。

运算符的分类

  1. 算术运算符:用于数学计算。

    • 加法:+
    • 减法:-
    • 乘法:*
    • 除法:/
    • 求余:%
    • 指数:**
  2. 赋值运算符:用于给变量赋值。

    • 简单赋值:=
    • 复合赋值:+=, -=, *=, /=, %=, **=
  3. 比较运算符:用于比较两个值,返回布尔值。

    • 相等:==
    • 全等:===
    • 不相等:!=
    • 不全等:!==
    • 大于/小于:>, <
    • 大于等于/小于等于:>=, <=
  4. 逻辑运算符:用于逻辑运算。

    • 与:&&
    • 或:||
    • 非:!
  5. 位运算符:用于按位操作整数。

    • 按位与:&
    • 按位或:|
    • 按位异或:^
    • 按位非:~
    • 左移:<<
    • 右移:>>
    • 无符号右移:>>>
  6. 字符串运算符:连接字符串。

    • 字符串连接:+
  7. 其他运算符

    • 条件(三元)运算符:condition ? exprIfTrue : exprIfFalse
    • typeof 运算符:typeof operand
    • instanceof 运算符:object instanceof constructor
    • 解构赋值运算符:let { x, y } = obj;

运算符示例

javascript 复制代码
// 算术运算符
let sum = 5 + 3;       // sum 为 8
let product = 4 * 2;   // product 为 8

// 赋值运算符
let x = 10;
x += 5;                // x 现在为 15

// 比较运算符
let isEqual = (x === 15); // isEqual 为 true

// 逻辑运算符
let isAdult = (age >= 18) && (age < 65);

// 字符串运算符
let message = 'Hello, ' + 'world!';

// 条件运算符
let access = isAdmin ? 'granted' : 'denied';

// typeof 运算符
console.log(typeof x); // 输出 'number'

// instanceof 运算符
console.log(dateObj instanceof Date); // 如果 dateObj 是 Date 的实例,输出 true

语句(Statements)

什么是语句

语句是执行特定操作的完整指令,通常以分号结束。语句可以包含表达式和关键字,控制程序的流程和行为。

常见的语句类型

  1. 表达式语句:由表达式组成,用于计算值。

    javascript 复制代码
    x = 5;
  2. 条件语句:根据条件执行不同的代码块。

    • if 语句
    • else 语句
    • switch 语句
  3. 循环语句:重复执行代码块。

    • for 循环
    • while 循环
    • do...while 循环
    • for...in 循环
    • for...of 循环
  4. 跳转语句:控制程序流程。

    • break
    • continue
    • return
    • throw
  5. 声明语句:声明变量、函数或类。

    • var, let, const
    • function
    • class
  6. 异常处理语句

    • try...catch
    • finally

语句示例

javascript 复制代码
// 表达式语句
let total = price * quantity;

// 条件语句
if (score >= 60) {
  console.log('Passed');
} else {
  console.log('Failed');
}

// 循环语句
for (let i = 0; i < 5; i++) {
  console.log(i);
}

// 跳转语句
while (true) {
  if (condition) {
    break;
  }
}

// 声明语句
let name = 'Alice';
function greet() {
  console.log('Hello');
}

// 异常处理语句
try {
  throw new Error('Something went wrong');
} catch (error) {
  console.error(error);
} finally {
  console.log('Cleanup');
}

声明(Declarations)

什么是声明

声明用于定义标识符(变量、函数、类等),为其分配存储空间或定义其行为。声明不会立即执行代码,但为后续的代码提供了基础。

变量声明

var 声明
  • 作用域:函数作用域或全局作用域。
  • 变量提升:在作用域顶部被提升,但未赋值。
javascript 复制代码
var x = 10;
function test() {
  var y = 20;
}
let 声明
  • 作用域:块作用域。
  • 不允许重复声明
  • 暂时性死区(TDZ):在声明之前无法访问变量。
javascript 复制代码
let x = 10;
if (true) {
  let y = 20;
}
const 声明
  • 作用域:块作用域。
  • 必须在声明时初始化
  • 不可重新赋值
javascript 复制代码
const PI = 3.14159;

函数声明

  • 使用 function 关键字声明,函数名可用于递归调用。
javascript 复制代码
function add(a, b) {
  return a + b;
}
  • 函数提升:函数声明被提升到所在作用域的顶部。

类声明

  • 使用 class 关键字声明,定义类的构造函数和方法。
javascript 复制代码
class Person {
  constructor(name) {
    this.name = name;
  }

  greet() {
    console.log('Hello, ' + this.name);
  }
}
  • 类的特性
    • 不可提升:类声明不会被提升,在声明之前无法访问。
    • 严格模式:类内部默认使用严格模式。

总结

  • 表达式是能够计算并返回值的代码片段,是程序的基本组成部分。
  • 运算符用于对操作数进行计算、比较或逻辑操作,结合操作数组成表达式。
  • 语句是执行特定操作的完整指令,控制程序的流程和行为。
  • 声明用于定义标识符,为变量、函数或类分配存储空间或定义其行为。
相关推荐
Kalika0-043 分钟前
温度转换-C语言
c语言·开发语言·数据结构·算法
qq_172805593 小时前
Go 性能剖析工具 pprof 与 Graphviz 教程
开发语言·后端·golang·go
斗-匕3 小时前
《代码重构指南:提升代码质量的关键步骤》
开发语言
Mr_Xuhhh4 小时前
数据结构阶段测试2的一点小补充
android·开发语言·汇编·数据结构·c++·算法
码农超哥同学4 小时前
Python知识点:如何使用KubeEdge与Python进行容器化边缘计算
开发语言·python·面试·编程·边缘计算
1登峰造极4 小时前
uniapp自定义导航,全端兼容
开发语言·javascript·uni-app
无敌の星仔4 小时前
一个月学会Java 第7天 字符串与键盘输入
java·开发语言·python
心易行者4 小时前
ChatGPT 与 CoT 思维链:如何重塑 AI 的逻辑大脑?
开发语言·python
GGBondlctrl4 小时前
【JavaEE初阶】多线程案列之定时器的使用和内部原码模拟
java·开发语言·定时器·timer的使用·定时器代码模拟
Lsx-codeShare4 小时前
前端无感刷新token机制(一文说明白)
前端·javascript·axios