ES2015常用知识点
ES2015(又称ES6)部分
1 let/const以及块作用域;
2 循环语句
const arr=[1,2,3];
for(const item of arr){
console.log(item);
} const Zootopia=[
{name:'Nick',gender:1,species:'Fox'},
{name:'Judy',gender:0,species:'Bunny'}
];
for(const {name,species} of Zootopia){
console.log(`hi,I am ${name},and I am a ${species}`);
}
3 箭头函数
//1 simple
const fn=foo=>`${foo} world` //means return `foo +' world'` //2 arrow function as parameter
let array=['a','bc','def','ghij'];
array=array.filter(item=>item.length>=2); //bc,def,ghij //3 multi arguments
const fn=(foo,bar)=> {return foo+bar} //4 no argument
const greet=()=>'hello world'
4 字符串模板
const str="hello world"
const num=1
const bool=true
const obj={foo:'bar'}
const arr=[1,2,3] const str1=`String:${str}`
const str2=`Number:${num}`
const str3=`Boolean:${bool}`
const str4=`Object:${obj}`
const str5=`Array:${arr}` // 可多行
const sql=`
select * from Users
where FirstName='mike'
limit 5;
`
5 对象字面量省略语法
//Syntax:{method(){...}}
const obj={
//before
foo:function(){
return 'foo'
},
//after
bar(){
return 'bar'
}
}
6 解构
function getState(){
return {
error:null,
logined:true,
user:{},
}
}
const {error,logined,user}=getState()
const[foo,bar]=[1,2]
console.log(foo,bar) //=>1 2
//Object
const {foo,bar}={foo:1}
console.log(foo,bar) //=>1 undefined
//Array
const [a,b,c]=[1,2]
console.log(a,b,c) //=>1 2 undefined
// 默认值
const {foo=1}={bar:1}
console.log(foo) //=>1
const [a,b=2]=[1]
console.log(a,b) //=>1 2
//嵌套解构
//Object in Object
const {a,b:{c}}={a:1,b:{c:2}}
console.log(a,c) //=>1 2
//Array in Object
const {d,e:[f]}={d:1,e:[2,3]}
console.log(d,f) //=>1 2
//Object in Array
consot [g,{h}]=[1,{h:2}]
console.log(g,h) //=>1 2
//Array in Array
const [i,[j]]=[1,[2,3]]
console.log(i,j) //=>1 2
7 函数默认参数
function fn(arg='foo'){
console.log(arg)
}
fn() //=>foo
fn('bar') //=>bar
8 数组展开
//Syntax:fn(...[arg1,arg2])
function sum(...numbers){
return numbers.reduce((a,b)=>a+b)
}
sum(...[1,2,3]) //=>6
9 Set和Map数据结构
const set=new Set([1,2,3,4])
set.forEach(item=>{
console.log(item)
})
//=>1 2 3 4 set.forEach(item=>{
console.log(item*this.foo)
},{foo:2})
//=>2 4 6 8 const map = new Map([['foo', 1 ], [ 'foo', 2 ]])
console.log(map.get('foo')) //=> 2
10 类定义语法, 可带构造函数
class Animal {
constructor(family, specie, hue) {
this.family =family
this.specie = specie
this.hue = hue
yell() {
console.log(this.hue)
}
}
11 Promise
new Promise((resolve,reject)=>{
api.call('fetch-data',(err,data)=>{
if(err) return reject(err)
resolve(data)
})
})
12 模块化导入
import name form 'module-name'
import * as name from 'module-name'
import {member} from 'module-name'
import {meber as alias} from 'module-name' import * as lib from 'module'
lib.method1()
lib.method2() // 同时引入default和其他模块
import {default ,utils} from 'module' //Wrong // 不引入接口,仅运行模块代码
import 'system-apply'
13 模块导出
//module.js
export const apiRoot='http://example.com/api'
export function method(){
//...
}
export class foo{
//...
} //app.js
import {method,foo} from 'module.js'
//-----------------------------------------------
// 导出和导入默认模块
//client.js
export default class Client{
//...
}
//app.js
import Client from 'client.js' //-----------------------------------------------
// 暴露别的模块的所有接口
export * from 'module-1'
13 使用fetch代替ajax
Fetch与Ajax对比:
1 fetch采用Promise的异步方式;API更简洁,可部分消除回调地狱;
2 默认情况下Fetch不会reject错误的HTTP状态, 例如404;需手动包装;
3 Fetch默认情况下不带cookie;如需cookie,需自行开启credencials选项;
fetch('https://www.guanggao365.com/advertisement/searchAd', {
method: 'post',
mode: 'cors',//跨域
credentials: 'same-origin',//默认不带cookie,如需cookie,则要开启此配置
headers: {'someHeader': 'someValue'},
body: JSON.stringify('thebodyContentJson')// 也可是k1=v1&k2=v2
}).then(res =>{
res.json().then(obj => {
console.log(obj)
})
})
ES2015常用知识点的更多相关文章
- ES6/ES2015常用知识点和概念
越来越多的开源库开始使用ES2015来构建代码了,大家知道ES6=ES2015,ES6在2015年被ECMAScript标准化组织approve,各大浏览器厂商要完全支持ES6的强大功能还须一些时日, ...
- DB2_SQL_常用知识点&实践
DB2_SQL_常用知识点&实践 一.删除表中的数据(delete或truncate) 1 truncate table T_USER immediate; 说明:Truncate是一个能够快 ...
- JAVA常用知识点及面试题总结
1. String.StringBuffer.StringBuilder三者区别? (1)三者在执行速率上的比较: String<StringBuffer<StringBuilder 原因 ...
- HTML常用知识点代码演示
1 HTML部分常用知识点 <!-- 版本声明 --> <!DOCTYPE html> <!-- 唯一根元素 --> <html> <!-- 对网 ...
- Java 常用知识点
Java 常用知识点 1.日期格式化 SimpleDateFormat Date date=new Date(System.currentTimeMillis()) ; SimpleDateForma ...
- Less常用知识点
上篇文章介绍了如何安装Less,我们将所有东西都写在.less里面,最后通过命令将.less转换成.css文件,就可以放入到项目里用了.今天了解一些less常用知识点. 1.变量:声明两个变量,一个是 ...
- BIOS备忘录之EC常用知识点
BIOS工程师眼中常用的EC知识点汇总: EC的硬件架构 EC硬件结构上主要分为两部分:Host Domain和EC Domain Host Domain就是通过LPC与CPU通信的部分(LPC部分需 ...
- YII2常用知识点总结
YII2常用知识点总结 (一)总结性语句 (1)经常看看yii源码比如vendor\yiisoft\yii2\web这个目录(很重要)下的文件中的方法(这些文件中的公共方法,大致看了下基本上都可以通过 ...
- CSS3常用知识点
CSS3常用知识点 1 css3选择器 1.1 属性选择器 /* E[attr~=val] 表示的一个单独的属性值 这个属性值是以空格分隔的*/ .attr2 a[class~="kawa& ...
- javaScript常用知识点有哪些
javaScript常用知识点有哪些 一.总结 一句话总结:int = ~~myVar, // to integer | 是二进制或, x|0 永远等于x:^为异或,同0异1,所以 x^0 还是永远等 ...
随机推荐
- Odoo编程,说明,功能,文章收藏贴
CN Blog: https://www.cnblogs.com/Firstwing/p/14088500.html #http://blog.sina.com.cn/s/blog_bc7dee2d0 ...
- hive安装准备 (mysql8.0安装)
1.先准备好安装的所需材料 2.开始准备安装 先安装mysql 解压命令:tar -xvJf (注意:这里' j '是大写) 解压后改名: mv mysql-8.0.24-linux-glibc2. ...
- Optional中的map函数和flatMap函数的区别
今天在学scala的时候发现Option中有map和flatMap返回的都是Option,然后再java8中的Optional也存在这样两个函数,觉得有点多余.后来分析了一下,还是有存在的必要的. 1 ...
- Visual Studio NuGet的地址(记录)
NuGet源地址 : https://nuget.org/api/v2/ https://api.nuget.org/v3/index.json (推荐)
- SAP GGB0 校验
需求,针对财务凭证分配号的要求 在满足条件下进行必填校验 在需要的位置 创建确认 创建步骤,一般通过点击就可以形成需要的前提逻辑,也可以通过 设置->专门方式 来进行自定义编写. 如果前提条件是 ...
- CentOS7 修改root密码
能登录系统修改root密码 passwd root(可以是其他什么用户) 输入新密码(两次) 忘记root密码不能进入系统,修改root密码 1.开机进入grub界面按e进入单用户编辑模式 2 ...
- spider_object_01使用正则爬取百度贴吧所有内容保存成html
"""本案例不涉及数据提取,仅指导 网页分页爬取的两种方式 思路非第一种:利用while Ture,传参,然后在设定一个判断条件,案例中用的是如果找不到下一页,循环退出( ...
- java8 :: 双冒号传多个参数
'::'是一种函数式接口的一种书写方法引用的方式 Kind Syntax Examples Reference to a static method ContainingClass::staticMe ...
- Windows MFC HTTP 函数流程
Windows MFC HTTP 函数流程 1 //建立连接 2 pInternetSession = new CInternetSession(AfxGetAppName()); 3 4 5 6 / ...
- 升级adb
adb 是没有自动升级的命令的,如果想要更新adb的版本,需要在网上找到自己想要的版本进行更新. 为什么要更新呢? 肯定是在使用中遇到了什么问题必须升级版本才能解决,如果不影响使用,那都无所谓.这里提 ...