javascript基础
文章平均质量分 89
小敏哥
这个作者很懒,什么都没留下…
展开
-
javascript中的变量和函数提升
提到代码的执行顺序,在不考虑异步回调的情况下,有些开发者可能会认为,同步的js代码的执行顺序跟代码编写的顺序是一致的,即从上往下一行一行的执行。这种想法,严格上只能说是大致正确。从编译器的角度来说,js引擎在解析我们代码的时候,首先会找到所有的变量声明,并且把他们关联到对应的作用域上。简单来说,编译器会首先处理所有的声明,包括函数和变量,这个过程被称为提升。变量提升首先,我们通过下面的...原创 2019-06-02 15:25:20 · 181 阅读 · 0 评论 -
js中setTimeout,requestAnimationFrame,requestIdleCallback的区别和应用
前言:本文中提及的关于标题中三个api的回调函数的调用,都是指回调函数被压入调用队列中等待被调用,如对js中的异步调用和任务调度机制尚不太理解,建议先阅读作者的另一篇文章,异步调度机制——Javascript事件循环(Event Loop)机制解析。正文:本文的主要内容是理清setTimeout,requestAnimationFrame,requestIdleCallback这三个函...原创 2019-04-06 21:25:19 · 3879 阅读 · 0 评论 -
异步调度机制——Javascript事件循环(Event Loop)机制解析
我们都知道,javascript是一个单线程的语言,这就意味着,js在同一个时间片上,只能执行一个任务。只有当前一个任务执行完成之后,才能执行下一个任务。那么当出现网络请求,IO操作这类耗时操作时,由于当前任务什么时候完成我们是不知道的,这时候如果选择等待当前任务完成之后再进行下一步很明显是不明智的,这样会导致性能的严重下降,于是,js的任务类型分为同步和异步两种。同步任务就不需要多说了,按顺...原创 2019-02-23 22:40:33 · 1630 阅读 · 0 评论 -
javascript绑定this的几种方法
首先 ,理清一下js中的this,js中的this对象指向调用当前方法的对象,这个指向是在执行的时候才确定下来的,跟函数在何时何处声明是无关的。但是,在实际使用过程中,我们经常会遇到要改变当前this指向的需求,一下的对绑定this方法的归纳1、call和apply这里把call和apply放在一起讲,是因为这两个方法及其相似,其作用都是直接调用一个函数,并使其具有一个指定的this,...原创 2018-11-28 17:20:52 · 1422 阅读 · 0 评论 -
javascript中bind多次绑定无效——从源码角度看看bind到底做了什么
我们都知道,js中的函数提供了一个bind方法用来绑定this,该方法会返回一个新的函数,在调用返回的函数时会设置this关键字为第一个参数的值。并在调用新函数时,将给定参数列表除第一个参数之外的其他参数作为原函数的参数序列的前若干项。有了bind函数,我们可以很方便的绑定函数的this,但是偶尔我们也会遇到类似下面代码展示的困惑function testBind() { con...原创 2019-06-10 20:01:55 · 3649 阅读 · 4 评论 -
深入理解JavaScript的原型链——关于prototype,__proto__,constructor那些你可能没有彻底搞懂的关系
说起原型链,戳进来看这篇博客的同学必然不会陌生,这是JavaScript中最核心的特性之一。那么,原型链到底是一个什么东西,它的工作原理是什么?这是本篇文章探讨的内容对于原型链,我们可以这么理解,每一个JavaScript对象中,都存在一个内部属性,我们称之为[[prototype]](注意,此处的[[prototype]]属性并不是prototype属性,对于prototype属性,我们之后...原创 2019-06-16 14:57:08 · 979 阅读 · 1 评论 -
JavaScript函数传参原理详解——值传递还是引用传递
讨论JavaScript的传参原理之前,我们先来看一段曾经让笔者困惑了一段时间的代码var testA=1;var testB={};function testNumber(example){ example=2;}function testObj(example) { example.test=1;}testNumber(testA);testObj(te......原创 2019-07-28 11:58:59 · 6542 阅读 · 10 评论