首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Javascript
清沫
创建于2021-05-15
订阅专栏
深入学习Javascript
等 1 人订阅
共11篇文章
创建于2021-05-15
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
手写Generator自执行器(基于Promise)
Generator是ES6推出的新的语法。Generator通过协程实现,具有执行时暂停并交出执行权,之后又从暂停处恢复执行的特性。这使得Generator可以用于处理异步逻辑。但Generator本身并没有自执行功能,所以通常会搭配类似于co这种执行器一起使用。 本节就探究一…
手写Promise(符合Promise/A+规范,基于ES6)
Promise已经成为现代前端异步编程的基础。很多新的API和异步编程方式都建立在Promise基础上。因此Promise也是前端开发者必须掌握的技能。 除此之外,回调函数还存在信任问题,我们只能把自己的回调函数传给类似fetchAPI这样第三方函数,回调函数的触发时机和触发次…
Javascript异步编程超进化
js是单线程语言,这就是js设计之初就决定好的,并且在未来也不会改变。因此js并没有多线程那样的同步互斥问题。但单线程也意味着同一时间只能做一件事。如果有些任务耗时很久,那么整个应用就会被停住直到该任务完成为止。为了解决这个问题,js引入了异步编程。 异步编程可用于处理不能立即…
原型链和继承 -- Javascript基础探究篇(9)
js不同于传统的面向对象的语言,它并没有类的概念(即使ES6中已经有class关键字)。所以js的面向对象编程采用了一种特殊的方式,这种方式就是原型链。原型和原型链是js的核心,保证了函数或对象中的方法或属性能够被子类复用。 可以看到对象a有一个__proto__属性,该属性所…
this -- Javascript基础探究篇(8)
this应该是js中最为复杂的机制之一。搞懂this某种程度上意味着一次重生。 此时的foo.count的值是多少呢?答案是0。 显然,我们调用了两次foo函数,所以this.count++也肯定运行了两次。但是最后输出的this.count却还是0。那么函数里面的this到底…
作用域和闭包 -- Javascript基础探究篇(6)
我们的程序之所以能够实现足够复杂的功能,很大程度是因为程序能够记住运行的状态。比如运行过程中变量的值,函数的声明等等。如果没有状态,程序的功能性将会受到很大的限制。程序查找状态的规则就叫做作用域。 尽管我们将javascript归为动态语言或者解释性语言,但是javascrip…
强制类型转换 -- Javascript基础探究篇(5)
js中的值可以从一种类型转换为另一种类型,这种行为被称为强制类型转换。 主要介绍强制类型转换最常用的4种抽象操作:转换为基本类型ToPrimitive,转换为字符串ToString,转换为数字ToNumber,转换为布尔值ToBoolean。 抽象操作ToPrimitive负责…
值类型和引用类型 -- Javascript基础探究篇(4)
js中变量所持有的值可分为两种:值类型和引用类型。 值类型:主要是指基本类型,即number,string,boolean,undefined,null,symbol。它们总是通过值复制的方式赋值和传递值。 引用类型:除上述值类型外的对象类型。它们总是通过引用复制的方式赋值和传…
原生函数 -- Javascript基础探究篇(3)
除了我们能自定义函数外,js中还具有一些原生函数,如String,Number,Boolean,Object,Function,Array,Date,RegExp,Error,Symbol等。可以看到有些内置类型和简单基本类型名字和很相似。 使用这些原生函数构造出来的对象,对其…
对象 -- Javascript基础探究篇(2)
js中万物皆对象?其实这并不是完全正确的,js中的简单基本类型(string,number,boolean,undefined,null,symbol)本身并不是对象。但对象确实是js的基础。 js还有很多特殊的对象子类型,我们可以称之为复杂基本类型。如常见的函数和数组就是对象…
类型和值 -- Javascript基础探究篇(1)
js中有七种内置类型:null,undefined,boolean,number,string,object, symbol(es6新增)。除了对象外其他统称为基本类型。 null有时会被当做对象,即typeof null为 object。这实际上是js的一个bug。我们对nu…