ES6到底有哪些特性值得我们学习,2024年最新前端开发学习班

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

总结一下:

  • var存在变量提升,能在声明前使用。其他两个存在暂时性死区,不能声明前使用

  • let 和 const基本一致,后者不能再次赋值

  • 函数提升由于变量提升

箭头函数

箭头函数是ES6新增的一种函数写法,下面两种写法其实是一样的:

setTimeout(function(){

console.log(“Hello World!”);

},1000)

setTimeout(()=>{

console.log(“Hello World!”);

},1000)

它和普通函数有什么区别呢?

  • 不可用作构造函数,没有原型

  • this指向继承而来且不会改变

解构赋值

解构赋值就是一种模式匹配的写法,之前我们赋值的时候一般都要分别来赋值,比如:

let a = 1;

let b = 2;

let c = 3;

但是解构赋值允许我们这样赋值,左右两边都对应复制,如果解构不成功就会赋值undefined

let [a, b, c] = [1, 2, 3];

let [a, b, c] = [1, 2];

console.log(a,b,c); //1, 2, undefined

我们比较常用的一般有两种方面,一个是JSON字符串的解构,如:

const {name,age,number} = {name:‘rose’,age:12,number:123}

console.log(name,age,number); //rose 12 123

还有一种我们可以用来数据的交换操作,如:

let a=1;

let b=2;

[a,b]=[b,a];

console.log(a,b); //2, 1

模板字符串

$(‘#result’).append(

‘There are ’ + basket.count + ' ’ +

'items in your basket, ’ +

’ + basket.onSale +

‘ are on sale!’

);

$(‘#result’).append(`

There are ${basket.count} items

in your basket, ${basket.onSale}

are on sale!

`);

相比于之前使用+拼接简洁许多,并且可读性比较强。语法就是使用反引号``来声明,然后变量使用${variable}。

Set、Map数据结构

Set它是一个构造函数,用来生成Set数据结构。类似于数组,但是跟数组不同的是它的每一项都不会重复。作用也可以用于数组去重的操作。

const s = new Set();

[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));

for (let i of s) {

console.log(i);

}

// 2 3 5 4

数组去重,比较简单

function unique(arr) {

return […new Set(arr)]

}

Map是一个类似于对象,是键值对的集合,但是键的范围不限于字符串,各种类型的值都可以作为键,包括object。

const m = new Map();

const o = {p: ‘Hello World’};

m.set(o, ‘content’)

m.get(o) // “content”

m.has(o) // true

m.delete(o) // true

m.has(o) // false

作为构造函数,Map也可以接受一个数组作为参数,数组的成员也是一个个表示键值对的数组。

const map = new Map([

[‘name’, ‘张三’],

[‘title’, ‘Author’]

]);

map.size // 2

map.has(‘name’) // true

map.get(‘name’) // “张三”

map.has(‘title’) // true

map.get(‘title’) // “Author”

Promise对象

const promise = new Promise(function(resolve, reject) {

// … some code

if (/* 异步操作成功 */){

resolve(value);

} else {

reject(error);

}

});

Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve和reject。它们是两个函数,由 JavaScript 引擎提供,不用自己部署。

resolve函数的作用是,将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject函数的作用是,将Promise对象的状态从“未完成”变为“失败”(即从 pending 变为 rejected),在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去。

Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。

promise.then(function(value) {

// success

}, function(error) {

// failure

});

Proxy

Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。Proxy的拦截有以下13种,具体用法可以查找我之前写的Proxy。

  • get(target, propKey, receiver) 拦截对象属性读取

  • set(target, propKey, value, receiver) 拦截对象的属性设置

  • has(target, propKey) 拦截propkey in proxy

  • deleteProperty(target, propKey) 拦截delete proxy[propKey]

  • ownKeys(target)

  • getOwnPropertyDescriptor(target, propKey) 返回对象属性的描述对象拦截

  • defineProperty(target, propKey, propDesc)

  • proventExtensions(target)

  • getPrototypeOf(target)

最后

小编的一位同事在校期间连续三年参加ACM-ICPC竞赛。从参赛开始,原计划每天刷一道算法题,实际上每天有时候不止一题,一年最终完成了 600+:

凭借三年刷题经验,他在校招中很快拿到了各大公司的offer。

入职前,他把他的刷题经验总结成1121页PDF书籍,作为礼物赠送给他的学弟学妹,希望同学们都能在最短时间内掌握校招常见的算法及解题思路。

整本书,我仔细看了一遍,作者非常细心地将常见核心算法题和汇总题拆分为4个章节。

而对于有时间的同学,作者还给出了他结合众多数据结构算法书籍,挑选出的一千多道题的解题思路和方法,以供有需要的同学慢慢研究。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
b2002194d.png)

而对于有时间的同学,作者还给出了他结合众多数据结构算法书籍,挑选出的一千多道题的解题思路和方法,以供有需要的同学慢慢研究。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-NglYFbOM-1713297763050)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值