2021/11/8 jQuery

1、文档就绪函数缩写:
第一种: $(document).ready(function(){

})
第二种: $().ready(function(){

})
第三种: $(function(){

})
2、:first 获取第一个元素
$(function(){
// var div=document.querySelector("div"); 原生js
// var $div=$(".div");
// :first可以单独使用
var $div=$(".div");
// $div.click(function(){
// $("li:first") 不能加空格

3、:eq(index) 匹配一个给定索引值的元素
$("li:eq(2)").css("color","red");给定索引值

4、:gt(index) 匹配所有大于给定索引值的元素
// $("li:gt(2)").css("color","green");大于索引值

5、:lt(index) 匹配所有小于给定索引值的元素
// $("li:lt(2)").css("color","blue"); 小于索引值

6、:parent 匹配含有子元素或者文本的元素
// $("li:parent").css("color","red");含子元素或文本

7、:has(selector) 匹配含有选择器所匹配的元素的元素
// $("li:has(span)").css("color","red");含有选择器的元素

8、:contains(text) 匹配包含给定文本的元素
// $("li:contains(33333)").css("color","red"); 包含(文本)

9、闭包
一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure)。
也就是说,闭包让你可以在一个内层函数中访问到其外层函数的作用域。在 JavaScript 中,每当创建一个函数,闭包就会在函数创建的同时被创建出来。
词法作用域
请看下面的代码:

function init() {
var name = "Mozilla"; // name 是一个被 init 创建的局部变量
function displayName() { // displayName() 是内部函数,一个闭包
alert(name); // 使用了父函数中声明的变量
}
displayName();
}
init();

init() 创建了一个局部变量 name 和一个名为 displayName() 的函数。displayName() 是定义在 init() 里的内部函数,并且仅在 init() 函数体内可用。
请注意,displayName() 没有自己的局部变量。然而,因为它可以访问到外部函数的变量,所以 displayName() 可以使用父函数 init() 中声明的变量 name 。
使用这个 JSFiddle 链接运行该代码后发现, displayName() 函数内的 alert() 语句成功显示出了变量 name 的值(该变量在其父函数中声明)。
这个词法作用域的例子描述了分析器如何在函数嵌套的情况下解析变量名。词法(lexical)一词指的是,词法作用域根据源代码中声明变量的位置来确定该变量在何处可用。
嵌套函数可访问声明于它们外部作用域的变量。
for (var i=0;i<5;i++){
(function (i) {//i形参
setTimeout(function(){
console.log(i);
},1000)
}(i));//i实参 调用
}
//闭包 声明的时候同时调用

10、浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,
深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存,

深度克隆
var stu1={
id:1000,
name:"张三",
class:{
name:"Web211001",
const:40
}
}
//直接赋值 对象的完全引用
// stu1.name="李四";
// stu1.id=1001;
// var stu2=stu1;
// console.log(stu2);


//浅拷贝
var stu2={};
stu2.id=stu1.id;
stu2.name=stu1.name;
//class是对象 引用 给2的时候是拿过来的是地址 并不是1里面的东西
stu2.class=stu1.class;
stu1.class.name="Web211002";
console.log(stu2);

 

 

 

 

 

 

 

 

 

 

 

// })

上一篇:12月22日


下一篇:08 面试.js