JavaScript

简介: 本教程涵盖 JavaScript 核心知识,包括函数定义、数组与对象操作、DOM 基础、异步编程、内置对象及调试方法,适合初学者快速掌握基础语法与常用技巧。

JavaScript 学习笔记

1. 函数

函数定义方式

// 函数声明
function greet(name) {
   
    return "Hello, " + name;
}

// 函数表达式
const add = function(a, b) {
   
    return a + b;
};

// 箭头函数
const multiply = (a, b) => a * b;

// 调用函数示例
console.log(greet("李四"));      // Hello, 李四
console.log(add(5, 3));         // 8
console.log(multiply(4, 6));    // 24

2. 数组操作

let fruits = ["苹果", "香蕉", "橙子"];

// 访问数组元素
console.log(fruits[0]);        // 苹果
console.log(fruits.length);    // 3

// 添加元素
fruits.push("葡萄");           // 末尾添加
fruits.unshift("草莓");        // 开头添加

// 删除元素
fruits.pop();                 // 删除末尾元素
fruits.shift();               // 删除开头元素

// 数组遍历
fruits.forEach(function(fruit, index) {
   
    console.log(index + ": " + fruit);
});

// 数组映射
let numbers = [1, 2, 3, 4];
let doubled = numbers.map(x => x * 2);
console.log(doubled);         // [2, 4, 6, 8]

3. 对象操作

// 创建对象
let person = {
   
    name: "张三",
    age: 25,
    hobbies: ["读书", "游泳"],
    greet: function() {
   
        return "你好,我是" + this.name;
    }
};

// 访问对象属性
console.log(person.name);           // 张三
console.log(person["age"]);         // 25

// 添加/修改属性
person.job = "程序员";
person["city"] = "北京";

// 调用对象方法
console.log(person.greet());        // 你好,我是张三

4. DOM 操作基础

// 获取元素
let element = document.getElementById("myId");
let elements = document.getElementsByClassName("myClass");

// 修改内容
element.innerHTML = "新的HTML内容";
element.textContent = "纯文本内容";

// 修改样式
element.style.color = "blue";
element.style.fontSize = "18px";

// 事件处理
element.addEventListener("click", function() {
   
    alert("元素被点击了!");
});

5. 异步编程概念

// 回调函数示例
function delayedGreeting(name, callback) {
   
    setTimeout(() => {
   
        callback("Hello, " + name);
    }, 1000);
}

delayedGreeting("张三", function(message) {
   
    console.log(message); // 1秒后输出: Hello, 张三
});

// Promise 基础用法
let promise = new Promise((resolve, reject) => {
   
    let success = true;
    if (success) {
   
        resolve("操作成功");
    } else {
   
        reject("操作失败");
    }
});

promise.then(result => {
   
    console.log(result);
}).catch(error => {
   
    console.log(error);
});

6. 常用内置对象和方法

String 方法

let text = "Hello JavaScript";
console.log(text.length);           // 17
console.log(text.toUpperCase());    // HELLO JAVASCRIPT
console.log(text.toLowerCase());    // hello javascript
console.log(text.indexOf("Java"));  // 6
console.log(text.substring(0, 5));  // Hello

Math 对象

console.log(Math.PI);        // 3.141592653589793
console.log(Math.random());  // 0-1之间的随机数
console.log(Math.floor(3.7)); // 3 向下取整
console.log(Math.ceil(3.2));  // 4 向上取整
console.log(Math.round(3.5)); // 4 四舍五入

7. 调试和错误处理

// 控制台输出
console.log("普通信息");
console.warn("警告信息");
console.error("错误信息");

// try-catch 错误处理
try {
   
    let result = someUndefinedFunction();
} catch (error) {
   
    console.log("发生错误: " + error.message);
} finally {
   
    console.log("始终执行的代码");
}
相关文章
|
28天前
|
人工智能 弹性计算 自然语言处理
云速搭 AI 助理发布:对话式生成可部署的阿里云架构图
阿里云云速搭 CADT(Cloud Architect Design Tools)推出智能化升级——云小搭,一款基于大模型的 AI 云架构助手,致力于让每一位用户都能“动动嘴”就完成专业级云架构设计。
371 31
|
29天前
|
存储 消息中间件 人工智能
Lazada 如何用实时计算 Flink + Hologres 构建实时商品选品平台
本文整理自 Lazada Group EVP 及供应链技术负责人陈立群在 Flink Forward Asia 2025 新加坡实时分析专场的分享。作为东南亚领先的电商平台,Lazada 面临在六国管理数十亿商品 SKU 的挑战。为实现毫秒级数据驱动决策,Lazada 基于阿里云实时计算 Flink 和 Hologres 打造端到端实时商品选品平台,支撑日常运营与大促期间分钟级响应。本文深入解析该平台如何通过流式处理与实时分析技术重构电商数据架构,实现从“事后分析”到“事中调控”的跃迁。
274 55
Lazada 如何用实时计算 Flink + Hologres 构建实时商品选品平台
|
29天前
|
存储 消息中间件 人工智能
Fluss:重新定义实时数据分析与 AI 时代的流式存储
Apache Fluss(孵化中)是新一代流式存储系统,旨在解决传统架构中数据重复复制、高成本与复杂性等问题。它基于 Apache Arrow 构建,支持列式存储、实时更新与高效查询,融合流处理与湖仓架构优势,适用于实时分析、AI 与多模态数据场景。Fluss 提供统一读写、冷热分层与开放生态,已在阿里巴巴大规模落地,助力企业实现低成本、高效率的实时数据处理。
225 25
|
20天前
|
运维 Kubernetes Cloud Native
《K8s网络策略与CNI插件交互问题分析:基于真实案例的排查方法》
本文聚焦云原生集群中因网络策略配置缺陷引发的跨节点服务通信故障。某开源分布式存储系统的数据平面组件突发大规模连接中断,跨节点gRPC请求失败率激增,但基础网络层与节点状态显示正常,呈现隐蔽的"策略级"故障特征。技术团队排查发现,新升级节点的CNI插件与网络策略控制器版本不匹配,叠加节点亲和性(指定网卡型号)与网络能力(驱动兼容性)的错配,导致工作负载被调度至功能不完整的节点。进一步分析揭示,命名空间级NetworkPolicy的规则冲突在跨节点流量经不同厂商CNI插件处理时被放大,相同流量在Calico与Cilium引擎中呈现差异化过滤结果。通过构建策略沙箱验证、优化节点能力匹配模型、实施故障
116 28
|
20天前
|
SQL 分布式计算 监控
终于有人把数据倾斜讲清楚了
本文深入剖析大数据处理中的“数据倾斜”问题,从现象到本质,结合真实踩坑经历,讲解数据倾斜的成因、典型场景及四步精准定位方法,帮助开发者从根本上理解和解决这一常见难题。
终于有人把数据倾斜讲清楚了
|
1月前
|
人工智能 JSON 数据库
从“数据拼凑”到“精准断案”:深度剖析RAG系统中信息完整性的关键作用
本文分享了在构建智能缺陷查重系统过程中,遇到的LLM“数据拼凑”问题及其解决过程。问题根源并非模型或Prompt设计,而是RAG流程中索引与检索阶段的“信息断层”导致模型在结构化数据缺失时产生幻觉。通过将结构化字段完整纳入索引与检索过程,最终实现准确一致的查重结果,为构建企业级RAG应用提供了宝贵经验。
134 18
从“数据拼凑”到“精准断案”:深度剖析RAG系统中信息完整性的关键作用
|
20天前
|
JSON 人工智能 安全
HTTP工具解析:功能、应用场景与选型指南
本内容系统介绍了主流接口测试工具的核心功能、应用场景及选型建议。涵盖请求构造、响应分析、自动化测试与团队协作等模块,支持多环境参数切换、JSON/XML数据格式及性能指标监控。典型场景包括接口调试、Mock服务、高并发压测等,推荐工具如Postman、Apifox、JMeter、Locust等。同时分析了低代码化、AI辅助、协议扩展等技术趋势与安全合规挑战。
67 5
|
23天前
|
JavaScript 前端开发 API
Vue 3:现代前端开发的革新之作
Vue 3:现代前端开发的革新之作