es6笔记1

以下是async await的demo,async await就是把异步请求以同步的形式写出来,异步的目标就是让代码越来越像同步的:

function a(){

        return new Promise((resolve, reject)=>{

            resolve(1)

        });

    }

    function b(data){

        return new Promise((resolve, reject) => {

            resolve(data + 4);

        });

    }

    async function test(){

        let a_result =await a()

        let b_result =await b(a_result)

        console.log(a_result);

        console.log(b_result);

        return 'test返回值';

    }

    test().then(res => {

        console.log('res', res);

    });


跟es6有关的面试题,要联想到es5的相关知识

promise和jQuery的deferred用法几乎一致,如果3年前开始做前端的时候就把jQuery学好,现在学习promise一看就能懂,所以不要以为jQuery过时了,其实他的影子一直都在

问:let a = 6;

function f() {

    setTimeout(function () {

        alert(a);      //为什么这里会报错

        let a = 666;

    }, 0);

}

f();


es6的部分技术,在以前就已经实现了:

es6的剩余参数,其实在coffeescript里已经实现了;

es6的promise,在jQuery1.5的deferred有类似功能;


学习es6时,要联想到相关知识(比如es6的一些东西可以用es5来实现只不过更复杂,es6的一些东西早在jQuery、coffeescript的时代已经有了),有利于对es6的记忆更加深刻

问:es6的箭头函数有什么特点?
答:this是定义时就确定了,而不是调用时才确定

问:es6的class和es5的构造函数有什么区别?
答:class没有提升功能,构造函数有提升功能,示例如下:

问:为什么箭头函数可以改变this的指向?
答:因为箭头函数是和父级上下文绑定在一起的,原文链接:https://cn.vuejs.org/v2/guide/instance.html


问:你能写1个promise的demo吗?
答:
let a = 10;
let promise = new Promise(function (resolve, reject) {
if(a == 10){
    resolve('成功');
}
else{
    reject('失败');
}
});
promise.then(function (res) {
    console.log('res', res);
});


如果不考虑浏览器兼容性问题,定义对象的时候不要这样写:
var name = "name";
var obj = {
 name : name
};
要这样写:
var name = "name";
var obj = {
 name
 };

Object.assign的用途:
1.复制1个对象
2.合并参数


问:如果某个数据,用户写了,就用用户写的内容,如果用户没写,就用默认值,怎么实现?
答:
function ajax(options){ //用户传的数据
let defaults = {
type : 'get',
header : '',
data : {},
};
let data = Object.assign({}, defaults, options)
}

问:你能写几个扩展运算符的demo吗?
答:
demo1:
function show(...a) {  //这里的...a,就是[1, 9, 8, 3, 2]
 return a.sort();
}
console.log(show(1, 9, 8, 3, 2));
demo2:
function show(a, ...b) {    //...b,就是[9, 8, 3, 2],也就是剩余的参数,所以,扩展运算符也叫作剩余运算符
console.log(a);
console.log(b);
}
show(1, 9, 8, 3, 2);
demo3:
let arr = [1, 2];
// 我需要复制一份这个数组,可以使用let arr2 = arr;但是这样的话,他们就是引用同一个地址了,arr2和arr会互相影响,怎么办?怎么样才能实现复制又没有引用同一个地址?
let arr2 = [...arr];
demo4:
扩展字符串可以把伪数组改成数组,
let ul = document.querySelectorAll('ul');  //这里的ul,是伪数组
let newUl = [...ul]; //这里的newUl,就是真数组了

我觉得ecma会新增这些es6的特性,一定是有人提出这样的需求,所以,学习的时候,不要以为自己用不到,或者,不要以为可以用其他方式实现就不认真学习es6了,要认真学习es6,以后哪天遇到某个需求的时候,说不定用es6的某些特性,可以提高工作效率

字符串模板(``)的用途:避免拼接字符串

问:解构赋值的时候,如果值是空的,会报错,怎么设置默认的函数参数?

答:

let a;
    ({a} = {a : 'apple', b : 'banana'})  //如果用结构赋值的时候括号写得不对,js会把解构赋值的东西,解析成块级作用域,这个时候,外面包一层括号就行了,也就是:({a} = {a : 'apple', b : 'banana'}) console.log(a);

解构赋值的用途:
1.ajax数据交互
2.交换2个数据:通过[a, b] = [b, a];可以交换a和b的值
3.import a from '../a.vue',引用模块的时候会用到

const arr = [1];
arr.push(2);
console.log(arr);  //[1, 2],const里的数组,虽然不能直接进行arr=[];这样修改,但是可以间接修改,如果真的要完全禁止修改,可以这样:
const arr2 = Object.freeze([1]);
arr2.push(2);
console.log(arr2);//Uncaught TypeError: Cannot add property 1, object is not extensible

symbol的用途:node底层会用到

class里的get、set、静态方法的用途:封装框架的时候用得到

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,392评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,258评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,417评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,992评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,930评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,199评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,652评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,327评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,463评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,382评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,432评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,118评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,704评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,787评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,999评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,476评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,057评论 2 341