文档章节

本文介绍一些ES6的新语法可将代码化繁为简

杭城小刘
 杭城小刘
发布于 2017/04/27 10:24
字数 573
阅读 13
收藏 0

废话不多说,直接上代码,看注释即可

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script>
/*
* ES6的一些好玩的东西
*/
//1、ES6提供了新的数据结构Set
let arr = [1,2,3];
let set = new Set(arr);
let newArr = Array.from(set);
console.log(newArr);
//2、Object.assign()是ES6提供的对象的拓展方法,用于对象的合并拷贝
let obj1 = {"name":"lbp"};
let obj2 = {"age":"22"};
let obj3 = Object.assign({},obj1,obj2);
console.log(obj3);
//3、map()。方法用于遍历数组,有返回值,可以对数组的每一项进行操作并生成一个新的数组。有时候可以代替for和forEach循环,简写代码
let arr3 = [1,2,3,4,5];
let newArr3 = arr3.map((k,v)=>k*10);
console.log(newArr3);
//4、filter()方法同样用于遍历数组,过滤数组,在每一项元素后面触发一个回调函数。通过判断,保留或者移除当前项,最后返回一个新的数组
let arr4 = [1,2,3,4,5,6];
let newArr4 = arr4.filter((k,v)=>k%2==0);
console.log(newArr4);
//5、some方法用于遍历数组,在每一项元素后面触发一个回调函数,只要一个满足条件就返回true,否则返回false,类似于 || .
let arr5 = [{result:true},{result:false}];
let newArr5 = arr5.some((k,v)=>k.result);
console.log(newArr5);
//6、every()。every方法用于遍历数组。在每一项元素后面触发一个回调函数,只要一个不满足条件就返回false,否则返回true。类似于 &&
let arr6 = [{result:true},{result:false}];
let newArr6 = arr6.every((k,v)=>k.result);
console.log(newArr6);
//7、~~运算符.~符号用在Javascript中有按位取反的作用,~~是取反二次,而位运算符的操作值要求是证书,其结果也是整数,所以经过位运算符的都会自动变成整数,可以巧妙的去掉小数部分,类似于ParseInt()
let a = 1.23;
let b = -1.23;
console.log(~~a);
console.log(~~b);
//8、||运算符。巧妙滴使用||运算符可以给变量设置默认值
let c = 1;
let d = c||2;
console.log(d);
//9、...运算符。...运算符是ES6中用于解析数组的方法,可以用于快速获取数组的参数
let [num1,...nums] = [1,2,3];
console.log(num1);
console.log(nums);
//10、三元运算符。可以简化if else的写法
let e = true,
f = '';
if (e) {
f = "man";
}else{
f = "woman";
}
//等同于
f = e?"man":"womn";
console.log(f);
</script>
</head>
<body>
</body>
</html>

本文转载自:http://www.jianshu.com/p/043fa8dacb68

共有 人打赏支持
上一篇: 玩转UILabel
下一篇: 如何优雅的调试
杭城小刘
粉丝 14
博文 109
码字总数 54955
作品 0
杭州
iOS工程师
私信 提问
使用 es6写更加简洁的 js代码

使用新语法配合 babel 的转码,已经可以解决一些浏览器的兼容问题了。既然如此,那就可以在具体的业务中多使用新语法去探索一下怎么更好的去写代码吧。分享下个人开发中整理的常用的 js 写法...

林晖
12/09
0
0
使用 ES6 Proxy 代理的一些问题记录

最近在项目里使用了 Proxy,遇到一些问题记录一下 Proxy 简介 简单来说 Proxy 是对设置一个拦截,直接上代码 可以进行的拦截类型不止 ,还有很多,例如:(来自阮一峰老师的书 ES6 Proxy):...

带眼镜的郑_小二
12/05
0
0
如何用 es6+ 写出优雅的 js 代码

兼容 IE ?不存在的好吗。 其实使用新语法配合 的转码,已经可以解决这一些问题了。既然如此,那就多使用新语法去探索一下怎么更好的去写代码吧。 下面分享个人开发中常用的 js 写法技巧,希...

gershonv
12/07
0
0
React Native 报错大全

class RN extends Component 修改为 const RN = React.createClass() ES6新语法下onPress会报错 ES6新语法下:TouchableOpacity里执行onPress会报错 可参考这篇文章,内部有说明 本人刚接触R...

大仁孙
2016/12/07
24
0
聊聊柯里化

仅以此文献给我的学弟 誅诺_弥 ,并将逐风者的祝福送给他: 英雄,愿你有一份无悔的爱情! 什么是柯里化 维基百科中有如下定义: 在计算机科学中,柯里化(英语:Currying),是把接受多个参...

LeuisKen
2017/11/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

基于Sentry实现数据访问权限控制

Sentry初识 Sentry是适用于Hadoop生态环境、基于角色的授权管理系统,可以模块化集成到HDFS、Hive、Impala。它是一个策略引擎,运行定义授权规则,以校验用户对数据模型的访问请求。 授权粒度...

hblt-j
14分钟前
1
0
First Bad Version(leetcode278)

You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is......

woshixin
46分钟前
1
0
executor 和task 优先于线程(68)

java.util.concurrent 包里有一个Executor 框架 基于接口的任务执行工具 只需要一行代码 提交一个runnable 方法 优雅的终止(必须做到,不然虚拟机可能不会退出) 对于负载不重的服务 Execut...

Java搬砖工程师
46分钟前
1
0
一条SQL查询语句是如何执行的

123

writeademo
48分钟前
3
0
CSS中position属性( absolute | relative | static | fixed )详解

四个属性的特点 static:无特殊定位,对象遵循正常文档流。top,right,bottom,left等属性不会被应用。 relative:对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流...

简心
53分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部