javascript ES6新增特性

本文深入探讨了ES6(ECMAScript 6)引入的重要新特性,包括变量声明方式如let和const,解构赋值,模板字符串,箭头函数,this数据场景,数组和函数的扩展,以及新数据类型Symbol的使用。通过具体示例,读者可以全面了解这些新特性的语法和应用场景。

声明变量

var 变量名 = 变量值; // 声明变量,函数作用域

let 变量名 = 变量值; // 声明变量,块级作用域 (ps. 作用域内不能重复定义、能修改

const 变量名 = 变量值; // 声音常量,块级作用域(ps. 作用域内不能重复定义、不能修改

解构赋值

let [变量名=默认值, 变量名=默认值, 变量名=默认值]= [‘神龙教主’, 18]

let {uname:变量名,…,sex:变量名,键:变量名=默认值} = {uname:‘webopenfather’, age: 18}

模板字符串

语法说明**

反引号 英文状态 1 左边的键 或者 esc下面的键

遇到变量 ${变量名}

`内容… ${变量名} 内容… `

函数的扩展

this数据场景

1、this数据场景!!!

A普通函数调用 this => window对象 function 函数名() { this }

B对象函数调用 this => 对象自身 var obj = {say: function() { this }}

C事件处理函数调用 this => this事件源 标签对象.事件类型 = function(){ this }

D定时器调用 this => window对象(新

E箭头函数中调用 this => 父function中的this 没有父就是window对象(新

箭头函数

【ES5】function 函数名(形参,…,形参n) {}
↓ 去掉 function 函数名 接着 在() 后面加 =>
【ES6】(形参,…,形参n) => {}

function 函数名(形参) {
var 变量名 = 形参 || 默认值
}

数组的扩展

成员查找find()、findIndex()

数组.find(实战)

let 变量名 = 数组.find(function(item) { // item就是数组中的值,会挨个赋值给item
return 判断条件 // 条件成立 就会终止遍历 将当前item赋值给变量
})

let 变量名 = 数组.find((item) => { // item就是数组中的值,会挨个赋值给item
return 判断条件 // 条件成立 就会终止遍历 将当前item赋值给变量
})

let 变量名 = 数组.findIndex((item) => {
return 条件
})

新Symbol数据类型

数据结构(Set 、Map)

■语法说明

增:m.set(键,值)

获取/删除/检测:m.get/delete/has(键)

清除:m.clear()

获取所有键:m.keys()

获取所有值:m.values()

循环

forof (既可以遍历字符串、数组等 还可以遍历新的数据结构 主要用来就是遍历心的数据结构

### JavaScript ES6特性概述 #### 变量声明方式 在 ES6 中,`let` 和 `const` 关键字被引入用于声明变量。这解决了以前使用 `var` 定义全局作用域或整个函数体内有效的问题。通过 `let` 声明的变量仅限于所在代码块的作用范围内;而 `const` 则用来定义不可重新赋值的常量[^1]。 #### 字符串增强功能 ES6 提供了模板字符串的支持,允许嵌入表达式并支持多行文本。这种语法使得构建动态字符串更加直观简单。例如: ```javascript const name = 'Alice'; console.log(`Hello ${name}, welcome!`); // 输出:"Hello Alice, welcome!" ``` 此外还增加了许多实用的方法如 `includes()`, `startsWith()` 和 `endsWith()` 来操作字符串[^2]。 #### 函数相关改进 箭头函数简化了匿名函数的写法,并且自动绑定 this 上下文。对于具有单一参数的情况可以省略括号,返回单个表达式的语句也可以去掉大括号和 return 关键词: ```javascript const double = num => num * 2; ``` 同时,在传递默认参数以及剩余参数方面也有了更好的解决方案——可以通过设置形参后的等号来指定缺省值,或者利用扩展运算符收集不定数量的实际参数。 #### 对象与数组解构 解构赋值可以从复杂的数据结构中提取数据并分配给多个变量。它不仅适用于对象还可以应用于数组成员之间相互交换位置变得非常容易实现[^3]: ```javascript const {a,b}={a:'hello',b:'world'}; console.log(a); // hello console.log(b); // world ``` #### Class 类机制 虽然 JavaScript 是基于原型的语言,但是为了使面向对象编程更为清晰易懂,ES6 引进了 class 这一概念。尽管内部仍然依赖原型链工作原理不变,不过现在开发者能够像其他主流 OOPLs 那样创建类及其继承关系[^4]。 #### 扩展运算符 (Spread Operator) 该符号可以在调用函数时展开可迭代对象(比如数组),从而代替 apply 方法的应用场景; 同时也能方便地复制浅层副本而不必借助 slice 或者 concat 等手段[^5]。 #### Fetch API 值得注意的是 fetch api 被认为是对 ajax 技术的一种补充而非替代品。其优势在于采用了 promise-based 的设计模式让异步请求流程控制变得更加简洁高效[^6]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值