发表于: 2017-06-07 22:07:50

2 1119


一.今天完成的事情
1.昨天温习之前学过的执行上下文,闭包,原型链,堆和栈,变量对象,面向对象编程到3点,然而今天啥都没问。。。感觉全身力气没地方发泄的感觉。。。好伤,今天日报做个笔记吧~
2.面试还算顺利(吹牛比能力max),技术性问题没怎么问,明天去谈薪资,觉得要崩。。。

3.下午回来之后状态一直不太好,头有点痛,东西写的很慢,写完日报回去把首页接着做完,之前漏的地方补一补,然后明天就剩一个搜索了。


二,明天预计完成的事情

完成搜索。


三.遇到的问题

这个有个重点,就是angular里面写href=“xxx"会直接跳转localhost/xxx,需要的是直接跳转xxx,现在想到的方法是写个filter把xxx转换为绝对路径,也就是带http的绝对路径,判断前4位是不是http,是的话就不变,不是就加个http://,但是觉得这样做很扯,不知道有没有简单一点的方法?


四.收获
面试经验+1

下面是总结昨天温习的东西,蛮多摘抄的,觉得自己讲没别人讲的精炼。


1.堆和栈。

栈里面存基础类型数据,堆里面存引用类型数据。


2.执行上下文:

全局入栈,函数入栈。。。最后一个函数入栈,最后一个函数代码顺利运行完,最后一个函数出栈。


3.变量对象的创建:
1.建立arguments对象,检查当前上下文中的参数,建立该对象的属性和属性值。
2。检查当前上下文中的函数声明,也就是function,在变量对象中以函数名建立一个属性,属性值为指向该函数地址的引用。若函数名的属性已经存在,该属性会被新的引用覆盖。
3.检查当前上下文中的变量声明,没找到一个变量声明,就在变量对象中以变量名建立一个属性,属性值为undefined,若该变量属性已经存在,为了防止同名的函数被修改为undefined,则会直接跳过,原属性值不会被修改。

函数声明优先于变量声明。


4.执行上下文
创建阶段
在这个阶段中,执行上下文会分别创建变量对象,建立作用域链,以及确定this的指向。(重点)
代码执行阶段
创建完成之后,就会开始执行代码,这个时候,会完成变量赋值,函数引用,以及执行其他代码。
未进入执行阶段前,变量对象中的属性无法访问。
作用域和作用域链

作用域是在编译阶段确定,作用域链是在变量对象创建阶段建立。


5.闭包

一个函数A在另一个函数B中创建,A可以访问到B的作用域,这个时候B就是一个闭包。我们可以用闭包来封装函数,设立私有变量,暴露公有变量等,做函数式编程。还可以柯里化等等


6.This指向
在一个函数上下文中,this由调用者提供,由调用函数的方式来决定。如果调用者函数,被某一个对象所拥有,那么该函数在调用时,内部的this指向该对象。如果函数独立调用,那么该函数内部的this,则指向undefined。但是在非严格模式中,当this指向undefined时,它会被自动指向全局对象。
call和apply可以手动设置this的指向。
fn.call(obj),让obj成为fn的拥有者。
call一个一个传递,apply以数组的方式传递。
可以用call和apply实现很多东西,比如使用call完成对构造函数的继承啊,将类数组(byclass的dom)变成数组啊等等,看懂了这个,再去看封装的框架源码,理解起来就容易些了。
明天再总结下面向对象吧~ 

下雨了。。。


返回列表 返回列表
评论

    分享到