ES6学习笔记

news/2024/11/22 20:34:31/

ECMAScript6学习笔记

ECMAScript 和 JavaScript 的关系,前者是后者的规格,后者是前者的一种实现。ECMAScript 的其他方言还有如 Jscript 和 ActionScript。ES6相对之前的版本语法更严格,新增了面向对象的很多特性以及一些高级特性。

1.let声明变量

var 声明的变量 没有局部作用域。

let 声明的变量 有局部作用域。

    {var a = 1;let b = 2;}console.log(a)console.log(b)  //b is not defined

var 可以声明多次。

let 只能声明一次。

    var m = 1;var m = 2;let n = 10;let n = 20;  //'n' has already been declaredconsole.log(m)console.log(n)

2.const声明常量(只读)

声明之后不允许改变,且一但声明必须初始化,否则会报错。

    // 1、声明之后不允许改变 const PI = "3.1415926"PI = 3     // TypeError: Assignment to constant variable.// 2、一但声明必须初始化,否则会报错const MY_AGE  // Missing initializer in const declaration

3.解构赋值

解构赋值是对赋值运算符的扩展。是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值,方便了复杂对象中数据字段获取。

①数组解构(取数组元素的值)

    //---------传统方法------let a = 1,b = 2,c = 3;console.log(a, b, c)//--------ES6方法-------let [x, y, z] = [1, 2, 3]console.log(x, y, z)

②对象解构(取对象元素的值)

    let user = {name: 'parker',age: 18}//--------传统方法---------let name1 = user.name;let age1 = user.age;console.log(name1, age1)//--------ES6方法----------let {name,age} = userconsole.log(name, age)

注意:对象结构中的变量必须是user中的属性,即属性名要一致。

4.模板字符串

模板字符串相当于加强版的字符串,用反引号 `,除了作为普通字符串,还可以用来①定义多行字符串,还可以②在字符串中加入变量和表达式。

    let name = "parker"let age = 20let info = `My name is ${name}.I am ${age+1} years old`console.log(info)

字符串插入变量和表达式。变量名写在 中,{} 中,中,{} 中可以放入 JavaScript 表达式。

5.声明对象简写

    //传统方式定义对象const name = "parker"const age = 20const user1 = {name:name,age:age}console.log(user1)//ES6方式定义对象const user2={name,age}console.log(user2)

6.对象拓展运算符

拓展运算符(…)用于取出参数对象所有可遍历属性,并把这些属性拷贝到当前对象。

    //1.对象复制let person1={name:"parker",age:18}let someone={...person1}console.log(someone)//2.对象合并let name = {name:"parker"}let age = {age:20}let person2 = {...name,...age}console.log(person2)

7.箭头函数

箭头函数提供了一种更加简洁的函数书写方式,多用于匿名函数的定义。基本语法是:参数 => 函数体 。

    //传统方式定义函数var f1=function(a){return a}console.log(f1(3))var f3=function(m,n){return m+n}console.log(f3(3,2))//ES6方法使用箭头函数定义。基本语法:参数 => 函数体var f2 = a=>a  //参数为a,返回值为aconsole.log(f2(3))var f4 = (m,n)=>m+nconsole.log(f4(3,2))

注意事项:

① 当箭头函数没有参数或者有多个参数,要用 () 括起来。

② 当箭头函数函数体有多行语句,用 {} 包裹起来,表示代码块,

③ 当只有一个参数时,可以省略()。当只有一行语句,并且需要返回结果时,可以省略 {} , 结果会自动返回。


http://www.ppmy.cn/news/12140.html

相关文章

糖果(差分约束+找最小值)

糖果 题目描述 幼儿园里有 n 个小朋友, lxhgww 老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果。 但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果…

Simulink 自动代码生成电机控制:关于无传感控制开环启动控制的仿真和开发板运行

目录 开环启动原理 开环启动建模实现 开环启动仿真 代码生成和验证 总结 开环启动原理 永磁同步电机开环三步启动是比较传统也是比较常用的启动方式,典型的启动有: 对齐:也说是说的转子预定位,就是通过手动给定一个初始角度…

javascript模块那些事儿:commonJS和ES module

前言 模块定义,包管理,以及加载问题是所有编程语言不得不面临的问题,死生存亡之地,不可不察也。 什么是一个模块? 一个模块就是一个js/ts文件,可以定义函数、类、数据,并export出来让外部可见…

分布式文件系统

常见的文件系统:FAT16/FAT32、NTFS、HFS、UFS、APFS、XFS、Ext4等 。 通过概念可以简单理解为:一个计算机无法存储海量的文件,通过网络将若干计算机组织起来共同去存储海量的文件,去接收海量用户的请求,这些组织起来的…

【数据结构】优先级队列(堆)

文章目录1.优先级队列1.1概念2.优先级队列的模拟实现2.1堆的存储方式2.2堆的创建2.3建堆的复杂度2.4堆的插入和删除3.常用接口介绍1.优先级队列 1.1概念 队列是一种先进先出的数据结构。但有些情况下,操作的数据可能带有优先级,一般出队列时&#xff0…

乐鑫 2022 提前批面试题

一面 自我介绍在这简历的四个项目中你最熟悉哪一个?整体介绍一下,画整体框图。在这个项目中你主要负责哪个部分?详细讲一下接收到图像数据之后你的算法工作。为什么帧数选取是 512 帧?为什么选用两种方法进行估计?系统的精确度?你觉得在什么样的情况下输出的准确度会降低…

redis基本数据结构使用与场景

string(字符串)用法使用场景list(列表)用法使用场景set(不可重复,乱序的集合)用法使用场景zset (相对于set集合 增加了score属性,score可用于排序)用法使用场…

2022年度总结,迎接2023

目录 我和CSDN的2022 初次见面: 你我的成长: 博客: 比赛: 我和CSDN的2023 我和CSDN的2022 初次见面: CSDN你好啊!我跟你的初次见面在于2022年4月2日!!! 这这半年内…