ES6 新特性 ES6使用 超实用
ECMAScript 学习
ES5-数组的新方法
forEach
forEach方法对数组的每个元素执行一次提供的函数。功能等同于for循环.
应用场景:为一些相同的元素,绑定事件处理器!
var arr = ['张飞', '关羽', '赵云', '马超']
//第一个参数:item,数组的每一项元素
//第二个参数:index,数组的下标
//第三个参数:array,正在遍历的数组
//常用的参数就第一个和第二个,第三个参数基本上没啥用
arr.forEach(function(item, index, array) {
console.log(item, index, array)
})
// 箭头函数写法----箭头函数说明在后面
arr.forEach((item, index, array) => {
console.log(item, index, array)
})
// 优点 1. 不占用全局变量
// 优点 2: 结合箭头函数使用
map
map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。返回的数组的长度和原数组是一样的
var arr = [1, 2, 3, 4, 5] // 1 4 9 16 25
//第一个参数:element,数组的每一项元素
//第二个参数:index,数组的下标
//第三个参数:array,正在遍历的数组
//返回值:一个新数组,每个元素都是回调函数的结果。
var newArray = arr.map(function(element, index, array) {
return element * element
})
console.log(newArray) //[1,4,9,16,25]
// 箭头函数写法
var newArray = arr.map(element => element * element)
filter
filter用于过滤掉“不合格”的元素
返回一个新数组,如果在回调函数中返回 true,那么就留下来,如果返回 false,就扔掉,因此返回的数组的长度和原数组的长度不一定一致
var arr = [1000, 5000, 20000, 3000, 10000, 800, 1500]
//第一个参数:element,数组的每一项元素
//第二个参数:index,数组的下标
//第三个参数:array,正在遍历的数组
//返回值:一个新数组,存储了所有返回true的元素
var newArray = arr.filter(function(element, index, array) {
if (element > 5000) {
return false
} else {
return true
}
})
console.log(newArray) //[1000, 5000, 3000, 800, 1500]
// 箭头函数写法
var newArray = arr.filter(element => element > 5000)
some
some用于遍历数组,如果有至少一个满足条件,就返回 true,否则返回 false。同样的每一个元素都会执行一遍 function,相当于最后返回的结果进行了一个 ||运算,全为 false 才是 false
var arr = [2, 4, 6, 8, 10, 21] // 判断数组是否包含奇数
//第一个参数:element,数组的每一项元素
//第二个参数:index,数组的下标
//第三个参数:array,正在遍历的数组
//返回值:布尔类型的值,只要有一个回调函数返回true,就返回true
var flag = arr.some(function(element, index, array) {
console.log(element, index, array)
if (element % 2 == 1) {
return true
} else {
return false
}
})
console.log(flag) //true
// 箭头函数写法
var flag = arr.some(element => element % 2 == 1)
every
every用于遍历数组,只有当所有的元素返回 true,才返回 true,否则返回 false,每个元素执行完 function 返回的结果做一个 && 运算,全为 true 结果才是 true
var arr = [2, 4, 6, 8, 10, 21] //判断数组是否都是偶数
//第一个参数:element,数组的每一项元素
//第二个参数:index,数组的下标
//第三个参数:array,正在遍历的数组
//返回值:布尔类型的值,只有当所有的元素返回true,才返回true,否则返回false。
var flag = arr.every(function(element, index, array) {
console.log(element, index, array)
if (element % 2 == 0) {
return true
} else {
return false
}
})
console.log(flag) //false
// 箭头函数写法
var flag = arr.some(element => element % 2 == 0)
forEach: 作用:只会让每个元素执行一次函数, 没有别的功能 for 循环
map: 作用:返回一个新的数组,长度和原数组一样 新数组会保存每次 function 返回的值
filter: 作用:得到一个新数组, 保留哪些满足条件(返回 true)
some: 作用:得到布尔值 只要有函数返回 true,整体结果就是 true
every: 作用:得到布尔值,要所有的函数都返回 true,结果就是 true
ES6 常用点
变量声明
ES6 中提供了两个声明变量的关键字:const 和 let
注意:
在ES5中var function 声明的全局变量都是顶级对象(window)的属性,而ES6中声明的全局变量不属于顶级对象的属性
var age = 18
console.log(this.age) // 18
let age = 18
console.log(this.age) // undefined
let 使用
ES6 新增了let命令,用来声明变量。它的用法类似于var。
let 声明的变量只有在当前作用域有效
不存在变量提升
不允许重复声明
块级作用域
{
let a = 10
var b = 1
}
a // ReferenceError: a is not defined.
b // 1
// let 的情况
console.log(bar) // 报错ReferenceError
let bar = 2
let a = 10
let a = 1 //报错 Identifier 'a' has already been declared
for循环的计数器,就很合适使用let命令。
for (let i = 0; i < 10; i++) {
// ...
}
console.log(i)
// ReferenceError: i is not defined
上面代码中,计数器i只在for循环体内有效,在循环体外引用就会报错。
下面的代码如果使用var,最后输出的是10。
var a = []
for (var i = 0; i < 10; i++) {
a[i] = function() {
console.log(i)
}
}
a[6]() // 10
ES6 新特性 ES6使用 超实用的更多相关文章
- 前端入门21-JavaScript的ES6新特性
声明 本篇内容全部摘自阮一峰的:ECMAScript 6 入门 阮一峰的这本书,我个人觉得写得挺好的,不管是描述方面,还是例子,都讲得挺通俗易懂,每个新特性基本都还会跟 ES5 旧标准做比较,说明为什 ...
- ES6新特性概览
本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony( ...
- ES6新特性之模板字符串
ES6新特性概览 http://www.cnblogs.com/Wayou/p/es6_new_features.html 深入浅出ES6(四):模板字符串 http://www.infoq.c ...
- Atitit js版本es5 es6新特性
Atitit js版本es5 es6新特性 Es5( es5 其实就是adobe action script的标准化)1 es6新特性1 Es5( es5 其实就是adobe action scrip ...
- ES6新特性:Proxy代理器
ES6新特性:Proxy: 要使用的话, 直接在浏览器中执行即可, node和babel目前还没有Proxy的polyfill;,要使用的话,直接在浏览器中运行就好了, 浏览器的兼容性为:chrome ...
- ES6新特性(函数默认参数,箭头函数)
ES6新特性之 函数参数的默认值写法 和 箭头函数. 1.函数参数的默认值 ES5中不能直接为函数的参数指定默认值,只能通过以下的变通方式: 从上面的代码可以看出存在一个问题,当传入的参数为0或者 ...
- ES6新特性简介
ES6新特性简介 环境安装 npm install -g babel npm install -g babel-node //提供基于node的REPL环境 //创建 .babelrc 文件 {&qu ...
- 轻松学会ES6新特性之生成器
生成器虽然是ES6最具魔性的新特性,但也是最难懂得的一节,笔者写了大量的实例来具体化这种抽象的概念,能够让人一看就懂,目的是希望别人不要重复或者减少笔者学习生成器的痛苦经历. 在说具体的ES6生成器之 ...
- 必须掌握的ES6新特性
ES6(ECMAScript2015)的出现,让前端开发者收到一份惊喜,它简洁的新语法.强大的新特性,带给我们更便捷和顺畅的编码体验,赞! 以下是ES6排名前十的最佳特性列表(排名不分先后): 1.D ...
- 你不知道的JavaScript--Item24 ES6新特性概览
ES6新特性概览 本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代 ...
随机推荐
- Mac新手必看Mac入门基本知识图文教程
你已经是Mac的用户了吗?还是准备入手的新手呢? 赶快看看"Mac入门基本知识"吧! macbook系统基础内容简介 Mac入门基本知识 1.主界面结构图基本知识介绍(如图所示) ...
- Docker 容器基本操作(基础)
拉钩教育App版权问题,如果转载请附带拉钩教育等信息 一,什么是容器 容器是基于镜像创建的可运行实例,并且单独存在,一个镜像可以创建出多个容器 二.容器生命周期,五个状态 stopped : 停止状态 ...
- Cannot read property 'xxxx' of null
在使用的vue3+element-plus的项目中,我使用了form表单对数据进行校验. 但是使用了: refDom.value.validate((valid) => {}) 后,过一会控制台 ...
- nginx客户端真实IP配置
https://www.cnblogs.com/kevingrace/p/8269955.html include mime.types; default_type application/octet ...
- 支持批量图片转文字的【OCR】文字识别工具,支持截图识别,速度快,准确度高,免费OCR,开源软件
想必大家偶尔也有需要从图片中提取文字的需求,虽然现在手机上都自带了拍照识别功能,可是从电脑上的图片传到手机识别再将结果发回来实 在是有点麻烦,尤其当图片数量较多时,更是费时费力,使用网页版工具又要面临 ...
- 原始的jdbc
jdbc的概念 什么是jdbc? jdbc是java数据库连接.为多种关系型数据库提供统一的访问. jdbc的操作步骤 导入jar包 加载驱动 获取数据库连接 获取执行者对象 执行SQL语句 处理结果 ...
- boost.python编辑,以及c++api的python封装
boost.python 编辑与踩坑 踩坑1.编辑的版本使用的vs版本不同的话,使用的命令不同 2.编辑第一条命令b2 toolset=msvc-11.0 --with-python报错:fatal ...
- 转载-Shell脚本中字符串截取功能
在Shell脚本编写中,有几个地方都是要用到字符串截取的功能,那将这块的内容进行下记录: 1.字符串变量的截取操作 对字符串变量的截取操作一般都是通过${操作符}的方式进行 1)从指定位置index截 ...
- [vsCode]Visual Studio Code环境变量不同步
很奇怪的事情,在设置好Path环境变量后,powershell正常了, 但是vscode不正常 解决方法竟然是: 确认{在PowerShell运行正常}后,关闭{vsCode},进入{管理员模式的Po ...
- win10系统解决启动虚拟机蓝屏问题
1.查看电脑是否开启了虚拟化,如果没起开开启 CTR+SHIFT+Esc 2.是否开启了虚拟化选项 win+r 输入 OptionalFeatures