36个助你成为专家需要掌握的JavaScript概念
web前端开发
共 8658字,需浏览 18分钟
· 2020-08-03
1、调用栈执行
2、原始数据类型
const foo = "bar";
foo.length; // 3
foo === "bar"; // true
3、值类型和引用类型
var arr1 = [1,2,3];
var arr2 = arr1;
arr2.push(10);
console.log(arr2);
//[1, 2, 3, 10]
console.log(arr1);
//[1, 2, 3, 10]
4、强制类型转换
Number('789') // 显式转换
+'789' // 隐式转换
789 != '456' // 隐式转换
9 > '5' // 隐式转换
10/null // 隐式转换
true | 0 // 隐式转换
5、相等比较和’ typeof '操作符
typeof 3 // "number"
typeof "abc" // "string"
typeof {} // "object"
typeof true // "boolean"
typeof undefined // "undefined"
typeof function(){} // "function"
typeof [] // "object"
typeof null // "object"
6、JavaScript作用域
7、语句和表达式
8、 立即调用函数表达式和模块
9、 消息队列和事件循环
10、时间间隔
setTimeout允许我们在特定的时间间隔后运行函数一次。 setInterval允许我们重复运行一个函数,在特定的时间间隔后开始运行,然后在该时间间隔内连续重复运行。
11、 JavaScript引擎
12、位操作
13、DOM和布局树
14、类和工厂
15、"this"关键词和,‘apply’、'call’和’bind’方法
16、 构造函数和’instanceOf’操作符
17、原型
18、 用’new’、‘Object.create’、'Object.assign’创建对象
19、 ‘map’, ‘filter’, 和’reduce’方法
let numbers = [1,2,3,4,5,6]
const reduced = numbers.reduce((accumulator, currentValue) => accumulator + currentValue)
console.log(reduced)
// 21
20、纯函数、副作用和状态变化
21、闭包
22、高阶函数
23、 递归
24、 集合和生成器函数
25、 Promises
Pending: 你不知道你是否会得到那个电话。 Fulfilled: 妈妈很高兴,她给你买了一个全新的手机。 Rejected: 妈妈不高兴,她不给你买手机。
26、 异步编程
27、 ES6箭头函数
28、 数据结构
29、 时间复杂度
30、算法
搜索 排序
31、 继承、多态和代码重用
32、设计模式
33、 函数式编程
Pure functions Immutability Referential transparency Higher-order functions
34、干净代码的原则
35、解构
36、ES2020新特性
![](https://filescdn.proginn.com/4b943bac0ea977f30003d620d08d27ef/1c0fef829ec97b04490be091da5080a3.webp)
评论
如何能够成为一个音视频专家,需要什么样的基础?
要取决题主要成为什么类型的专家、准备向哪一个行业发展:
视音频是一个比较宽泛的领域,以广播电视视频从拍摄到用户为例,视频信号需经过预处理、编辑/特效、压缩编码、传输、解码、图像后处理、显示,对应产业链每一个设备;每一个领域和环节都有很多研究方向,如果想成为研究型专家可以深入其中一个环节。如果要成为一个应用工程师(做产品或者项目),可能都需要了解,多数环节都有相应的标准和/或开源软件(如: 编解码有ffmpeg, 视频编辑特效有Shotcut,其中shotcut界面是由qt开发) 。
关于行业,视音频可以应用在各个行业,不止是广播电视,如自动驾驶(激光雷达成像、图像识别、对象跟踪等,有开源的opencv),交通安防(基于特征值的车
cjs
0