码迷,mamicode.com
首页 > 其他好文 > 详细

学习记录4

时间:2019-08-14 22:07:28      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:浅拷贝   stack   rem   text   cal   eof   对象   callback   ddc   

(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的元素

obj.siblings()获取兄弟元素的方法
// //现在获取的是obj的所有的兄弟元素
// //obj.siblings("li")
// //获取的是obj的当前的所有li兄弟元素
//find("条件")获取的是调用该方法的对象中的所有的元素
//内部循环,外部不需要写循环,隐式迭代
(15)jq样式代码写法
1默认写法
2定义变量赋值
var a={"color":"red",}
jq.css(a);
3样式单个连写
jq.css("color":"red").css("color":"red");
(16)添加和移除类样式
addClass(类名称),添加类名称不会覆盖以前样式不用写前面标识冒号,多个add用逗号相连。另一种写法,多个类写在一个括号用空格隔开
removeClass(类名称),移除指定的类,不写为全删
(17)判断是否应用样式
$("div").hasClass(样式名),返回值为true/false
$("div").toggleClass(样式名)这个是切换样式

学习记录4

标签:浅拷贝   stack   rem   text   cal   eof   对象   callback   ddc   

原文地址:https://www.cnblogs.com/linquesblog/p/11343184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!