课程链接:https://scrimba.com/g/gintrotoes6
这个网站有几个热门的前端技术栈的免费课程,上课体验除了英语渣只能看代码理解听老师讲的一知半解之外,是极佳的学编程的网站了。你跟老师同一个编译器上编译代码,超强体验!!如果跟我一样英语渣,最好结合一下ES6相关书看一下,这样听不懂也看代码也可以知道点在哪里了。
1.Template Literals
let word1 = 'Liu';
let word2 = 'li';
旧:
const fullName = word1 + ''+word2;
fullName = word1 + ''\n + word2; //Liu
li
新:
const fullName = `${word1} ${word2}`; //Liu li
fullName = `${word1}
${word2}`; //Liu
li
2.Destructuring Objects
const personalInformation = {
firstName: 'Dylan',
lastName: 'Israel',
city: 'Austin',
state: 'Texas',
zipCode: 73301
};
const {firstName, lastName} = personalInformation;
const {firstName: fn, lastName: ln} = personalInformation;
console.log(`${firstName} ${lastName}`);
console.log(`${fn} ${ln}`);
3.Destructuring Arrays
let [firstName, middleName, lastName] = ['Dylan', 'Coding God', 'Israel'];
lastName = 'Clements';
console.log(lastName) //Clements
4.Object Literal
function addressMaker(city, state) {
const newAdress = {newCity: city, newState: state};
console.log(newAdress); // {newCity: "Austin", newState: "Texas"}
}
addressMaker('Austin', 'Texas');
===========ES6====
function addressMaker(city, state) {
const newAdress = {city, state};
console.log(newAdress); // {city: "Austin", state: "Texas"}
}
addressMaker('Austin', 'Texas');
5.Object Literal(Challenge)
function addressMaker(address) {
const {city, state} = address;
const newAddress = {
city,
state,
country: 'United States'
};
}
addressMaker({city: 'Austin', state: 'Texas'});
6.For of Loop
let fullName = "Dylan Coding God Israel";
for (const char of fullName) {
console.log(char); //D y l a n ....
}
7.For of Loop(Challenge)
let incomes = [62000, 67000, 75000];
for (let income of incomes) {
income += 5000;
}
console.log(incomes); // [62000, 67000, 75000]
8.Spread Operator
let example1 = [1,2,3,4,5,6];
let example2 = [...example1];
example2.push(true);
console.log(example2); //[1,2,3,4,5,6,true]
9.Rest Operator
function add(...nums){
console.log(nums) //[4,5,6,7,8]
}
add(4,5,6,7,8);
10.Arrow Functions
旧:
function add(...nums) {
let total = nums.reduce(function (x, y) {
return x+y;
});
console.log(total); //36
}
add(4, 5, 7, 8, 12)
新:
function add(...nums) {
let total = nums.reduce((x, y) => {
return x+y;
});
console.log(total);
}
add(4, 5, 7, 8, 12)
或者是进一步的
function add(...nums) {
let total = nums.reduce((x, y) => x+y);
console.log(total);
}
add(4, 5, 7, 8, 12)
11.Default Param
function add(numArray = []) {
let total =0;
numArray.forEach((element) => {
total += element;
});
console.log(total); //0
}
add();
12.includes(除IE)
旧:
let numArray = [1,2,3,4,5];
console.log(numArray.indexOf(0)) //-1
新:
let numArray = [1,2,3,4,5];
console.log(numArray.includes(0)) //false
13.Let&Const
var:
if (false) {
var example=5;
}
console.log(example) //null
let:
if (false) {
let example =5;
}
console.log(example) //ReferenceError
const:
const example = [];
example =3;
console.log(example) //Error
example.push(3);
console.log(example) //[3]
example.firstName ='Dylan';
console.log(example) //{firstName:"Dylan"}
14.padStart()&padEnd()
let example = 'Dylan';
console.log(example.padStart(10, 'a')); //aaaaaDylan
let example = 'Dylan';
console.log(example.padEnd(10, 'a')); //Dylanaaaaa
let example = 'Dylan Irseal';
console.log(example.padEnd(10, 'a')); //Dylan Irseal
15.Import&Export
---------文件Animal.js-----------
export class Animal {
constructor(type, legs) {
this.type = type;
this.legs = legs;
}
makeNoise(loudNoise = "loud"){
console.log(loudNoise);
}
---------文件index.js----------
import { Animal } from './animal.js';
let cat = new Animal('Cat', 4);
cat.legs = 3;
cat.makeNoise("meow"); //meow
console.log(cat.legs) //3
16.Classes
-------文件Animal.js----------
export class Animal {
constructor(type, legs) {
this.type = type;
this.legs = legs;
}
makeNoise(loudNoise = "loud"){
console.log(loudNoise);
}
get metaData(){
return `Type:${this.type},Legs:${this.legs}`;
}
static return10(){
return 10;
}
}
export class Cat extends Animal{
constructor(type,legs,tail){
super(type,legs);
this.tail = tail;
}
makeNoise(loudNoise = "meow"){
console.log(loudNoise);
}
}
------文件index.js--------
import { Animal ,Cat} from './animal.js';
let cat = new Cat('Cat',4,"long");
console.log(Animal.return10()); //10
console.log(cat.metaData); // Type:Cat,Legs:4
cat.makeNoise(); //meow
console.log(cat.metaData) //Type:Cat,Legs:4
console.log(cat.tail)//long
17.Trailing Commas
没听懂
18.Async&Await
const apiUrl = 'https://fcctop100.herokuapp.com/api/fccusers/top/alltime';
function getTop100Campers() {
fetch(apiUrl)
.then((r) => r.json())
.then((json) => {
console.log(json[0])
}).catch((error) => {console.log('faild');});
}
getTop100Campers(); //{username:"sjames1958gm",img:"https//avatars1.githubusercontent.com/u/4639625?v=4",alltime:8826,recent:104,lastUpadate:"2018-04-04T09:10:12.456Z"}
-----await---
const apiUrl = 'https://fcctop100.herokuapp.com/api/fccusers/top/alltime';
function getTop100Campers() {
const response = await fetch(aipUrl);
const json = await response.json();
console.log(json[0]);
}
getTop100Campers(); //{username:"sjames1958gm",img:"https//avatars1.githubusercontent.com/u/4639625?v=4",alltime:8826,recent:104,lastUpadate:"2018-04-04T09:10:12.456Z"}
-----async----
没听懂
function resolveAfter3Seconds() {
return new Promise(resolve => {
setTimeout(() => {
resolve('resolved');
}, 3000);
});
}
// resolveAfter3Seconds().then((data) => {
// console.log(data);
// });
async function getAsyncData() {
const result = await resolveAfter3Seconds();
console.log(result); //resolved
}
getAsyncData();
18.Sets
const exampleSet = new Set([1,1,1,1,2,2,2,2]);
exampleSet.add(5);
exampleSet.add(5).add(17);
console.log(exampleSet.size); //4
---------delete()----------
console.log(exampleSet.delete(5)); //true
console.log(exampleSet.size); //3
----------clear()-----
exampleSet.clear();
console.log(exampleSet.size); //0
- ES6入门笔记
ES6入门笔记 02 Let&Const.md 增加了块级作用域. 常量 避免了变量提升 03 变量的解构赋值.md var [a, b, c] = [1, 2, 3]; var [[a,d] ...
- 面向对象程序设计-C++ Stream & Template & Exception【第十五次上课笔记】
这是本门<面向对象程序设计>课最后一次上课,刚好上完了这本<Thinking in C++> :) 这节课首先讲了流 Stream 的概念 平时我们主要用的是(1)在屏幕上输入 ...
- es6学习笔记-class之一概念
前段时间复习了面向对象这一部分,其中提到在es6之前,Javasript是没有类的概念的,只从es6之后出现了类的概念和继承.于是乎,花时间学习一下class. 简介 JavaScript 语言中,生 ...
- ES6学习笔记<五> Module的操作——import、export、as
import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...
- ES6学习笔记<四> default、rest、Multi-line Strings
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...
- ES6学习笔记<三> 生成器函数与yield
为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...
- ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring
接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...
- ES6学习笔记<一> let const class extends super
学习参考地址1 学习参考地址2 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015:也 ...
- ES6读书笔记(三)
前言 前段时间整理了ES6的读书笔记:<ES6读书笔记(一)>,<ES6读书笔记(二)>,现在为第三篇,本篇内容包括: 一.Promise 二.Iterator和for of循 ...
随机推荐
- Git revert -m
这其实是个非常简单的指令,甚至用AS,直接右键操作不需要两秒钟 但今天使用命令行的方式操作的时候居然发现了点不一样的地方: 如下我希望revert某个commit,找到了它的id,跑一下命令之后居然发 ...
- getline()与get()(c++学习笔记)
istream中的类(如cin)提供了一些面向行的类成员函数:getline()和get() 1.getline()函数 读取整行,使用回车键输入的换行符来确定输入结尾. 调用方法:cin.getli ...
- 学测试,看视频?NONONO,除非这种情况
001 前言 : 很久没周末写文章了,一个是要睡懒觉.另外一个是,周末写了大家也没有心思看(加班1周了,好不容易周末,你又让我学习 ?先睡个懒觉再说,去TM的学习). 然而,今天早早的5点就起床了,处 ...
- 企业代码版本管理之争:TrunkBased vs GitFlow vs AoneFlow vs OneFlow vs ExeFlow
目录 引言 TrunkBased GitFlow AoneFlow OneFlow ExeFlow 综述 引言 网络上版本管理系统之争持久而喧嚣,依照声量来讲目前应该是Git占了较大的优势.不过我们本 ...
- POJ 1236 Network of Schools - 缩点
POJ 1236 :http://poj.org/problem?id=1236 参考:https://www.cnblogs.com/TnT2333333/p/6875680.html 题意: 有好 ...
- 面试加分项-HashMap源码中这些常量的设计目的
前言 之前周会技术分享,一位同事讲解了HashMap的源码,涉及到一些常量设计的目的,本文将谈谈这些常量为何这样设计,希望大家有所收获. HashMap默认初始化大小为什么是1 << 4( ...
- Java开发必备工具 ------------工欲善其事,必先利其器
java企业级开发基本工具 一.开发必备工具 1.Java开发环境 JDK (官网下载即可,需要注册账户) JRE 2.Java企业编码开发工具 IntelliJ IDEA(建议使用Idea,插件使用 ...
- 通过原型继承理解ES6 extends 如何实现继承
前言 第一次接触到 ES6 中的 class 和 extends 时,就听人说这两个关键字不过是语法糖而已.它们的本质还是 ES3 的构造函数,原型链那些东西,没有什么新鲜的,只要理解了原型链等这些概 ...
- MATLAB之基本语法
常用命令 dir:列出当前目录下的所有文件 clc:清除命令窗 clear all:清除环境(从内存中清除所有变量) who:将内存中的当前变量以简单形式列出 close all: 关闭所有的 Fig ...
- 解决go get下载包失败问题
由于某些不可抗力的原因,国内使用go get命令安装包时会经常会出现timeout的问题.本文介绍几个常用的解决办法. 从github克隆 golang在github上建立了一个镜像库,如https: ...