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语言的标准,代 ...
随机推荐
- CSS控制背景图片100%自适应填充布局
原文地址:http://blog.csdn.net/wd4java/article/details/50537562 .personal_head { width: 100%; height: 35% ...
- SpringBoot 自定义启动的logo(即banner)
1.自定义输出banner样式 推荐生成网站 http://patorjk.com/software/taag/ https://www.bootschool.net/ascii-art 2.配置 A ...
- torrent种子
- Linux下设置目录或文件可读写,但不可以删除权限
例如:现在/home目录下有 :目录 data 和 文件 test.txt (1)设置/home/test.txt可读写但是不可以删除命令(文件设置): sudo chattr +a /home/te ...
- react native 状态栏和安全区域的使用
1. 状态栏组件,react native文档提供了说明.我需要的是设置透明效果,如下图. 代码如下 <StatusBar translucent={true} backgroundColor ...
- PyQt5模块说明
pyqt5的类别分为几个模块,包括以下: QtCoreQtGuiQtWidgetsQtMultimediaQtBluetoothQtNetworkQtPositioningEnginioQtWebSo ...
- node 基础
使用 vscore 写 node 的配置文件 { "version": "0.2.0", "configurations": [ { &qu ...
- python随机数模拟
`#随机数 import random red = range(1,36,1) red_target_list=[] i=1 while i< 6: red_ran_index=random.r ...
- Qt 程序主界面添加背景图片
1.开发环境:Qt5.12.2,QtCreate4.8.2 2.贴图代码,在主程序中编写 #include <QImageReader> int main(int argc, char * ...
- 删除 gnome自带的Videos软件
gnome3自带的Videos粗看感觉听简洁挺流畅的,可是细看不仅电影中文名乱码显示还搞得字幕慢半拍,这一点完全不能忍,太难受了. 还是Vlc牛.而且Videos在应用商店不能卸载,命令行搜索已安装软 ...