Javascript基础
文章平均质量分 80
Javascript基础
婧大
一切都会有的,未来可期
展开
-
JS内存管理&垃圾回收机制 【JS篇】
内存管理接上次的作用域和闭包,结合闭包聊js内存管理机制js内存管理 垃圾回收机制 内存泄漏js自身会完成内存回收这个功能,不用开发者处理js的内存生命周期,分成三个阶段分配内存内存的读和写内存的释放在内存分配的阶段,会根据不同变量的类型,去确定具体放在生命地方。比如可分为栈内存和堆内存js中的数据类型分成:基本类型和引用类型基本类型: number string boolean null undefined symbol bigint大小固定,体积轻量,相对简单,它们被放在原创 2021-09-12 10:05:43 · 641 阅读 · 0 评论 -
【重读你不知道的js Plan】作用域与闭包【2】
作用域闭包1. 概念先来回忆一下词法作用域的概念:词法作用域就是定义在这个阶段的作用域,在你写代码时将变量和块作用域写在哪里来决定的。当一个函数可以记住并访问所在的词法作用域的时候,就产生了闭包function foo() { var a = 2; function bar() { console.log(a); // 2 } bar(); } foo();当执行bar函数的时候 console.log(a); 这个a是不在bar的作用域里.原创 2021-08-29 12:23:26 · 172 阅读 · 0 评论 -
【重读你不知道的js Plan】 作用域相关知识点复查【1】
1. 作用域的概念1.1 作用域是什么?在程序当中我们会使用到遍历,而对于这些变量,我们如何存储,以及之后当我们需要改变这些变量,又该如何找到它们呢? 因此在程序中有一种规则去存储变量,方便之后我们去查询,而这套规则就是我们说的作用域。在传统的编译语言流程中,程序的代码在执行前会经历“编译”(分成三部分):分词/词法解析将字符组成的字符串分解成有意义的代码块(词法单元 token)var a = 2; => var, a, =, 2 , ;空格的话要具体看空格在这门语言中是否有意.原创 2021-08-17 16:26:53 · 163 阅读 · 0 评论 -
初探前端性能优化-图片加载篇
初探前端性能优化-图片加载篇1、前言2、网页加载图片的过程3、图片加载性能优化2.1 图片懒加载2.2 节流2.3 图片Base64编码2.4 webp图片格式1、前言2、网页加载图片的过程3、图片加载性能优化2.1 图片懒加载2.2 节流2.3 图片Base64编码2.4 webp图片格式...原创 2021-01-27 15:56:36 · 537 阅读 · 0 评论 -
三种改变this指向操作
call手写实现:Function.prototype.myCall = function(thisArg,...args){ if(typeof this != 'function'){ throw new TypeError('error') } const fn = Symbol('fn') //如果thisArg本身就有一个方法叫做fn怎么办?那不是调用call之后, //就会把它本身这个方法删掉了么?有的朋友会说,那起一个复杂点的函数名, //保证其他人不会起这原创 2020-09-19 09:12:04 · 283 阅读 · 0 评论 -
【学习】for...in和for...of
for…in和for…of的区别for...in可以遍历数组和对象,for..of不能遍历对象只能遍历数组for...in直接输出i的值为key,如果要输出value需要arr[i],或者obj[i]for...of直接输出i的值为valuefor…infor…in是遍历数组、对象的keylet arr = [1,2,3];for(let i in arr){ console.log(i)}let obj = { name:'jing', age:18};for(le原创 2020-08-27 09:53:48 · 206 阅读 · 0 评论 -
如何优雅地实现一个【图片懒加载】
如何实现一个图片懒加载为什么要进行图片懒加载某一页面有大量图片。如果一开始全部加载,则同时请求较多的网络资源,页面会出现很长一段时间的空白,用户体验很不好,所以需要图片懒加载。来减轻服务器的压力,优先加载可视区域的内容,其他部分等进入了可视区域再加载,从而提高性能。实现原理1、所有图片地址src,先设置为某一图片,这样只会请求一次网络资源2、当所需要的图片进入浏览器窗口视野之后,将图片地址src替换为真实的图片地址。步骤分析实现懒加载有四个步骤,如下:1.加载loading图片2.判断哪些原创 2020-08-26 15:23:53 · 430 阅读 · 0 评论 -
【记录】实现一个instanceOf
实现一个instanceOf1、判断left,right是不是在一条原型链上2、首先需要知道的是原型链,每个构造函数都有一个prototype属性,指向它的原型对象,同时这个构造函数具备,一个constructor属性,它指向的是它的构造函数3、通过构造函数new一个实例,这个实例会具有__proto__属性,指向的是这个构造函数的原型对象4、instanceof就是实现,判断两个实例是否在一条原型链上5、首先我们需要找到这条原型链上的原型对象6、left表示的是一个实例,而right表示的是原创 2020-08-22 13:15:23 · 540 阅读 · 2 评论 -
【学习记录】 JS创建对象
【JS 】 创建对象工厂模式构造函数模式原型模式组合使用构造函数模式和原型模式动态原型模式寄生构造函数模式稳妥构造函数模式object构造函数或者对象字面量都可以用来创建单个对象,但是都有缺点:使用一个接口创建很多对象,会产生大量重复代码。人们开始使用工厂模式1、工厂模式object构造函数或者对象字面量都可以用来创建单个对象,但是都有缺点:使用一个接口创建很多对象,会产生大量重复代码。考虑在ECMAScript中无法创建类,开发人员发明一种函数,用函数来封装以特定接口创建对象原创 2020-08-16 10:37:45 · 176 阅读 · 0 评论 -
【图解】JS执行流程&调用栈
JS执行流程&调用栈栈和执行上下文函数调用:函数调用就是运行一个函数,具体使用方法是使用函数名称跟着一对小括号var a = 2function add(){ var b = 10 return a+b}add()在执行到函数add()之前,javascript引擎为为上面的代码创建全局执行上下文,变量环境中包含了声明的函数和变量,参考下图:(具体的可以看上篇文章JS执行流程&变量提升)代码中的全局变量和函数都保存在全局上下文的变量环境中,然后开始执行原创 2020-08-14 11:31:58 · 1174 阅读 · 0 评论 -
JS执行流程&变量提升
写在前面不知道作为初学者前端的你有没有这样的困扰,有关变量提升,执行栈,执行上下文,作用域,作用域链,闭包,this总是那么不能理解的特别清楚。我自己就是这样一个典型的例子,感觉总在很多博客中查到有关这些知识的解释,但没过多久就忘记了。如何真正的理解,并且把这些东西连成线一起学,是我写文章的目的。我希望自己可以通过把这些知识连着一起学。长路漫漫,一起加油吧。一段代码的执行1、一段js代码在执行过程中,需要先做变量提升,为什么要做变量提升呢?因为在代码执行之前需要先编译2、在编译阶段,变量和函数原创 2020-08-13 16:32:12 · 318 阅读 · 0 评论 -
7种this指向判断规则,看这个就够了!
彻底搞懂上下文this面试题开始:this是什么?到底this表达了什么?为什么要有this这个东西我们先不直接回答这个问题,我们先看一个例子代码一 <script> var xiaoming = { shuxue : 50, yuwen : 89, yingyu : 10 } function calcTotalScore(o){ return o.shuxue + o.yuwen + o.yingyu;原创 2020-07-25 17:21:23 · 844 阅读 · 1 评论