当前位置: 首页 > 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.dtcms.com/a/317723.html

相关文章:

  • 频数分布表:数据分析的基础工具
  • Adobe Analytics 数据分析平台|全渠道客户行为分析与体验优化
  • Qt 容器类详解:顺序容器与关联容器及其遍历方法
  • [LVGL] 配置lv_conf.h | 条件编译 | 显示屏lv_display
  • 组合模式(Composite Pattern)及其应用场景
  • 基于spring boot的个人博客系统
  • tkwebview-tkinter的web视图
  • 解决云服务器端口无法访问的方法
  • java学习 leetcode24交换链表节点 200岛屿数量 +一些开发任务
  • Redis(七):Redis高并发高可用(主从复制)
  • JP3-4-MyClub后台前端(二)
  • C++、STL面试题总结(三)
  • 考研408_数据结构笔记(第四章 串)
  • 第五十一章:AI模型服务的“百变面孔”:WebUI/CLI/脚本部署全解析
  • 功能安全和网络安全的综合保障流程
  • Transformers简单介绍 - 来源于huggingface
  • 虚幻GAS底层原理解剖五 (AS)
  • 从案例学习cuda编程——线程模型和显存模型
  • git 清理submodule
  • PowerShell部署Windows爬虫自动化方案
  • 【ArcGIS】分区统计中出现Null值且Nodata无法忽略的问题以及shp擦除(erase)的使用——以NDVI去水体为例
  • DevOps时代的知识基座革命:Gitee Wiki如何重构研发协作范式
  • Unity轻量观察相机
  • 利用DeepSeek编写go语言按行排序程序
  • centos配置java环境变量
  • Go语言 单元测试
  • 后端服务oom
  • 商品详情数据的秒级更新如何运用京东 API 实现?
  • Debian系统更新实现
  • Docker国内可用镜像(2025.08.06测试)