当前位置: 首页 > 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.xdnf.cn/news/1253881.html

相关文章:

  • Kubernetes中无法删除一个对象,持续处于Terminating状态的解决方案
  • Linux发行版分类与Centos替代品
  • 大数据存储域——HDFS存储系统
  • 进阶向:AI聊天机器人(NLP+DeepSeek API)
  • 【感知机】感知机(perceptron)学习策略
  • Git 乱码文件处理全流程指南:从识别到彻底清除
  • WebView 中控制光标
  • VINS-Fusion+UWB辅助算法高精度实现
  • Pytest项目_day05(requests加入headers)
  • 移动端跨平台框架(支持Harmony、iOS、Android)
  • cacti
  • vue3 find 数组查找方法
  • TrustZone技术详解————这篇是AI写的包括图
  • [Oracle] SIGN()函数
  • 大数据存储域——Hive数据仓库工具
  • 第14届蓝桥杯Scratch_选拔赛_初级及中级(STEMA)真题2022年12月18日
  • 碰撞问题的分析
  • 链式数据结构
  • 基于最大似然估计的卡尔曼滤波与自适应模糊PID控制的单片机实现
  • 北京-4年功能测试2年空窗-报培训班学测开-第六十九天-投简历第一天-从兴奋到害怕
  • 【图像处理基石】浅谈3D城市生成中的数据融合技术
  • 从零开始用 Eclipse 写第一个 Java 程序:HelloWorld 全流程 + 避坑指南
  • 如何设计一个开放授权平台?
  • 用 “私房钱” 类比闭包:为啥它能访问外部变量?
  • 【AI智能编程】Trae-IDE工具学习
  • vector使用模拟实现
  • 排序算法(二)
  • Qt-桌面宠物
  • win10/11网络防火墙阻止网络连接?【图文详解】防火墙阻止连接网络的解决方法
  • Unity 调节 Rigidbody2D 响应速度的解决方案【资料】