课程链接: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
 
const example=[];
example.push(3);
console.log(example)   //[3]
 
const example = {};
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
 

Introduction to ES6上课笔记的更多相关文章

  1. ES6入门笔记

    ES6入门笔记 02 Let&Const.md 增加了块级作用域. 常量 避免了变量提升 03 变量的解构赋值.md var [a, b, c] = [1, 2, 3]; var [[a,d] ...

  2. 面向对象程序设计-C++ Stream & Template & Exception【第十五次上课笔记】

    这是本门<面向对象程序设计>课最后一次上课,刚好上完了这本<Thinking in C++> :) 这节课首先讲了流 Stream 的概念 平时我们主要用的是(1)在屏幕上输入 ...

  3. es6学习笔记-class之一概念

    前段时间复习了面向对象这一部分,其中提到在es6之前,Javasript是没有类的概念的,只从es6之后出现了类的概念和继承.于是乎,花时间学习一下class. 简介 JavaScript 语言中,生 ...

  4. ES6学习笔记<五> Module的操作——import、export、as

    import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...

  5. ES6学习笔记<四> default、rest、Multi-line Strings

    default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...

  6. ES6学习笔记<三> 生成器函数与yield

    为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...

  7. ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

  8. ES6学习笔记<一> let const class extends super

    学习参考地址1  学习参考地址2 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015:也 ...

  9. ES6读书笔记(三)

    前言 前段时间整理了ES6的读书笔记:<ES6读书笔记(一)>,<ES6读书笔记(二)>,现在为第三篇,本篇内容包括: 一.Promise 二.Iterator和for of循 ...

随机推荐

  1. Java网络编程与NIO详解8:浅析mmap和Direct Buffer

    微信公众号[黄小斜]作者是蚂蚁金服 JAVA 工程师,目前在蚂蚁财富负责后端开发工作,专注于 JAVA 后端技术栈,同时也懂点投资理财,坚持学习和写作,用大厂程序员的视角解读技术与互联网,我的世界里不 ...

  2. random库的使用

    一.random库介绍 random库是使用随机数的Python标准库 伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素 random库主要用于生成随机数 使用random库:import ran ...

  3. Redis缓存,持久化,高可用

    一,Redis作缓存服务器 ​ 本篇博客是接着上一篇博客未分享完的技术点. ​ redis作为缓存服务器是众多企业中的选择之一,虽然该技术很成熟但也是存在一定的问题.就是缓存带来的缓存穿透,缓存击穿, ...

  4. Swoole引擎原理的快速入门干货

    更多内容,欢迎关注微信公众号:全菜工程师小辉~ 过去一年使用PHP和Java两种技术栈完成了一个游戏服务器项目.由于项目中有高频的网络请求,所以PHP技术栈尝试使用Swoole引擎(基于事件的高性能异 ...

  5. jvm系列(四):jvm调优-命令篇

    运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎鼎的VisualVM,IBM的Memory Analyzer ...

  6. RabbitMQ新建交换机、队列、交换机和队列绑定

    新建交换机: 1.登录你要配置的交换机地址: 2.选择exchange,下拉选择add a new exchange 3.点击add exchange.完成 新建队列: 1.选择queues: 2.下 ...

  7. JVM知识点总结

    JVM总体梳理 一.jvm体系总体概览 JVM体系总体分四大块:类的加载机制.jvm内存结构.GC算法 垃圾回收.GC分析 命令调优 这里画了一个思维导图,将所有的知识点进行了陈列,因为图比较大可以点 ...

  8. Mobx-React : 当前适合React的状态管理工具

    MobX 简单.可扩展的状态管理        MobX 是由 Mendix.Coinbase.Facebook 开源和众多个人赞助商所赞助的.    安装 安装: npm install mobx ...

  9. js的真值与假值

    假值 结果为 false 的值称为 假值.例如,空字符串 "" 为假值,因为在布尔表达式中,"" 等于 false. false == 0返回:true fal ...

  10. .net core api服务端跨域配置

    第1步:添加包引用(.net core 2.2 已自带此包,可跳过此步骤) Install-Package Microsoft.AspNetCore.Cors 第2步:在Startup.cs文件的Co ...