发表于: 2017-02-13 19:26:52

1 1380


今天完成的事情:

1.今天完成了分页器的制作(明白了各个属性控制的是什么。)

2.完成了小分享的后续制作(上传文档,视频,图片,各个表格的链接,还有微信上的推送未编辑)      

明天计划的事情:

1.完成微信上的推送编辑,

2.开始任务八的表单验证;

遇到的困难:

1.ui-bootstrap引入文件时,开始自己导入不成功,后来在师兄的推荐下用来cdn就成功了。

2.不熟悉各个属性表示什么,整理了下,记在这里,以便查阅。


boundary-links  是否显示第一/最后的按钮。

boundary-link-numbers  是否始终显示第一页和最后一页的数字。

direction-links  是否显示上一个/下一个按钮。

first-text  -文本的第一个按钮。

last-text   文本的最后按钮。

next-text  文本为下一步按钮。

ng-change 这可以用于在页面更改时调用函数。

ng-model   当前页码。第一页为1。

num-pages  -分配的页面来显示的总数量的可选表达式。

previous-text 文本的上一个按钮。

rotate   是否保留当前页面可见的人中间。

items-per-page  每页的最大项目数目。小于1的值表示一页上的所有项目。

total-items  - 所有页面中的项目总数。


收获:

1.熟悉了ui-bootstrap的分页器的使用。知道了各个属性的用处。

分析链接:

如何实现数组深拷贝和浅拷贝?
1.背景介绍

什么是栈内存和堆内存?

JavaScript中的变量的存放有有原始值与引用值之分,原始值代表了原始的数据类型,如Undefined,Null,Number
String,Boolean类型的值;而Object,Function,Array等类型的值便是引用值了。

栈内存和堆内存:栈内存中存放的是存储对象的地址,而堆内存中存放的是存储对象的具体内容。对于原始类型的值而
,其地址和具体内容都存在与栈内存中;而基于引用类型的值,其地址存在栈内存,其具体内容存在堆内存中。堆内
与栈内存是有区别的,栈内存运行效率比堆内存高,空间相对推内存来说较小,反之则是堆内存的特点。所以将构造
单的原始类型值放在栈内存中,将构造复杂的引用类型值放在堆中而不影响栈的效率。

2.知识剖析

1.什么是深拷贝和浅拷贝
浅拷贝:复制一份引用,所有引用对象都指向一份数据,并且都可以修改这份数据。

深拷贝(复杂):复制变量值,对于非基本类型的变量,则递归至基本类型变量后,再复制。可以使用slice()和concat方法。

arrayObject.slice(start,end)
必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2
指倒数第二个元素,以此类推。
可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从
start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
该方法并不会修改数组,而是返回一个子数组


arrayObject.concat(arrayX,arrayX,......,arrayX)
必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的
数是数组,那么添加的是数组中的元素,而不是数组。


3.常见问题
深拷贝和浅拷贝的运用环境。

4.解决方案
这个要看大家具体的应用,注意到数组带来的影响。

5.编码实战
浅拷贝
var arr = ["One","Two","Three"];
var arrto = arr;
arrto[1] = "test";
document.writeln("数组的原始值:" + arr + "<br />");//Export:数组的原始值:One,test,Three
document.writeln("数组的新值:" + arrto + "<br />");//Export:数组的新值:One,test,Three


深拷贝之slice
var num = ["One","Two","Three"];
var newNum = num.slice(0);
newNum[1] = "haha";
document.writeln("数组的原始值:" + num + "<br />");//Export:数组的原始值:One,Two,Three
document.writeln("数组的新值:" + newNum + "<br />");//Export:数组的新值:One,haha,Three


深拷贝之concat
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
document.write(arr.concat(arr2))
输出为George,John,Thomas,James,Adrew,Martin


6.扩展思考http://www.html-js.com/article/3749
对象的深拷贝
http://www.html-js.com/article/3749

7.参考文献
http://www.jb51.net/article/49065.htm
www.html-js.com/article/3749

8.更多讨论
有被浅拷贝坑过的经历吗?   
                                      


返回列表 返回列表
评论

    分享到