我们在学习JavaScript的时候,因为对一些概念不是很清楚,但是又会通过一些简洁的方式把它给记下来,那么这样自己记下来的概念和真正的概念产生了很强的偏差. 当然,还有一些以为这个是对的,还会把它发在网上,那么这个影响就大了,很多人都对于这个概念产生一个错误的理解. 比如对于this指向的理解中,有这样一种说法:谁调用它,this就指向谁.在我刚开始学习this的时候,我非常相信这句话.因为在一些情况下,这样理解也还算说得通.可是我常常会在开发中遇到一些不一样的情况,一个由于this的错误调用…
https://segmentfault.com/a/1190000012646488  https://yangbo5207.github.io/wutongluo/ 说明:此处只是记录阅读前端基础进阶的理解和总结,如有需要请阅读上面的链接 一.this的指向在执行上下文的创建阶段确定,即是在函数的调用阶段确定的,因此不同的调用方式this的指向可能不同 var a = 10; var obj = { a: 20, GetA:function(){ console.log(this.a); }…
在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译. ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值得高兴的是,如果你熟悉ES5,学习ES6并不需要花费太多的时间就可以掌握,因为常用的基础语法并不多,花少量的时间,就可以开始我们的ES6之旅了. 这篇文章不会详细的告诉你ES6的每一个细节知识,只会根据我自己的开发经验,将我在实际开发中常常用到的知识点分享给大家,给大家学习ES6一个方向的指引.这是因为考虑到很多同学虽然…
早几年学习前端,大家都非常热衷于研究jQuery源码.我还记得当初从jQuery源码中学到一星半点应用技巧的时候常会有一种发自内心的惊叹,“原来JavaScript居然可以这样用!” 虽然随着前端的发展,另外几种前端框架的崛起,jQuery慢慢变得不再是必须.因此大家对于jQuery的热情低了很多.但是许多从jQuery中学到的技巧用在实际开发中仍然非常好用.简单的了解它也有助于我们更加深入的理解JavaScript. 这篇文章的主要目的就是跟大家分享一下,jquery对象是如何封装的.算是对于…
在前端开发中,有一个非常重要的技能,叫做断点调试. 在chrome的开发者工具中,通过断点调试,我们能够非常方便的一步一步的观察JavaScript的执行过程,直观感知函数调用栈,作用域链,变量对象,闭包,this等关键信息的变化.因此,断点调试对于快速定位代码错误,快速了解代码的执行过程有着非常重要的作用,这也是我们前端开发者必不可少的一个高级技能. 当然如果你对JavaScript的这些基础概念(执行上下文,变量对象,闭包,this等)了解还不够的话,想要透彻掌握断点调试可能会有一些困难.但…
前言 Promise的重要性我认为我没有必要多讲,概括起来说就是必须得掌握,而且还要掌握透彻.这篇文章的开头,主要跟大家分析一下,为什么会有Promise出现. 在实际的使用当中,有非常多的应用场景我们不能立即知道应该如何继续往下执行.最重要也是最主要的一个场景就是ajax请求.通俗来说,由于网速的不同,可能你得到返回值的时间也是不同的,这个时候我们就需要等待,结果出来了之后才知道怎么样继续下去. // 简单的ajax原生实现 var url = 'https://hq.tigerbrokers…
前言 Promise的重要性我认为我没有必要多讲,概括起来说就是必须得掌握,而且还要掌握透彻.这篇文章的开头,主要跟大家分析一下,为什么会有Promise出现. 在实际的使用当中,有非常多的应用场景我们不能立即知道应该如何继续往下执行.最重要也是最主要的一个场景就是ajax请求.通俗来说,由于网速的不同,可能你得到返回值的时间也是不同的,这个时候我们就需要等待,结果出来了之后才知道怎么样继续下去. // 简单的ajax原生实现 var url = 'https://hq.tigerbrokers…
对于新人朋友来说,想要自己去搞定一个ES6开发环境并不是一件容易的事情,因为构建工具的学习本身又是一个非常大的方向,我们需要花费不少的时间才能掌握它. 好在慢慢的开始有大神提供了一些非常简单易懂,学习成本非常低的解决方案来帮助大家学习.create-react-app就是这些解决方案中,个人认为最简单易懂的一种方式. 所以在学习ES6 modules之前,先跟大家介绍一下create-react-app的安装与使用. 尽管create-react-app的目的是用于开发react程序,但是我们仅…
Promise的重要性我认为我没有必要多讲,概括起来说就是必须得掌握,而且还要掌握透彻.这篇文章的开头,主要跟大家分析一下,为什么会有Promise出现. 在实际的使用当中,有非常多的应用场景我们不能立即知道应该如何继续往下执行.最重要也是最主要的一个场景就是ajax请求.通俗来说,由于网速的不同,可能你得到返回值的时间也是不同的,这个时候我们就需要等待,结果出来了之后才知道怎么样继续下去. // 简单的ajax原生实现 var url = 'https://hq.tigerbrokers.co…
我在上一篇闭包的文章中留下了一个关于setTimeout与循环闭包的思考题. 利用闭包,修改下面的代码,让循环输出的结果依次为1, 2, 3, 4, 5 for (var i = 1; i <= 5; i++) { setTimeout(function timer() { console.log(i); }, i * 1000); } 下面是一些朋友看了闭包以后给出了的一些题,他们在看了上一篇文章以后也对闭包比较感兴趣 所以我也借助此文章对setTimeout进行一个相关的知识分享,希望大家阅…