学习记录4
Posted linquesblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习记录4相关的知识,希望对你有一定的参考价值。
(1)闭包
在一个作用域中可以访问另一个作用域的变量,特点是延展了作用域的范围
(2)递归
函数自己调用自己
在递归的过程中会出错
Maximum call stack size exceeded
是内存溢出:超过了最大的堆栈大小
递归一般要写一个结束的条件
(3)对象的拷贝
学习记录里的wsc例子,其中父对象的拷贝内容改变不会影响子对象,
拷贝分为浅拷贝和深拷贝
(4)浅拷贝
浅拷贝是指把对象里的简单类型进行负责拷贝,即只是复制对象的1层如果对象里还有对象,里对象或者数组是把地址指给拷贝对象,修改里对象拷贝对象内容也会一起改变
(5)深拷贝
深拷贝是把对象里的复杂类型进行复制,主对象修改不影响复制内容,用递归方式来实现
//深拷贝,将o1拷贝给o2
function deepcode(o1,o2)
for(var key in o1)
//获取key对应的值
var item = o1[key];
//如果是数组
if(o1[key] instanceof Array)
var o2[key]=[];
deepcode(item,o2[key]);
else if(o1[key] instanceof Object)
//如果是对象
var o2[key]=;
deepcode(item,o2[key]);
else
//简单类型
o2[key]=o1[key];
(6)遍历dom
function domtree(parent,callback)
for(var i =0;i < parent.children.length;i++)
var child=parent.children[i];
//console.log(child);
if(callback)
callback(child);
domtree(child);
外部调用
domtree(parent,function(elemets)
elemets.onclick=function()
console.log(this.innertext;);
);
(7)去掉字符串之间空白
1str.replace(/ab/g,‘‘)‘;
2str.split(‘ ‘).join(‘‘);
(8)去掉正则表达式的贪婪模式
在正则表达式内加?
(9)window.load
1window.onload = function()
2$(window).load(function())指的是页面中所有内容加载完成后才发生,包括标签,图片,文件内容
3$(document).ready(function())指的是页面中基本标签加载完毕就执行,会比2快==jQuery(function());==$(function());
(10)顶级对象
dom--document
bom--window
jq-jq-$()
外包$()就会变成jq顶级对象
(11)dom转jq
只要把dom用$()包起来即可,注意this也是dom对象,所以是$(this)
(12)jq转dom
1 $(dom).get(0);
2 $(dom)[0]
(13)jq方法括号内不写表获取,写了表设置
.val()----设置input的value值,内不写就是获取value值
.html()---设置标签内的结构和文字类似innerhtml()
.text()--设置标签内的文字类似innertext()
.index()获取索引值
.parent()获取父元素
$(this).find("li")针对当前元素找到里面的li元素
.css()设置样式1 只写一个属性,就2个参数 2也可以写成键值对$("div").css("width":"200px","height":"150px");
(14)jq选择器
$("div p")div内所有p
$("div >p")div的直接p
$("div *")div内所有元素
获取该元素的子元素显示
$("div").children("ul").show(加数字为显示时间)/hide(加数字为隐藏时间)隐藏
$("div>li:even")li的偶数选择器但在用户界面显示为奇数$("div>li:odd")奇数选择器,用户界面显示为偶数
$("div>li:gt(3)")索引选择器
eq(3)获取索引的元素,索引从0开始
gt(3)获取索引大于3的元素
lt(3)获取索引小于3的元素
以上是关于学习记录4的主要内容,如果未能解决你的问题,请参考以下文章