eventloop和error异步捕获
Event Loop先来看一张图: 图1 via 掘金小册:前端面试之道by yck左边被黄色虚线框起来的部分叫做函数执行栈,我们可以把执行栈认为是一个存储函数调用的栈结构,遵循先进后出的原则。 图2 via 掘金小册:前端面试之道by yck当我们在执行JS代码的时候会将所要执行的函数放到执行栈中,遇到异步代码会被挂起并在需要执行的时候加入到其所在的任务队列中(microtask微任务 || m
Event Loop先来看一张图: 图1 via 掘金小册:前端面试之道by yck左边被黄色虚线框起来的部分叫做函数执行栈,我们可以把执行栈认为是一个存储函数调用的栈结构,遵循先进后出的原则。 图2 via 掘金小册:前端面试之道by yck当我们在执行JS代码的时候会将所要执行的函数放到执行栈中,遇到异步代码会被挂起并在需要执行的时候加入到其所在的任务队列中(microtask微任务 || m
一、误区1. this指向自身思考以下代码123456789101112131415161718192021function foo(num) { console.log("foo: "+ num); //记录foo被调用的次数 this.count++;}foo.count = 0;var i;for (i = 0; i<10; i++) {
一、引言首先看一个最简单的例子1var a = 2; 开始,我们会以为这只是一个声明,但是事实并不是这样的,JS引擎认为这里有两个完全不同的声明,我们把这两个声明过程分解。 step1: var a,编译器会询问作用域是否已经有一个该名称的变量存在于同一个作用域的集合中。如果是,编译器会忽略该声明,继续进行编译;否则它会要求作用域在当前作用域的集合中声明一个新的变量,并命名为a step2: 接
字符串一些常用方法 charAt()1str.charAt(n) =>返回字符串的第 n 个字符,如果不在 0~str.length-1之间,则返回一个空字符串。123var str = "javascript";str.charAt(2); //'v'str.charAt(12); //'' indexOf()1indexO