首页 > 其他分享 >ES678新特性

ES678新特性

时间:2022-08-24 22:46:27浏览次数:66  
标签:const name 特性 关键字 let ES678 func obj

ECMAScript介绍

  1. ECMA:欧洲计算机制造商协会(European Computer Manufacturers Association)。
  2. ECMAScript:由ECMA国标制定的脚本程序设计语言

ES6新特性

  1. let关键字:变量声明使用let关键字,弃用var关键字
//let a = 100
// 1. let关键字声明的变量不允许重复声明
//let a = 300 // Identifier 'a' has already been declared

// 2. let声明的变量a存在块级作用域
for (let a = 0; a <= 3; a++) {
    
}
console.log(a) // a is not defined
  1. const关键字:声明同时定义常量
const PI = 3
// 1. 常量的值不允许被修改
PI = 3.14 // Assignment to constant variable.

// const关键字类似于C语言中的指针常量,不允许修改const关键字修饰的变量的值
// 所以一般声明对象类型使用 const,非对象类型声明选择 let
// 对象类型包括字符串和数组

const obj = {
    name : '张三',
    age : 23
}
// 对象的地址值不可以变化,但是对象中的属性内容可以
obj.age = 33
obj = {} // error:Assignment to constant variable
  1. 解构赋值
// 1.数组的解构赋值
const arr = [1,2,3]
let [a,b,c] = arr
// 2.对象的解构赋值
const obj = {
    name: '张三',
    age: 23
}
let {name,age} = obj
  1. 模板字符串:使用反引号标识
// 1. 模板字符串中可以出现换行
const str = `Hello,
World`
// 2.模板字符串可以和变量进行拼接
let name = '张三'
const string = `Hi,${name}`
  1. 对象的写法可以简写
// 对象中的属性和方法可以简写
let name = '张三'
function func() {

}
const obj = {
    // 等价于name: name
    name,
    // 等价于func: func
    func,
}
  1. 箭头函数:注意this指针的指向问题
  2. rest参数:用在函数形参上,用于获取函数的实参,代替arguments
// rest参数适用于函数参数不定的函数
function func(...args) {
    console.log(args)
}
func(1,2,3,'test')
  1. spread扩展运算符用于函数实参上面,也是三个点。可以将一个数组转为用逗号分隔的参数序列,对数组进行解包。
const obj = [1, 2, 3]
function func() {
    console.log(arguments)
}
func(...obj)
  1. Symbol:ES6引入一种类似于字符串的新的原始数据类型
  2. 迭代器Iterator:ES6提供新的遍历方式,使用for...of循环。具备Iterator接口的类就可以使用这种遍历方式
  3. 生成器:生成器函数是ES6提供的一种异步编程解决方案
  4. Promise:Promise是ES6引入的异步编程的新解决方案。语法上 Promise是一个构造函数,用来封装异步操作并可以获取其成功或失败的结果。
  5. Set:ES6提供的一种新的数据结构,可以去重
  6. Map:ES6提供的一种新的数据结构,键值对的集合
  7. 引入类的概念,可以通过关键字class定义类
  8. ES6的模块化
    1. import关键字
    2. export关键字

标签:const,name,特性,关键字,let,ES678,func,obj
From: https://www.cnblogs.com/xiaocer/p/16622525.html

相关文章

  • C++11新特性
    c++11增加新关键字auto:实现自动类型的推导使用auto关键字定义的变量必须要有初始化表达式。#include<iostream>usingnamespacestd;classExample{private:in......
  • C++一些新的特性的理解
    一、智能指针为什么需要智能指针?智能指针主要解决一下问题:内存泄漏:内存手动释放,使用智能指针可以自动释放共享所有权的指针的传播和释放,比如多线程使用同一个对象时......
  • Android各个版本的主要新特性
    5.0新特性—2014年(Lollipop)全新的MaterialDesign设计风格。支持64位ART虚拟机。放弃了之前一直使用的Dalvik虚拟机,改用了ART虚拟机,实现了真正的跨平台编译。(todo:弄......
  • WPF开发快速入门【2】WPF的基本特性(Style、Trigger、Template)
    概述本文描述几个WPF的常用特性,包括:样式、触发器和控件模板。 样式/StyleStyle就是控件的外观,在XAML中,我们通过修改控件的属性值来设置它的样式,如:<!--直接定义styl......
  • WPF开发快速入门【3】WPF的基本特性(附加属性)
    概述本文描述WPF的附加属性。对于使用MVVM框架的项目,附加属性是非常重要的一个特性。 在MVVM框架下,ViewModel的代码通过控件的依赖属性来控制控件的,例如://ViewModel......
  • 特性CallerMemberName
    开发过程中,我们有时候需要记录一下调用信息1publicstaticvoidTraceMessage(stringmessage,2[CallerMemberName]stringmemberName="",3......
  • JDK新特性
    1.Lambda表达式1.1体验Lambda表达式【理解】案例需求启动一个线程,在控制台输出一句话:多线程程序启动了实现方式一实现步骤定义一个类MyRunnable实现Runnable接......
  • java的特性及优势
    简单性面向对象(万物皆对象)可移植性高性能分布式动态性(反射机制)多线程安全性健壮性java为什么能成功?Java能够取得如此的成功是因为它在设计......
  • ECMAScript 新特性
    1.es2022   (1)#声明私有属性和私有方法:声明它的范围内引用   (2)#propinobj检查私有属性   (3)顶层使用await无需asyncfunction   (4)thr......
  • Java SE 18 新增特性
    JavaSE18新增特性作者:Grey原文地址:JavaSE18新增特性源码源仓库:Github:java_new_features镜像仓库:GitCode:java_new_features默认使用UFT-8编码在JavaSE......