ES6 核心语法手册


一、变量声明

关键字作用域是否可重定义是否可修改特性
let块级作用域替代 var 的首选
const块级作用域声明常量(对象属性可修改)
// 示例
let name = "Alice";
name = "Bob"; // ✅const PI = 3.14;
// PI = 3.15; ❌ 报错const user = { name: "John" };
user.name = "Mike"; // ✅ 对象属性可修改

二、箭头函数

// 传统函数
function sum(a, b) {return a + b;
}// 箭头函数
const sum = (a, b) => a + b;// 特性:
// 1. 无自己的 this(继承外层上下文)
// 2. 不能用作构造函数
// 3. 无 arguments 对象// 示例:this 绑定
const obj = {value: 10,getValue: function() {setTimeout(() => {console.log(this.value); // ✅ 输出 10(箭头函数继承 this)}, 100);}
};

三、模板字符串

const name = "Alice";
const age = 28;// 多行字符串
const bio = `姓名:${name}
年龄:${age}
职业:工程师`;// 表达式计算
console.log(`明年年龄:${age + 1}`); // 输出:明年年龄:29// 标签模板(高级用法)
function highlight(strings, ...values) {return strings.reduce((result, str, i) => `${result}${str}<mark>${values[i] || ''}</mark>`, '');
}
highlight`Hello ${name}`; // <mark>Hello</mark><mark>Alice</mark>

四、解构赋值

// 数组解构
const [first, second, , fourth] = [10, 20, 30, 40];
console.log(first); // 10// 对象解构
const { name, age: userAge } = { name: "Bob", age: 30 };
console.log(userAge); // 30// 函数参数解构
function getUser({ id, name = "Unknown" }) {console.log(`ID: ${id}, Name: ${name}`);
}
getUser({ id: 1 }); // ID: 1, Name: Unknown

五、扩展运算符与剩余参数

// 数组扩展
const arr1 = [1, 2];
const arr2 = [...arr1, 3, 4]; // [1, 2, 3, 4]// 对象扩展
const obj1 = { a: 1 };
const obj2 = { ...obj1, b: 2 }; // { a: 1, b: 2 }// 剩余参数
function sum(...numbers) {return numbers.reduce((acc, cur) => acc + cur, 0);
}
sum(1, 2, 3); // 6

六、类与继承

class Animal {constructor(name) {this.name = name;}speak() {console.log(`${this.name} makes a noise`);}
}class Dog extends Animal {constructor(name, breed) {super(name);this.breed = breed;}speak() {super.speak();console.log("Woof!");}
}const rex = new Dog("Rex", "Labrador");
rex.speak();

七、模块化

// 📁 math.js
export const PI = 3.14159;
export function square(x) { return x * x; }
export default function cube(x) { return x * x * x; }// 📁 app.js
import { PI, square } from './math.js';
import cube from './math.js'; // 导入默认导出console.log(square(PI)); // 9.8690227281

八、Promise 与异步

// 创建 Promise
const fetchData = () => new Promise((resolve, reject) => {setTimeout(() => Math.random() > 0.5 ? resolve("成功!") : reject("失败!"), 1000);
});// 使用 Promise
fetchData().then(data => console.log(data)).catch(error => console.error(error));// Async/Await
async function getData() {try {const result = await fetchData();console.log(result);} catch (error) {console.error(error);}
}

九、新增数据结构

类型特性常用方法
Set值唯一的集合add(), delete(), has()
Map键值对集合(键可以是任意类型)set(), get(), has()
WeakSet弱引用集合(仅存储对象)add(), delete(), has()
WeakMap弱引用键值对(键必须是对象)set(), get(), has()
// Set 示例
const uniqueNumbers = new Set([1, 2, 2, 3]);
console.log([...uniqueNumbers]); // [1, 2, 3]// Map 示例
const userMap = new Map();
userMap.set(1, { name: "Alice" });
console.log(userMap.get(1)); // { name: "Alice" }

十、其他重要特性

  1. Symbol - 创建唯一标识符

    const id = Symbol("uniqueID");
    console.log(id === Symbol("uniqueID")); // false
    
  2. 迭代器与生成器

    function* idGenerator() {let id = 1;while (true) yield id++;
    }
    const gen = idGenerator();
    console.log(gen.next().value); // 1
    
  3. Proxy 与 Reflect(元编程)

    const handler = {get(target, prop) {return prop in target ? target[prop] : 37;}
    };
    const p = new Proxy({}, handler);
    console.log(p.a); // 37
    

ES6 兼容性解决方案

  1. 使用 Babel 进行代码转换
  2. 配合 Webpack/Rollup 打包
  3. 核心特性现代浏览器已原生支持(可查 Can I Use)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/86345.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/86345.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/86345.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react菜单,动态绑定点击事件,菜单分离出去单独的js文件,Ant框架

1、菜单文件treeTop.js // 顶部菜单 import { AppstoreOutlined, SettingOutlined } from ant-design/icons; // 定义菜单项数据 const treeTop [{label: Docker管理,key: 1,icon: <AppstoreOutlined />,url:"/docker/index"},{label: 权限管理,key: 2,icon:…

gRPC协议

目录 1. gRPC协议介绍及构成 协议分层 协议关键字段 2. 示例&#xff1a;Greeter 服务 步骤1&#xff1a;定义 .proto 文件 步骤2&#xff1a;生成代码 3. Java代码示例 依赖配置&#xff08;Maven pom.xml&#xff09; 服务端实现 客户端实现 运行流程 关键机制 …

深度学习 w b

在深度学习中&#xff0c;权重 w 和 偏置 b 是神经网络的核心参数&#xff0c;它们的形态&#xff08;shape&#xff09;取决于网络结构和数据维度。以下是关于 w 和 b 的详细解析&#xff1a; 1. 数学表示与物理意义 权重 w&#xff1a; 连接神经元之间的强度&#xff0c;决定…

el-table 树形数据,子行数据可以异步加载

1、 <el-tableborder:header-cell-style"tableStyle?.headerCellStyle"ref"tableRef":data"tableData"row-key"id":default-expand-all"false" // 默认不展开所有树形节点:tree-props"{ children: children, hasC…

Vue中渲染函数的使用

Vue中渲染函数的使用 1. render函数2. h()的使用3. render函数和h函数的区分 vue中的渲染函数&#xff1a; 1.template2.render函数3.jsx -> js extension(jsx也是编译成render函数&#xff0c;可编程能力更强) 1. render函数 1.1. 认识h函数 1.1.1. Vue推荐在绝大多数情况…

【氮化镓】GaN HMETs器件物理失效分析进展

2021 年 5 月,南京大学的蔡晓龙等人在《Journal of Semiconductors》期刊发表了题为《Recent progress of physical failure analysis of GaN HEMTs》的文章,基于多种物理表征技术及大量研究成果,对 GaN HEMTs 的常见失效机制进行了系统分析。文中先介绍失效分析流程,包括使…

每日Prompt:治愈动漫插画

提示词 现代都市治愈动漫插画风格&#xff0c;现代女子&#xff0c;漂亮&#xff0c;长直发&#xff0c;20岁&#xff0c;豆沙唇&#xff0c;白皙&#xff0c;气质&#xff0c;清纯现代都市背景下&#xff0c;夕阳西下&#xff0c;一位穿着白色露脐短袖&#xff0c;粉色工装裤…

2025年牛客网秋招/社招高质量 Java 面试八股文整理

Java 面试 不论是校招还是社招都避免不了各种面试。笔试&#xff0c;如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的。关键在于理解企业的需求&#xff0c;明确自己的定位&#xff0c;以及掌握一定的应试技巧。 笔试部分&#xff0c;通常是对基础知识、…

在UI界面内修改了对象名,在#include “ui_mainwindow.h“没更新

​原因​&#xff1a;未重新编译UI文件​​ Qt的UI文件&#xff08;.ui&#xff09;需要通过​​uic工具&#xff08;Qt的UI编译器&#xff09;​​生成对应的ui_*.h头文件。如果你在Qt Designer中修改了对象名&#xff0c;但没有​​重新构建&#xff08;Rebuild&#xff09;…

前端获取接口数据流程

一、Free-Table组件分析 <free-table v-show"showTable" v-model:page"params.pageNum" 双向绑定当前页大小&#xff0c;支持动态更新 v-model:limit"params.pageSize" 双向绑定每页大小&#xff0c;支持动态更新 v-loading&…

Linux系统防火墙之iptables

防火墙在一个系统中就好像是一个国家的军队&#xff0c;所谓国无军不安&#xff0c;在系统中也是这样&#xff0c;防火墙可以保护系统被别人攻击&#xff0c;过滤垃圾流量等&#xff0c;那么今天我们就来了解一下Linux系统中的一种防火墙iptables。 目录 iptables概述 规则 …

vue项目使用svg图标

下面是在 Vue 3 项目中完整引入和使用 vite-plugin-svg-icons 的步骤 1、安装插件 npm install vite-plugin-svg-icons -D # 或 yarn add vite-plugin-svg-icons -D # 或 pnpm add vite-plugin-svg-icons -D 2、配置 Vite 在 vite.config.ts 或 vite.config.js 中配置&…

元器件基础学习笔记——结型场效应晶体管 (JFET)

场效应晶体管&#xff08;Field Effect Transistor&#xff0c;FET&#xff09;简称场效应管&#xff0c;是一种三端子半导体器件&#xff0c;它根据施加到其其中一个端子的电场来控制电流的流动。与双极结型晶体管 &#xff08;BJT&#xff09; 不同&#xff0c;场效应晶体管 …

拆解实战案例:电商ERP管理系统从需求到原型全流程设计

ERP即企业资源计划系统&#xff0c;全称为Enterprise Resource Planning&#xff0c;其核心在于运用系统化管理思想&#xff0c;为企业员工及管理层构建一个提供决策支持的管理系统平台。它汇聚贯通企业各个业务模块产生的数据流&#xff0c;实现资源配置与业务流程高效协同。尤…

【面试题】如何保证MQ的消息不丢失、不重复

文章目录 一、消息丢失问题的解决方案&#xff08;一&#xff09;发送端丢失&#xff08;二&#xff09;存储端丢失1. 同步刷盘2. Broker 集群 &#xff08;三&#xff09;消费端丢失 二、消息重复问题的解决方案&#xff08;一&#xff09;唯一键约束&#xff08;二&#xff0…

ArcGIS Maps SDK for JavaScript:使用图层过滤器只显示FeatureLayer的部分要素

文章目录 引言1 需求场景分析2精确过滤实现方案2.1 基础过滤语法2.2 动态过滤实现 3 模糊查询进阶技巧3.1 LIKE操作符使用3.2 特殊字段处理 4. 性能优化与注意事项4.1 服务端vs客户端过滤4.2 最佳实践建议 5 常见问题解答 引言 在地图应用开发中&#xff0c;图层过滤是常见的需…

day25-计算机网络-3

1. DNS解析流程 windows host文件是否配置域名对应的ip查询本地DNS缓存是否有这个域名对应的ip询问本地DNS&#xff08;网卡配置的&#xff09;是否知晓域名对应的ip本地DNS访问根域名解析服务器&#xff0c;但是根DNS只有顶级域名的记录&#xff0c;根告诉我们.cn顶级域名的D…

中达瑞和SHIS高光谱相机在黑色水彩笔墨迹鉴定中的应用

在文件检验与物证溯源领域&#xff0c;对书写材料&#xff08;如墨水&#xff09;进行快速、准确、无损的鉴别至关重要。由陈维娜等人撰写的《高光谱技术结合化学计量法鉴别黑色水彩笔墨迹》&#xff08;发表于《光谱学与光谱分析》2023年第7期&#xff09;利用中达瑞和SHIS凝采…

华为OD机考 - 水仙花数 Ⅰ(2025B卷 100分)

import java.util.*; public static Integer get(int count,int c){if(count<3||count>7){return -1;}//存储每位数的最高位……最低位int[] arr new int[count];List<Integer> res new ArrayList<>();for(int i(int) Math.pow(10,count-1);i<(int) Math…

Go 标准库 encoding/gob 快速上手

文章目录 1.简介2.基础3.类型和值4.编码细节5.安全6.主要函数6.1 注册1. 接口的底层类型在运行时才能确定2.类型标识的唯一性3.安全性与显式意图4.与结构体的自动处理对比5.示例分析为什么不能像 JSON 那样自动处理&#xff1f;总结 6.2 编码6.3 解码 7.示例7.1 编解码结构体7.…