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

JavaScript 基础语法

JavaScript 是一种动态类型语言,变量声明使用 varletconstletconst 是 ES6 引入的块级作用域变量声明方式。

let name = "John";
const age = 25;
var isStudent = true;

数据类型

JavaScript 包含以下基本数据类型:

  • 字符串(String)
  • 数字(Number)
  • 布尔值(Boolean)
  • null
  • undefined
  • 对象(Object)
  • Symbol(ES6 新增)
typeof "Hello"; // "string"
typeof 42;      // "number"
typeof true;    // "boolean"

函数定义

函数可以通过多种方式定义:

// 函数声明
function greet(name) {return `Hello, ${name}!`;
}// 函数表达式
const greet = function(name) {return `Hello, ${name}!`;
};// 箭头函数(ES6)
const greet = (name) => `Hello, ${name}!`;

对象和数组

对象用于存储键值对集合:

const person = {name: "Alice",age: 30,greet: function() {console.log(`My name is ${this.name}`);}
};

数组用于存储有序数据:

const numbers = [1, 2, 3, 4, 5];
numbers.push(6); // 添加元素
numbers.forEach(num => console.log(num));

DOM 操作

JavaScript 可以操作网页元素:

// 获取元素
const btn = document.getElementById("myButton");// 添加事件监听
btn.addEventListener("click", function() {console.log("Button clicked");
});// 修改内容
document.querySelector(".content").textContent = "New content";

异步编程

处理异步操作的几种方式:

// 回调函数
setTimeout(() => {console.log("Delayed message");
}, 1000);// Promise
fetch("https://api.example.com/data").then(response => response.json()).then(data => console.log(data)).catch(error => console.error(error));// async/await
async function getData() {try {const response = await fetch("https://api.example.com/data");const data = await response.json();console.log(data);} catch (error) {console.error(error);}
}

ES6+ 特性

现代 JavaScript 的重要特性:

  • 模板字符串
  • 解构赋值
  • 默认参数
  • 展开运算符
  • 类语法
// 解构赋值
const { name, age } = person;// 类
class Person {constructor(name) {this.name = name;}greet() {console.log(`Hello, ${this.name}`);}
}

模块化

ES6 模块系统:

// module.js
export const PI = 3.14159;
export function circleArea(r) {return PI * r * r;
}// app.js
import { PI, circleArea } from "./module.js";
console.log(circleArea(5));

http://www.lryc.cn/news/612488.html

相关文章:

  • TDengine IDMP 背后的技术三问:目录、标准与情景
  • TCP的三次握手和四次挥手实现过程。以及为什么需要三次握手?四次挥手?
  • 8、项目管理
  • 力扣 hot100 Day67
  • 二、Envoy静态配置
  • CentOS8.5安装19c单机告警及处理
  • CS课程项目设计8:基于Canvas支持AI人机对战的五子棋游戏
  • LeetCode 面试经典 150_数组/字符串_O(1)时间插入、删除和获取随机元素(12_380_C++_中等)(哈希表)
  • Linux firewall 防火墙管理
  • Linux systemd 系统管理:systemctl 控制服务与守护进程
  • 深入理解 qRegisterMetaType<T>()
  • 【数据可视化-82】中国城市幸福指数可视化分析:Python + PyEcharts 打造炫酷城市幸福指数可视化大屏
  • JAVA算法练习题day9
  • 蓝桥杯----锁存器、LED、蜂鸣器、继电器、Motor
  • Pytest项目_day06(requests中Session的用法)
  • Python 进行点云ICP(lterative Closest Point)配准(精配准)
  • Java高频方法总结
  • 实习文档背诵
  • chdir系统调用及示例
  • docker启动出现Error response from daemon: Container的问题【已解决】
  • 92、【OS】【Nuttx】【构建】cmake 支持构建的目标
  • InfluxDB 集群部署与高可用方案(二)
  • 【概念学习】深度学习有何不同
  • 敏捷协作平台推荐:Jira、PingCode、Tapd等15款
  • iptables相关知识笔记
  • AI+物理融合新范式:物理信息神经网络(PINN)的深度研究报告
  • Flash Attention与SDPA
  • 深度探索:非静态内部类不能定义 static 成员属性和方法 及 静态内部类的必要性
  • AI Infra与LLM的联系与差异
  • ICCV 2025 | 视频生成迈入“多段一致”新时代!TokensGen用“压缩Token”玩转长视频生成