![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
文章平均质量分 59
『小孩不坏』
前端小透明的成长之路
展开
-
js中的小技巧记录
1.~~的使用 //~是按位非,就是每一位取反,~~就是再转回来,利用两个按位取反的符号,进行类型的转换,转换成数字符号。 //常用于常用来向下取整,更快的替代 Math.floor() ~~10.2323// 10 ~~(10/3)// 3 ~~false// 0 ~~true// 1 ~~undefined// 0 ~~!undefined// 1 ~~null// 0 ~~!null// 1 ~~"" // 0 ~~!""// 1 2.任意两个数字类型的交换 var a = 2,b = 'pi原创 2021-05-31 18:06:49 · 86 阅读 · 0 评论 -
关于闭包的个人理解与内存泄漏的问题
一、什么是闭包 1、父函数里面嵌套的子函数,子函数访问父函数的局部变量。 2、通过return将子函数暴露到全局作用域,子函数就形成闭包。 3、通过闭包,父函数的局部变量没有被销毁,可通过闭包去调用 ,但同时,这个局部变量也不会被全局变量污染。 二、为什么需要闭包 因为局部变量无法共享和长久的保存,而全局变量可能造成变量污染,所以我们希望有一种机制既可以长久的保存变量又不会造成全局污染。 三、简单的闭包 function addNum() { var num = 0; return func原创 2021-04-25 17:32:51 · 385 阅读 · 2 评论 -
对async/await和promise的个人理解
什么是async/await? async/await 是ES7提出的基于Promise的解决异步的最终方案。 async 会将其后的函数的返回值封装成一个 Promise 对象,而 await 会等待这个 Promise 完成,并将其 resolve 的结果返回出来。 async/await语法 假设函数getJSON返回值是 Promise,并且 Promise resolves 有一些JSON 对象。我们只想调用它并且记录该JSON并且返回完成。 1)使用Promise: const makeRequ原创 2021-04-16 17:33:57 · 369 阅读 · 0 评论 -
有关深拷贝和浅拷贝的个人理解
如何区分深拷贝与浅拷贝,简单点来说,深拷贝是拷贝的值,浅拷贝拷贝的是址。 1. 内存是存储数据的,不同类型的数据要存储在不同的区域,即分类存放,不同的区域作用和功能也不一样。 (1)如果是基本数据类型,名字和值都会储存在栈内存中 var a = 1; b = a; // 栈内存会开辟一个新的内存空间,此时b和a都是相互独立的 b = 2; console.log(a); // 1 (2)如果是引用数据类型,名字存在栈内存中,值存在堆内存中,但是栈内存会提供一个引用的地址指向堆内存中的值。 只要在堆内存中也原创 2021-04-16 11:44:29 · 108 阅读 · 0 评论