当前位置: 首页 > news >正文

JavaScript 语法结构

【JavaScript 语法结构】

JavaScript 语法由 表达式、语句、变量、运算符、控制流、函数 等核心构件组成,采用类 C 语言的语法风格(分号可选,代码块用 {} 包裹)。


一、基础语法单元

类型说明示例
变量声明使用 let(可变)/ const(不可变)let age = 25;
const PI = 3.14;
标识符变量/函数命名规则(字母/_/$开头)userName, _count, $element
注释单行 //,多行 /* */// 计算总和
/* 用户验证模块 */
分号语句结束符(可选但推荐)console.log('Hello');

二、数据类型与字面量

类型示例特性
原始类型'text'(字符串)
42(数字)
true/false(布尔)
null(空值)
undefined(未定义)
Symbol('id')(唯一标识)
不可变
对象类型{ name: 'Alice' }(对象)
[1, 2, 3](数组)
function() {}(函数)
可变,按引用传递
模板字面量`Hello ${name}!`支持插值和多行字符串

三、核心语法结构

1. 运算符
// 算术
let sum = 10 + 5 * 2; // 20// 比较
console.log(3 > 2); // true// 逻辑
const isValid = true && !false; // true// 三元
const status = age >= 18 ? '成人' : '未成年';
2. 控制流
// if-else
if (score >= 90) {grade = 'A';
} else if (score >= 60) {grade = 'C';
} else {grade = 'D';
}// switch
switch (day) {case 1: console.log('周一'); break;default: console.log('周末');
}// 循环
for (let i = 0; i < 5; i++) { /*...*/ }
while (condition) { /*...*/ }
3. 函数
// 函数声明
function add(a, b) {return a + b;
}// 箭头函数 (ES6+)
const multiply = (x, y) => x * y;// 立即执行函数
(function() {console.log('初始化');
})();

四、特殊语法结构

1. 对象操作
// 创建对象
const user = {name: 'John',age: 30,greet() { console.log(`Hi, ${this.name}`) }
};// 解构赋值
const { name, age } = user;
2. 数组操作
const nums = [1, 2, 3];
// 扩展运算符
const newArr = [...nums, 4]; // [1,2,3,4]
// 数组方法
nums.map(n => n * 2); // [2,4,6]
3. 异步处理
// Promise
fetch(url).then(response => response.json()).catch(error => console.error(error));// async/await
async function loadData() {try {const data = await fetch(url);return data;} catch (e) {/* 错误处理 */}
}

五、语法特性对比表

特性JS 语法其他语言参考
变量作用域let/const 块级作用域Python:函数作用域
类型转换弱类型:'5' + 2 = '52'Java:强类型编译报错
相等比较==(类型转换) vs ===(严格)Python:== 无类型转换
继承机制原型链继承Java:类继承

🚀 最佳实践

  1. 始终使用 let/const 替代 var
  2. 优先 === 比较 避免隐式转换陷阱
  3. 函数参数默认值
    function greet(name = 'Guest') { /*...*/ }
    
  4. 模块化组织代码(ES6 Modules)
    // math.js
    export const PI = 3.14;
    // app.js
    import { PI } from './math.js';
    

💡 关键思维:JavaScript 的灵活性来自其 动态类型 + 原型继承 + 函数式特性,但也需注意避免因弱类型导致的常见陷阱(如 0 == falsetrue)。

http://www.xdnf.cn/news/941653.html

相关文章:

  • MySQL 索引失效:六大场景与原理剖析
  • 官网Numpy教程
  • leetcode.多数元素
  • 【PhysUnits】17.1 补充数值后量纲系统实现解析 (dimension.rs)
  • 一键压缩图片工具
  • 2000-2020年各省第三产业增加值占GDP比重数据
  • 网络安全基础
  • Python 调用 C 程序时输出顺序错乱问题分析与解决
  • 0x-2-Oracle Linux 9上安装JDK配置环境变量
  • 第五讲 基础IO
  • Go切片与映射的内存优化技巧:实战经验与最佳实践
  • 【LeetCode】算法详解#6 ---除自身以外数组的乘积
  • JUC并发编程(六)CAS无锁实现/原子整数/原子引用/原子数组/字段更新
  • Python训练营---DAY48
  • Java线程安全与同步机制全解析
  • 嵌入式学习笔记 - freeRTOS为什么中断中不能使用互斥量
  • 《最短路(Dijkstra+Heap)》题集
  • MySql读写分离部署(一主一从,双主双从,Mycat)
  • 为什么已经有 Nginx 了,还需要服务网关?
  • 【LUT技术专题】带语义的图像自适应4DLUT
  • Cherry-Studio搭建个人知识库智能体
  • JS的数据类型分类
  • 国产变频器与codesys控制器通信融合方案
  • gitee....
  • SpringSecurity+vue通用权限系统
  • Python环境搭建:pyenv-win的使用指南
  • [Linux]假如给我Linux开发工具
  • InnoDB
  • Deep Research实践
  • U盘安装ubuntu系统