发表于: 2017-06-24 14:29:22

0 746


任务十三

今天完成的事情

  1. 学习了webpack打包工具,es6的简单用法。
  2. 明天计划的事情

  1. 接口通了测接口,接口没通继续研究es6。

遇到的问题

  1. 1.webpack好难,都是一堆看不懂的东西,理解概念就花了很长的时间,问了下同学,发现语法是node.js的语法,主要涉及到模块定义和文件导入这两个方面的语法,然后概念方面,webpack的一个重要概念就是模块,所有的文件在它眼中都是模块,比如css文件,图片文件,都是模块。然后webpack中另外一个概念就是入口,入口这个概念有点像angular中的index.html,所有的文件都可以从入口出发然后找到。

2.es6学习曲线有点陡峭,只能大改过一遍再细细的去学,很多前面的例子就使用了后面几章才会提到的知识点,不过新增的js特性确实都很方便,印象比较深的就是模板字符串,功能十分强大,不过暂时只会用最简单的。再一个印象比较深的是块级作用域,将之前的闭包,c#中的块级作用域全部都串起来了,之前就很好奇怎么只要js里面才有闭包这个问题,也知道原因是块级作用域,但是没有深入的思考,只是强行的去理解了闭包的几种解决方案。像这个经典的闭包问题:

for(var i=0;i<6;i++){
a[i]=function () {
console.log(i);
}

}

a[2]();//6

出现这种结果的根本原因就是因为js没有块级作用域,这句话怎么理解?一步一步执行代码就懂了,将上面的代码一步一步执行,过程是这样的:

{var i=1
a[1]=function () {
console.log(i);

}

}

{

var i=2

a[2]=function(){

console.log(i);

}

}

因为{}并不是一个独立的作用域,所以后面的i会覆盖掉前面的i,解决办法很简单,创建一个块级作用域就行,把这段代码丢到一个立即执行函数里面,这样就有一个独立的作用域了。但是使用es6就根本不用这么麻烦,直接将var i=0换成let i=0就行,这样就能创建一个独立的作用域了。



  1. 收获

  2. 1通过作用域深入理解了闭包这个东西

  3. 2知道了es6的一些新特性,如何使用babel将es6转换成es5.



返回列表 返回列表
评论

    分享到