ES6十大功能,中高级前端开发应该要了解,35岁以后的前端程序员出路在哪里

function teenager(person) {

return person.age > 10 && person.age < 20

}

var everyoneIsTeenager = people.every(teenager)

console.log('Everyone is teenager: ', everyoneIsTeenager)

运行结果如下:

Everyone is teenager: false

some

检查数组的任何元素是否通过由提供的函数实现的测试,该函数应该返回true或false。(有一个函数返回true,则结果true。否则结果为false)

var people = [

{name: ‘Jack’, age: 50},

{name: ‘Michael’, age: 9},

{name: ‘John’, age: 40},

{name: ‘Ann’, age: 19},

{name: ‘Elisabeth’, age: 16}

]

function teenager(person) {

return person.age > 10 && person.age < 20

}

var thereAreTeenagers = people.some(teenager)

console.log(‘There are teenagers:’, thereAreTeenagers)

运行结果如下:

There are teenagers: true

reduce

方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。 累加器的初始值应作为reduce函数的第二个参数提供。

var array = [1, 2, 3, 4]

function sum(acc, value) {

return acc + value

}

function product(acc, value) {

return acc * value

}

var sumOfArrayElements = array.reduce(sum, 0)

var productOfArrayElements = array.reduce(product, 1)

console.log(‘Sum of’, array, ‘is’, sumOfArrayElements)

console.log(‘Product of’, array, ‘is’, productOfArrayElements)

运行结果如下:

Sum of [1,2,3,4] is 10

Product of [1,2,3,4] is 24

3.箭头函数

执行非常简单的函数(如上述的Sum或Product)需要编写大量的模版。 有什么解决办法吗? 是的,可以尝试箭头函数!

var array = [1, 2, 3, 4]

const sum = (acc, value) => acc + value

const product = (acc, value) => acc * value

var sumOfArrayElements = array.reduce(sum, 0)

var productOfArrayElements = array.reduce(product, 1)

箭头函数也可以内联。 它真的简化了代码:

var array = [1, 2, 3, 4]

var sumOfArrayElements = array.reduce((acc, value) => acc + value, 0)

var productOfArrayElements = array.reduce((acc, value) => acc * value, 1)

箭头函数也可以更复杂,并且有很多行代码:

var array = [1, 2, 3, 4]

const sum = (acc, value) => {

const result = acc + value

console.log(acc, ’ plus ', value, ’ is ', result)

return result

}

var sumOfArrayElements = array.reduce(sum, 0)

4. 类

哪个Java开发人员在切换到JS项目时不会错过类? 谁不喜欢显式继承,像Java语言,而不是为原型继承编写魔术代码? 这引起了一些JS开发者反对,因为在ES6中已经引入了类。 他们不改变继承的概念。 它们只是原型继承的语法糖。

class Point {

constructor(x, y) {

this.x = x

this.y = y

}

toString() {

return ‘[X=’ + this.x + ‘, Y=’ + this.y + ‘]’

}

}

class ColorPoint extends Point {

static default() {

return new ColorPoint(0, 0, ‘black’)

}

constructor(x, y, color) {

super(x, y)

this.color = color

}

toString() {

return ‘[X=’ + this.x + ‘, Y=’ + this.y + ‘, color=’ + this.color + ‘]’

}

}

console.log('The first point is ’ + new Point(2, 10))

console.log('The second point is ’ + new ColorPoint(2, 10, ‘green’))

运行结果如下:

The first point is [X=2, Y=10]

The second point is [X=2, Y=10, color=green]

The default color point is [X=0, Y=0, color=black]

5.对象功能增强

对象功能已被增强。 现在我们可以更容易地:

定义具有和已有变量名称相同且赋值的字段

定义函数

定义动态(计算)属性

const color = ‘red’

const point = {

x: 5,

y: 10,

color,

toString() {

return ‘X=’ + this.x + ‘, Y=’ + this.y + ‘, color=’ + this.color

},

}

console.log('The point is ’ + point)

console.log('The dynamic property is ’ + point.prop_42)

运行结果如下:

The point is X=5, Y=10, color=red

The dynamic property is 42

6. 模板字符串

谁喜欢写大字符串和变量连接? 我相信我们中只有少数人喜欢。 谁讨厌阅读这样的代码? 我确定大家都是,ES6引入了非常易于使用的字符串模板和变量的占位符。

function hello(firstName, lastName) {

return `Good morning ${firstName} ${lastName}!

How are you?`

}

console.log(hello(‘Jan’, ‘Kowalski’))

运行结果如下:

Good morning Jan Kowalski!

How are you?

请注意,我们可以写多行文本。

重要提示:使用反引号代替撇号来包装文本。

7. 默认函数参数

你不喜欢提供所有可能的函数参数? 使用默认值。

function sort(arr = [], direction = ‘ascending’) {

console.log(‘I’m going to sort the array’, arr, direction)

}

sort([1, 2, 3])

sort([1, 2, 3], ‘descending’)

运行结果如下:

I’m going to sort the array [1,2,3] ascending

I’m going to sort the array [1,2,3] descending

8. rest参数和扩展运算符

扩展

它可以将数组或对象内容提取为单个元素。

示例 - 制作数组的浅拷贝:

var array = [‘red’, ‘blue’, ‘green’]

var copyOfArray = […array]

console.log(‘Copy of’, array, ‘is’, copyOfArray)

console.log(‘Are’, array, ‘and’, copyOfArray, ‘same?’, array === copyOfArray)

运行结果如下:

Copy of [“red”,“blue”,“green”] is [“red”,“blue”,“green”]

Are [“red”,“blue”,“green”] and [“red”,“blue”,“green”] same? false

示例 - 合并数组:

var defaultColors = [‘red’, ‘blue’, ‘green’]

var userDefinedColors = [‘yellow’, ‘orange’]

var mergedColors = […defaultColors, …userDefinedColors]

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

结尾

学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

html5

-G5edWPyN-1710771492996)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
[外链图片转存中…(img-QxzrPhBB-1710771492996)]

结尾

学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

html5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值