JS进阶内容
自己的学习笔记
栿志
这个作者很懒,什么都没留下…
展开
-
JS进阶之闭包
问题引出存在问题:局部变量无法共享和长久的保存,而全局变量可能造成变量污染目的:当我们希望有一种机制既可以长久的保存变量又不会造成全局污染存在问题 //全局变量会造成变量空间的污染 var a = 10; function f1(){ var b = 100; } //局部变量无法长久保存,每次执行函数都会重置a function f1(){ var a = 10; a++;原创 2021-02-02 17:50:55 · 75 阅读 · 0 评论 -
JS进阶之this指向
1. this指向汇总this指向:指向其调用者简单函数 function f(){ console.log(this) //window }; f(); //因为代码不是运行在严格模式下,this又必须是一个对象,所以他的默认值为全局对象window //严格模式下为undefined内置函数 this ==== window setTimeout(f,1000); //window回调函数 ——原创 2021-02-01 19:41:16 · 118 阅读 · 0 评论 -
JS进阶之事件冒泡及委托
1.事件冒泡和捕获当事件发生后,这个事件就要开始传播(从里到外或者从外向里)为什么要传播呢?因为事件源本身(可能)并没有处理事件的能力,即处理事件的函数(方法)并未绑定在该事件源上。冒泡:从内到外(目前浏览器支持的方式)捕获:从外到内阻止冒泡的方法:event.stopPropagation();eg:<!-- 事件冒泡 --> <h1>事件冒泡 </h1> <div class="div1"> div1原创 2021-02-01 18:15:05 · 144 阅读 · 0 评论 -
JS进阶之构造函数、原型链以及多种继承
1.js中的构造函数的写法 function Person(){}; //定义一个构造函数 Person.prototype.name="abc"; //原型对象中添加属性 Person.prototype.age = 18; var p1 = new Person(); //实例化 var p2 = new Person();2.需求:生成多个类似实例的方法方法一:创对象,加元素(pass) var cat1 = {};//创建一个空对象 cat1原创 2021-01-29 23:51:41 · 86 阅读 · 0 评论 -
JS进阶之预解析
预解析var和function关键词会预先解析提前赋值var a = 10 提前解析为var a(此时a的值为undifined)函数,在正式运行代码前赋值为整个函数块预解析结束后,在逐行解读代码 console.log(a) var a = 1; //解析过程 var a; console.log(a) a = 1; console.log(b); var b = 123; function b(){原创 2021-01-29 18:02:58 · 103 阅读 · 0 评论 -
JS进阶之深浅拷贝
深浅拷贝深拷贝:改变不会使原数据跟着改变浅拷贝:改变后会使原数据跟着改变半深拷贝:嵌套对象中,第一层是深拷贝,第二层及以上为浅拷贝(我们要尽量避免浅拷贝,多使用深拷贝)半深拷贝的三种方法数组 concat() slice() var arr = ['a','b']; var arr2 = arr.concat(); arr2.push('c'); console.log(arr2);//[a,b,c] console.log(arr);//[a原创 2021-01-28 18:59:17 · 225 阅读 · 0 评论 -
JS进阶之数据类型+对象创建
数据类型和对象创建1.数据类型汇总:万物皆对象基本类型:string number boolean undefined null引用类型:array function object两者区别:存在形式不同基本类型:以值的形式保存,赋值后即确定,改变其一,另外的值不变var a1 = 10;var b1 = a1;a1 = 9;console.log(b1); //10引用类型:以地址的形式保存,牵一发而动全身var obj = {id:100};var obj2 =原创 2021-01-27 16:25:26 · 100 阅读 · 0 评论