Javascript
文章平均质量分 81
js原理
Welkin_qing
个人一些小小的总结和感悟.
展开
-
详谈事件循环
文章目录一、js事件循环(1)执行栈【先进后出】(2)消息队列【先进先出】(3)宏观任务和微观任务1. js引擎运行机制2. 变相理解本文将详细介绍事件循环,首先声明事件循环分为浏览器下js引擎的事件循环和node事件循环(P.S. 事件循环简直是一个老生常谈的问题了,我最近在看node,发现之前写的博客中讲的不够清晰,现在再次做一次总结和完善)附上我之前的文章链接,有兴趣的可以看下:https://blog.csdn.net/Welkin_qing/article/details/88956200原创 2021-05-11 17:49:36 · 1250 阅读 · 0 评论 -
前端知识点总结(一)
文章目录一、ES61. let const 和var 的区别a. let和const的区别b. let和const和var 有三点区别2. promisea. promise是什么?b. promise的特点c. promise 的作用d. promise 的缺点、如果某些事件不断的反复发生,使用stream 模式[nodejs.org/api/stream.html](nodejs.org/ap...原创 2019-03-15 16:00:47 · 409 阅读 · 0 评论 -
作用域和内存问题
一、基本类型和引用类型的值变量可能包括两种不同的数据类型的值基本类型值:简单的数据段引用类型值:指那些可能由多个值构成的对象5种基本数据类型:undefined,Null,Boolean,Number 和 String这5种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值。...原创 2019-03-20 18:06:21 · 433 阅读 · 0 评论 -
详解js垃圾回收机制
文章目录垃圾回收原理:1. 标记清除思想是给当前不使用的值加上标记,然后再回收其内存2. 引用计数思想是:跟踪每个值被引用的次数存在的问题:循环引用导致不能回收性能问题工作方式:触发垃圾收集的变量分配字面量或者数组元素的临界值被调整为动态注意管理内存解除引用解除的目的垃圾回收js 具有垃圾回收机制原理:找出那些不再继续使用的变量,然后释放其占用的内存,垃圾回收器会按照固定的时间间隔(或者代...原创 2019-03-17 22:42:37 · 764 阅读 · 0 评论 -
前端知识点总结(三)
文章目录Js:一、什么是闭包?(要理解闭包的原理)1. 闭包的原理:2. 作用域链3. 创建常见闭包的方式4. 闭包中的this指向问题5. 闭包带来的问题二、什么是原型链,什么是工厂模式1. 工厂模式2. 构造模式2. 原型模式三、如何实现继承1. 实现继承的基本思想2. 原型链3. 原型系统4. 操作原型的方法5. 默认的原型(数组方法是哪来的?)6. 继承a.使用构造器继承b.使用类实现继承...原创 2019-03-23 22:52:26 · 520 阅读 · 0 评论 -
前端知识总结
文章目录1. 自我介绍?2. 问最近做过哪些项目,项目中遇到哪些问题?怎么解决的?解决方案为什么会使用iframe标签?页面是怎么将图片显示在页面上的?iframe的作用和缺点(参考面经)优点:缺点3.你用到了Flex,请问flex怎么设置垂直水平居中?4. css有哪些垂直水平居中方式?5. css选择器有哪些?选择器的优先级?6. position的值有哪些?文档流是什么7. 只允许使用css...原创 2019-03-24 11:42:28 · 242 阅读 · 0 评论 -
前端知识总结之基础知识
文章目录1.原始类型有哪几种?null 是对象嘛?基本数据类型存在的一些bugnull 不是对象类型2. 对象类型和原始类型的不同之处?函数参数是对象会发生什么问题?基本数据类型为栈存储吗,基本数据类型为堆存储函数参数的传递(按值传递)3. typeof 是否能正确判断类型?instanceof 能正确判断对象的原理是什么?typeof 并不能准确判断变量到底是什么类型instanceof 能判断...原创 2019-04-01 16:35:21 · 835 阅读 · 0 评论 -
ES6知识点总结
文章目录1. 什么是提升?什么是暂时性死区?var、let 及 const 区别?提升暂时性死区(不能在声明前就使用变量)2. 原型如何实现继承?Class 如何实现继承?Class 本质是什么?组合继承寄生组合继承class继承(class本质为函数)3. 模块化使用模块化的好处模块化的实现方式:a. 立即执行函数b. AMD 和CMDc. CommonJSd. ES Module( impor...原创 2019-04-01 19:16:55 · 662 阅读 · 0 评论 -
JS异步编程
文章目录1. 并发和并行的区别2. 什么是回调函数?回调函数有什么缺点?如何解决回调地狱问题?3. Promise 的特点是什么,分别有什么优缺点?什么是 Promise 链?Promise 构造函数执行和 then 函数执行有什么区别?手写一个promise4. async 及 await 的特点,它们的优点和缺点分别是什么?await 原理是什么?5. setTimeout、setInterv...原创 2019-04-01 20:02:14 · 317 阅读 · 0 评论 -
JS之Event Loop(事件循环)
文章目录1. 进程与线程区别?JS 单线程带来的好处?2. 什么是执行栈爆栈3. 异步代码执行顺序?解释一下什么是 Event Loop ?1. 进程与线程区别?JS 单线程带来的好处?一个进程中可以有多个线程,比如渲染线程、JS 引擎线程、HTTP 请求线程等等。当你发起一个请求时,其实就是创建了一个线程,当请求结束后,该线程可能就会被销毁。在 JS 运行的时候可能会阻止 UI 渲染,这说...原创 2019-04-01 20:25:05 · 4499 阅读 · 0 评论 -
JS 进阶知识点
文章目录1. call、apply 及 bind 函数内部实现是怎么样的?2. new 的原理是什么?通过 new 的方式创建对象和通过字面量创建有什么区别?通过 new 的方式创建对象和通过字面量创建有什么区别?3. instanceof 的原理是什么?4. 为什么 0.1 + 0.2 != 0.3?如何解决这个问题?5. 垃圾回收机制6. JS 是如何运行的?线程和进程执行栈宏任务和微任务的区...原创 2019-04-01 21:16:30 · 548 阅读 · 0 评论 -
浅谈js继承
在js高程中有介绍:OO语言支持两种继承方式接口继承:只继承方法签名实现继承:继承实际的方法(ECMAScript支持)实现继承主要是依靠原型链一、原型链基本思想:利用原型让一个引用类型继承另一个引用类型的属性和方法。每个构造函数都有一个原型对象原型对象包括一个指向构造函数的指针实例包括一个指向原型对象的内部指针...原创 2019-04-21 18:13:32 · 532 阅读 · 0 评论 -
详解js继承
文章目录一、原型链1. 原型关系2. 确定对象之间的关系二、继承1. 原型链继承2. 构造函数继承3. 组合继承(原型链+构造函数)3. 原型式继承一、原型链1. 原型关系函数通过—prototype–指向原型对象实例对象/原型对象–proto—指向该对象的原型原型对象—constructor–指向构造函数2. 确定对象之间的关系instanceofson.instanceo...原创 2019-08-08 18:21:20 · 268 阅读 · 0 评论 -
详解cookie、session和webstorage
文章目录一、cookie和session1. http2. cookie(客户端)2.1 set-cookie的字段信息3. session(服务端)一、cookie和session1. httphttp:超文本传输协议,是一种用于分布式、协作式和超媒体信息系统的应用层协议(HTTP是万维网数据通信的基础)http的目的:提供一种发布和接收HTML页面的方法,通过HTTP和HTTPS协议请...原创 2019-08-10 20:37:44 · 361 阅读 · 0 评论 -
闭包、执行上下文和作用域
文章目录一、闭包二、执行上下文一、闭包有权访问其他函数内部作用域变量的函数与普通函数的区别:携带了执行环境闭包的定义:环境部分函数的词法环境标识符列表:函数中用到的未声明变量表达式部分:函数体二、执行上下文执行上下文:js把一段代码(包括函数),执行所需的所有信息定义为执行上下文ES3:作用域【scope】变量对象【variable object】:用于存储...原创 2019-08-25 16:53:27 · 1459 阅读 · 0 评论 -
字节跳动一面总结
文章目录1. css 实现一个自适应搜索框,输入框部分宽度自适应,搜索按钮宽度固定2. 改变 this 的指向有哪些方法呢?a. this 与执行时有关b. 改变this指向的方法1. new关键字改变this指向2. call()3. apply()4. bind()3. 关于const4. 数组的方法是哪来的?5. 请说明 cookie、sessionStorage、localStorage ...原创 2019-03-19 20:04:06 · 1251 阅读 · 0 评论 -
js 抖动和节流
什么是防抖和节流举个例子,比如在进行百度搜索时,是等待用户时输入完成之后,才会在搜索框下显示,搜索内容,而不是当输入未完成的状态下进行搜索(这样会消耗大量的服务器资源)。函数防抖规定函数至少间隔多久执行函数执行过一次后,在规定时间内不能再执行,否则推迟函数执行下一次函数调用时,将清楚上一次定时器,并且使用setTimeout 重新计时利用时间间隔,当事件触发的时间间隔很短的时候,就...原创 2019-03-04 17:17:42 · 2867 阅读 · 2 评论 -
浅谈JS作用域
一、js作用域概念—预解析规则,表达式域:指的是一个空间、范围、区域作用:通常指读和写所以作用域:指的是在一个范围内进行读或写的操作浏览器中对js代码进行操作的是js解析器js解析器的作用是:1.“找一些东西”(var关键字、函数、参数) var a=1; function fn1(){ alert(2); }在上...原创 2018-06-13 08:36:57 · 687 阅读 · 0 评论 -
Javascript字符串方法总结
一、字符串获取类,封装监测数字的方法charAt():根据下标返回字符串charCodeAt():根据下标返回字符串编码String.fromCharCode():根据编码值返回字符在这里提一下主要字符的编码值:0 ~ 9:48 ~ 57a ~ z:97 ~ 122A ~ Z:65 ~ 90注意:若用charAt()监测一个不存在的字符,...原创 2018-07-25 12:59:23 · 228 阅读 · 0 评论 -
Javascript中的Dom概念和Node类型
一、Dom的概念和节点层次Dom:Document Object Model 文档对象模型,可以将任何 html 文档描绘成一个由多层次节点构成的结构。换而言之,就是Dom会把文档看成一棵树,同时定义很多方法来操作这棵树中的每一个元素(节点)。文档:html 页面文档对象:页面中的元素文档对象模型:为了能够让程序(js)去操作页面中的元素文档节点:文档节点是每个...原创 2018-07-31 18:48:04 · 943 阅读 · 0 评论 -
JS正则表达式
一、正则表达式的基础1. 复习字符串操作原创 2018-11-07 19:02:55 · 216 阅读 · 0 评论 -
JS正则表达式之RegExp构造函数
一、 RegExp 类型ECMAScript通过RegExp类型来支持正则表达式Perl 语法:var expression = / pattern / flags;pattern(模式) 部分可以是任何简单或复杂的正则表达式,可以包含字符类,限定符,分组,向前查找以及反向引用。flags(标志)部分用以标明正则表达式的行为。正则表达式的匹配模式支持下列三个标志g: 表示全局模...原创 2018-11-07 20:57:07 · 2730 阅读 · 0 评论 -
Canvas之使用弧度绘制扇形图
一、体现曲线的绘制首先需要明白角度和弧度的关系:一个角度等于π/180个弧度1. 根据点动成线的概念绘制圆弧(利用函数)比如:y = x/2 y = (x + 2) ^2 y = sin(x) 在这里我们使用三角函数做示例or(var i = 1 ; i < 600 ; i ++){ var x = i; var y = 50*Math.s...原创 2018-11-29 20:06:17 · 7686 阅读 · 0 评论 -
Canvas之绘制帧动画
一、 帧动画绘制图片 -----使用drawImage()三个参数drawImage(img, x,y)img 图片对象,Canvas对象,video对象x,y 图片绘制的左上角五个参数 drawImage(img, x, y, w, h)img 图片对象,Canvas对象,video对象x,y 图片绘制的左上角w,h图片绘制尺寸设置(图片缩放,不是截取)九个参数 ...原创 2018-11-29 20:27:57 · 1369 阅读 · 0 评论 -
Canvas基本入门操作
一、基本体验Canvas绘图1. 基本操作a. 准备画布使用canvas标签注意:画布是白色的 而且默认300*150,所以我们可以在style样式里给canvas加上边框设置画布的大小,需要使用内敛式设置,不建议在style样式进行设置<style> canvas{ border: 1px solid #ccc; ...原创 2018-11-27 16:16:11 · 485 阅读 · 0 评论 -
Canvas之绘制折线图
一、 绘制网格绘制网格网格的大小网格的条数,横线条数,竖线条数,画布高度网格的条数我们根据画布的大小来对网格大小进行相除,取整<script> var myCanvas = document.querySelector('canvas'); var ctx = myCanvas.getContext('2d'); /*1.绘制网格*/ /...原创 2018-11-27 16:33:38 · 4733 阅读 · 1 评论 -
JavaScript数组方法及json
一、json数据格式及json语法一个简单的jsonvar json = { name : 'leo', age : 32 }; alert( json.name );//leo将数组改为json//数组var arrUrl = [ 'img/1.png', 'img/2.png', 'img/3.png', 'img/4.png' ];var arrText...原创 2018-07-25 15:56:30 · 519 阅读 · 0 评论 -
验证码机制原理
验证码是从后端随机生成的。注意:后端永远认为前端有可能被伪造。1.后端调用相关的绘图的第三方类库,或是(平台PHP,NET,Java)系统核心绘图类库进行图片的绘制。2.绘图的那些随机的数字,字母,都是后端预定义好的。3.将绘制图片的URL地址,通过网络返回给客户端,然后客户端可以使用img标签,去引用这个验证码的地址。4.后端在绘制完毕验证码之后,注意随机...原创 2018-07-21 22:56:22 · 2615 阅读 · 0 评论 -
JS中的NaN和isNaN
一、NaN:not a number 不是个数字的数字类型但是属于数字类型var a = number ('abc');alert(a); //NaNalert(typeof(a)); //number注意:一旦程序出现NaN,肯定进行非法操作特性:1.NaN是假的布尔值var a = number ('abc');if(a){ alert('真...原创 2018-06-05 01:07:34 · 2068 阅读 · 0 评论 -
关于js,几个你不知道的小问题
文章目录一、为什么有的编程规范要求用 void 0 代替 undefined?但是呢,因为JavaScript的代码undefined是一个变量, 而并非是一个关键字, 这是JavaScript语言公认的设计失误之一,所以,我们为了避免无意中被篡改,我建议使用void 0来获取undefined值。二、字符串有最大长度吗?String 有最大长度是2^53- 1三、0.1+0.2=0.3吗?检查等...原创 2019-03-14 13:47:18 · 194 阅读 · 0 评论 -
js之前端知识积累
let,const 和 varvar如果使用关键字 var 声明一个变量,那么这个变量就属于当前函数作用域如果声明是发生在任何函数的顶层声明,那么这个变量就属于全局作用域。...原创 2019-03-10 22:53:23 · 2475 阅读 · 0 评论 -
JS数据类型及数据转换
一、JS数据类型ECMAScript 是数据类型的一个标准及核心 首先我先提一下HTML的标签类型 **HTML标签类型:**block,inline,inline-block,table 注意:在JS里我们需要利用typeof来判断数据类型 JS数据类型:1.数字 number2.字符串 string可对字符串进行的操作有:(1).求字符串的长度 ...原创 2018-06-05 00:30:57 · 309 阅读 · 0 评论