js
fengshaopu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
同步、异步,微任务、宏任务
先执行同步的,在执行异步的 异步:微任务:propmise().then() ,async,awiat 宏任务 :setTiimeout setInterval ajax DOM事件 写出console.log的输出顺序 console.log(100); //异步先执行 1 setTimeout(()=>{ //4 console.log(200); }) setTimeout(()=>{原创 2021-06-11 08:02:28 · 237 阅读 · 0 评论 -
事件委托(事件代理)(传统的,vue , e.target.dataset.index)
概念 事件委托,又名事件代理。事件委托就是利用事件冒泡,就是把子元素的事件都绑定到父元素上。如果子元素阻止了事件冒泡,那么委托也就没法实现了。 好处: 提高性能,减少了事件绑定,从而减少内存占用 事件委托原理:事件冒泡机制** <ul id="myLinks"> <li id="goSomewhere">Go somewhere</li> <li id="doSomething">Do something</li> <li id=原创 2021-05-30 21:23:35 · 865 阅读 · 0 评论 -
闭包 是什么
面试题: 当一个函数用到另一个函数的变量的时候,这个变量跟这个函数就是闭包的环境,主要通过原型链、跟函数嵌套 优点:变量不会被污染 缺点:容易造成内存泄漏原创 2021-05-28 18:34:02 · 98 阅读 · 0 评论 -
var let const 区别
一、目录 1.是否存在变量提升? 2.是否存在暂时性死区? 3.是否允许重复声明变量? 4.是否存在块级作用域? 5. 是否能修改声明的变量? 二.是否存在变量提升? var 有变量提升 ———— let const没有 ·提升到了这 var f· console.log(f) //undefined var f = 1 ; **·没有变量提升·** console.log(g) //ReferenceError: g is not defined let g = 2; **·没有变量提升·** co转载 2021-05-28 16:58:49 · 109 阅读 · 0 评论 -
作用域、作用域链、自由变量、变量提升
一、作用域 对象 类型 global/window 全局作用域 function 函数作用域(局部作用域) {} 块状作用域 this 动态作用域 全局作用域 :任何地方都可以访问,反复使用 函数作用域(局部作用域):仅在函数内部可访问,不能反复使用 例子: var a=10; function fun() { var a=100; a++; console.log(a); } fun();//101 console.log(a);//10 二、作用域链 自由变量的向原创 2021-05-27 19:39:14 · 131 阅读 · 0 评论 -
this指向问题、new的过程
this指向的问题 1.全局this指向window 2.函数内部this指向谁调用就指向谁 4.箭头函数 this指向父级上下文的意思 5.函数可以用call、apply、bind去修改this 6.箭头函数不可以修改 7.class指向创建出来的类 8.new this指向new出来的实例 this指向的问题可以看我上篇博客: https://blog.youkuaiyun.com/fengshaopu/article/details/117301481?spm=1001.2014.3001.5501 new的过原创 2021-05-27 19:08:19 · 153 阅读 · 0 评论 -
call/apply/bind的区别
一、总结 1.call跟apply跟bind都可以修改this指向 2.call 用于后面是一个一个数据的情况下 3.apply用于后面是数组的情况下 4.bind后面要多加一步() 二、call跟apply跟bind都可以修改this指向 function f(){ console.log(this.name) } var v={ name:'我是' } f.call(v) //call f.apply(v) //apply f.bind(v) //bind 三、call 用原创 2021-05-27 11:07:40 · 104 阅读 · 0 评论 -
js this指向
一、this指向分为: 1.全局 —————————— 全局的this指向window 2.函数内部 —————————— 谁调用this指向谁 3.call() —————————— 可以修改this指向 4.箭头函数 —————————— 父级的上下文 二、全局的this指向 全局的this指向window //第一种情况 全局里面原创 2021-05-26 19:09:54 · 116 阅读 · 4 评论 -
数组常用方法 (es4,es5,es6)
push 尾部添加 let rga = new RegExp(this.value, “gi”); g 是全局的 i是不区分大小写 pop 尾部删除 unshift 头部添加 shift 头部删除 replace 字符串替换 String str=“Hello World”; System.out.println( str.replace( ‘H’,‘W’ ) ); 结果是 Wello World reverse 数组反转 splice(index,数量),可以做删除 sli原创 2021-05-25 21:20:48 · 189 阅读 · 0 评论 -
arguments
1.arguments 是伪数组 2.arguments不能使用数组 方法 3.arguments有索引值 有length 4.如果想用 数组方法的话 用 借用 : var argsArr = Array.prototype.slice.call(arguments);原创 2021-05-25 20:02:14 · 122 阅读 · 0 评论 -
数据类型判断
typeof 对于基本数据类型判断是没有问题的,但是遇到引用数据类型(如:Array)是不起作用 instanceof 判断 new 关键字创建的引用数据类型 不考虑 null 和 undefined(这两个比较特殊)以对象字面量创建的基本数据类型 constructor(康斯储可特) 似乎完全可以应对基本数据类型和引用数据类型 但如果声明了一个构造函数,并且把他的原型指向了 Array 的原型,所以这种情况下,constructor 也显得力不从心 Object.prototype..原创 2021-05-24 19:09:46 · 167 阅读 · 0 评论 -
js数据类型
一、基本的数据类型 1.number (数字) 2.string (字符串) 3.boolean (布尔值) 4.undefind (undefind) 5.null (空) 6.Symbol(es6新增独一无二的值) 7.和 BigInt(es10新增) 8.object (对象) 引用数据类型: Object。包含Object、Array、 function、Date、RegExp。 ...原创 2021-05-24 19:02:03 · 102 阅读 · 0 评论 -
深拷贝(什么是深拷贝,为什么要进行深拷贝,如何进行深拷贝(至少写三种方法,手写深拷贝))
加粗样式一、什么是深拷贝、浅拷贝 深拷贝和浅拷贝是针对复杂数据类型来说的,浅拷贝只拷贝一层,而深拷贝是层层拷贝。 1.浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象只是对原对象的一个引用 2.深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用” 二、为什么要进行深拷贝 我们想要的结果是两个变量(初始值相同)互不影响。所以就要使用到拷贝(分为深浅两种) 三、深拷贝(三中方法) 1.使用递归的方式实现深拷贝 //使用递归的方式实现数组、对原创 2021-05-23 19:06:36 · 3869 阅读 · 0 评论
分享