发表于: 2019-11-29 22:36:31
0 1047
今天完成的事情:
1 调试了课程接口,课程详情接口
明天计划的事情:
1 复习vue知识点
2 调试搜索接口
遇到的问题:
1 前台项目电脑开起来是空白页,别人的电脑可以开起来,自己的手机用ip也能开起来,更新了代码什么的都试了,最后发现是config里面的写的端口是80,然后电脑的80端口又被占用了。所以导致了这个问题
收获:
类数组对象是类似数组一样有length属性和索引属性的对象,它不是数组,想转成数组可用Array.prototype.map() 、[].slice.call(对象)、Array.from方法
常见的类数组:arguments,NodeList,字符串,TypedArray
注意: {length:0} 是类数组的特殊情况,转换时可以执行成功,返回空数组[]
函数调用时,浏览器每次都会传递进两个隐式参数: 1函数的上下文对象this,2封装实参的对象arguments
特点:
1 它是所在函数的一个内置类数组对象,表示函数的实参集合,不能显式的创建,只在函数开始时才可用
2 它有属性callee,length和迭代器Symbol
3 arguments.length为实参个数,arguments[length]显示参数(可对参数进行修改,严格模式下不行)
4 arguments.callee(函数参数):返回对应原函数,达到调用自身函数的效果,在严格模式中不适用
栈堆,深浅拷贝
基本数据类型保存在栈内存,引用类型保存在堆内存中。因为保存在栈内存的必须是大小固定的数据,引用类型的大小不固定,只能保存在堆内存中,但它的地址写在栈内存中以供我们访问
栈stack: 所有在方法中定义的变量都在栈内存中,方法执行结束,这个方法的内存栈销毁
优点: 存取速度比堆快,仅次于直接位于CPU中的寄存器,数据可以共享
缺点: 存在栈中的数据大小与生存期必须是确定的,缺乏灵活性
堆heap: 堆内存中的对象不会随方法的结束而销毁,即使方法结束后,这个对象还可能被另一个引用变量所引用(参数传递)。创建对象是为了反复利用,这个对象将被保存到运行时数据区
对象赋值给变量时,赋的是在栈中地址,而不是堆中数据。两个对象指向的是同一个存储空间,所以无论哪个对象发生变化,都是改变的存储空间的内容,因此,两个对象是联动的。(如上图)
注意:数组和对象的复制如果使用=号来进行复制,那只是浅拷贝例对象a = 对象b
浅拷贝:复制指向某个对象的指针,而不复制对象本身,也叫地址拷贝或者指针拷贝,新旧对象还是共享同一堆块内存
深拷贝:创造一个模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象
评论