ES6新增语法

embedded/2025/2/27 6:56:53/

一、定义变量

1.1 新增变量关键字

  • let 变量

  • const 常量

1.2 let/const 与var 的区别?

1.2.1 预解析

         var会进行与解析

        let/const没有与解析,必须先声明后使用

1.2.2重复变量名

  • var定义的变量可以崇明

  • let/const 不允许定义重名变量

1.2.3 块级作用域

  • var没有块级作用域,只有函数能限制变量的使用范围

  • let/const 有块级作用域,任何一个可执行代码的{}都会限制该变量的适用范围

1.3 let和const的区别

1.3.1 变量值可以变

  • let定义的变量可以修改值

  • const定义的变量不可以修改值

1.3.2 初始化赋值

  • let 可以定义的时候不赋值

  • const定义的时候必须赋值,而且一经赋值不允许修改

二、 ES6的箭头函数

2.1 定义

  • 是ES6语法内退出的一种新的书写函数的方式

  • 是对于 函数表达式 的简写形式

    • 事件源.on事件类型 = function(){ }

    • xxx.forEach(function(){ })

    • var obj = {fn:function(){ }}

2.2 语法

  • () => {}

  • ()书写形参的位置

  • => 箭头函数的标志

  • {}书写代码段位置

2.3 特点

  1. 可以省略小括号 不写

    • 当你的形参只有一个的时候,可以省略小括号

    • 没有形参或者两个及以上的时候,必须写小括号

  2. 可以省略大括号 不写

    • 当你的函数体内只有一句话的时候,可以不写的大括号

    • 并且会把这一句的结果当做该函数的返回值

  3. 箭头函数内没有 arguments

    • 箭头函数内没有

    • arguments就是形参的合集

  4. 箭头函数内没有this

    • 箭头函数内的this就是该作用域外部作用域的this

    • 箭头函数外面的函数this是什么,箭头函数内的this就是什么

      • 箭头函数自己没有this,使用的是其父级函数的this

  5. 箭头函数不能当做构造函数使用

    • 不能和 new 关键字连用

三、ES6 模板字符串

  • ES6模板字符串

    • ES6内新增的一种定义字符串的方法

    • 使用 反引号(``)定义字符串

  • 特点:

    • 可以换行书写

    • 可以直接解析变量,当你需要解析变量的时候,使用${变量}

四、ES6 函数形参默认值

  • 给函数的形参设置一个默认值,当你没有传递实参的时候,使用默认值

  • 直接只用 赋值符号(=)给形参赋值即可

五、 ES6 解构赋值

  • 作用:快速从对象或者数组内获取数据

  • 解构数组

    • 作用:快速从数组内获取数据

    • 注意:解构数组使用[]

    • 解构:var[变量] = 数组

      • 按照索引顺序,依次赋值

    • 多维解构

      • 数组怎么写,解构怎么写,数据换成变量

  • 解构对象

    • 作用:快速从对象内获取数据

    • 注意:解构数组使用{}

    • 解构:var{key} = 对象

      • 定义一个变量,获取的是该对象内同名key的数据

    • 起一个别名

      • 获取的是对象内的name属性,但是定义的变量名需要叫做n

      • var{key:别名} = 对象 ============== var{name:n} = 对象

    • 多维解构

      • 对象怎么写,解构怎么写,数据换成变量

javascript">var arr = [100, 200, 300, 400, 500]//普通写法// var a = arr[0]// var b = arr[1]// var c = arr[2]// var d = arr[3]// var e = arr[4]// console.log(a, b, c, d, e)//结构数组使用// var [a, b, c, d, e] = arr// console.log(a, b, c, d, e)// var arr2 = [[1, 2, 3, 4], 5, 6, 7, [8, 9]]// var [[a, b, c, d], e, f, g, [h, i]] = arr2// console.log(a, b, c, d, e, f, g, h, i)var obj = { name: 'jack', age: 18, gender: '男' }// var name = obj.name// var age = obj.age// var gender = obj.gendervar { name: a, gender: b, age: c } = objconsole.log(a, b, c)

六、ES6 扩展运算符

  • 扩展符:...

    • 展开运算符:数组,对象,实参

    • 合并运算符:解构,形参

  • 展开功能

    • 作用:展开数据合集(数组,对象,Set,Map,......)使用

    • 意义:就是把数据最外层的符号(包裹)去掉

javascript">// 1. 展开功能// var arr = [100,200,300,400,[10,20,30]] // console.log(arr)// console.log(...arr)// var arr2 = [...arr,[1,2,3]]// var arr2 = [arr,[1,2,3]]// console.log(arr2) // var obj1 = {name : 'jack' , age : 18 ,gender : '男'}// var obj2 = {...obj1,100:'abc'}// var obj3 = {obj1,100:'abc'}// console.log(obj2)// console.log(obj3)// 2. 合并功能// 解构的时候使用,形参的时候使用// 注意 :只要使用到合并功能,这个运算符只能书写一个,并且需要写在最后// var arr = [100,200,300,400,500] // var [a,...b] = arr// console.log(a,b)// function fn(a,...b){// 第一个实参赋值给 a ,第二个到最后一个实参,放在数组内 赋值给 b// console.log(a,b)// }

七、对象简写语法

  1. 当你的key和value一模一样的时候

    • value的是一个变量

    • 可以省略一个不写

  2. 当你的对象内的key对应的值是一个函数

    • 并且,不是箭头函数的时候

    • 可以省略function关键字和冒号(:)不写

javascript">var day = 3var houer = 12var minutes = 13var seconds = 22var obj = {day,houer,minutes,seconds}console.log(obj)var obj = {f1 : function() { console.log(this) },f2 : () => { console.log(this) },f3 () { console.log(this) }}obj.f1()   //  this  =>  objobj.f2()   //  this  =>  windowobj.f3()   //  this  =>  obj

八、ES6 的模块化开发(重点)

  • 把我们的完整功能,拆开称为一个一个的独立功能(模块)

    • 一个js文件就是一个独立模块

  • 根据业务需求,来进行模块整合

  • 当模块化开发的时候

    • 我们需要把多个逻辑书写在多个js文件内

    • 此时,每一个文件都是一个独立的文件,都是一个独立的模块作用域(文件作用域)

    • 该文件内,只能使用自己文件内的变量,不能使用其他文件内的变量

  • 导出/导入

    • 导出:在一个文件内,向外暴露一些内容

    • 导入:导入该文件的同时,拿到他向外暴露的内容

  • 浏览器使用ES6模块化语法的要求

    • script标签必须要有一个type = "module" 的属性

    • 页面必须要在服务器上打开(借助 live server)

  • 导出语法

    • 语法1:export default 你要导出的数据

      • 一个文件只能导出一个default数据

    • 语法2:export 定义变量= 值

      • 一个文件可以导出多个新定义的变量

    • 导入语法

      • 语法1:import 变量 from '文件'

        • 这个语法必须对应导出语法1

      • 语法2:import{导入的内容} from ‘文件’

        • 这个语法必须对应导出语法2

javascript"><script type="module" src="./index.js"></script>export const a = 100
export const b = 200unction isPrime() { console.log('isPrime') }
function randomNum() { console.log('randomNum') }
function randomColor() { console.log('randomColor') }
export default { isPrime: isPrime, randomNum: randomNum, randomColor: randomColor }import { a, b, c, d, e } from './comment.js'
import headerModer from './header.js'

九、ES6类语法

  • ES6 类语法

    • ES6 书写构造函数的方式

  • ES5 以前 - 构造函数

  • 因为构造函数的本质还是函数,所以可以和 new 关键字连用,也可以不连用

    • 缺点 :可以不依赖 new 自己直接调用

  • ES6 类

    • 语法 : class 类名 {构造器,原型上的方法}


http://www.ppmy.cn/embedded/167475.html

相关文章

在线抽奖系统——项目介绍

目录 项目介绍 页面预览 需求分析 管理员登录注册 人员模块 奖品模块 活动模块 抽奖模块 系统设计 系统架构 项目环境 数据库设计 安全设计 完整代码&#xff1a;项目完整代码/在线抽奖系统/lottery-system Echo/project - 码云 - 开源中国 项目介绍 利用 MySQ…

深度学习笔记数学方面——矩阵计算,自动求导

坚持每天打卡学习深度学习&#xff0c;今天学了数学部分。 1.列向量的导数是横向量 2 分子布局符号 分母布局符号对于分子布局和分母布局的结果来说&#xff0c;两者相差一个转置。 3.一些求导公式&#xff0c;加粗为向量 4.自动求导&#xff0c;计算一个函数在指定值上的导…

使用 Python 实现声纹和声音识别并集成到会议记录程序中

要使用 Python 实现声纹和声音识别并集成到会议记录程序中&#xff0c;可以按照以下步骤进行&#xff1a; 1. 安装必要的库 需要安装一些 Python 库&#xff0c;如 SpeechRecognition 用于语音识别&#xff0c;pyAudio 用于音频输入&#xff0c;resemblyzer 用于声纹识别。可…

【论文笔记】ClipSAM: CLIP and SAM collaboration for zero-shot anomaly segmentation

原文链接 摘要 近年来&#xff0c;CLIP 和 SAM 等基础模型在零样本异常分割 (ZSAS) 任务中展现出良好的性能。然而&#xff0c;无论是基于 CLIP 还是基于 SAM 的 ZSAS 方法&#xff0c;仍然存在不可忽视的关键缺陷&#xff1a;1) CLIP 主要关注不同输入之间的全局特征对齐&am…

AI手机的技术细节

前序&#xff1a;先说各个功能涉及到的技术&#xff0c;再说宏观系统架构。AI手机有这样几个做法&#xff0c;给手机侧边增加一个按键&#xff1b;把手机的语音助手做的很好&#xff0c;能够快速稳定的进行唤醒&#xff1b;通过特殊形式的触摸手机的曲面屏位置等来进行唤醒AI …

用PyTorch从零构建 DeepSeek R1:模型架构和分步训练详解

DeepSeek R1 的完整训练流程核心在于&#xff0c;在其基础模型 DeepSeek V3 之上&#xff0c;运用了多种强化学习策略。 本文将从一个可本地运行的基础模型起步&#xff0c;并参照其技术报告&#xff0c;完全从零开始构建 DeepSeek R1&#xff0c;理论结合实践&#xff0c;逐步…

清华大学DeepSeek赋能职场教程下载,清华大学DeepSeek文档下载(完成版下载)

文章目录 一、清华大学DeepSeek赋能职场教程下载二、DeepSeek的三种模式三、DeepSeek两种模型的对比四、DeepSeek两种模型的提示语差异:五、DeepSeek的应用场景: 一、清华大学DeepSeek赋能职场教程下载 该文档是清华大学DeepSeek在职场应用中的赋能展开&#xff0c;涵盖团队背…

计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型民宿推荐系统 hive民宿可视化 民宿爬虫 大数据毕业设计(源码+LW文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…