js
不开花的玫瑰
放荡不羁,瑀瑀独行。
展开
-
面经总结:何为Promise
Promise是ES6提供的对象,代表了未来将要发生的事件,用来传递异步操作的消息。Promise在开发和面试的过程中都很重要,下面我们一起来看一下关于Promise的相关知识。说一下对Promise的理解Promise是JS中进行异步编程的解决方案,是一个构造函数,用来封装一个异步操作并可以获取其结果,可以解决之前的回调地狱的问题。使用Promise的好处:①可以避免多层异步调用嵌套问题②简洁的API,更加容易控制异步操作Promise的缺点:①无法取消Promise,一旦新建它就会立即执原创 2020-09-17 10:24:09 · 289 阅读 · 0 评论 -
JS数组去重方法整理,再也不用担心数组如何去重了
前端笔试的过程中,大概率会有这样一道题,给你一个字符串数组,让你输出其中不重复的字符串的个数,这就是典型的数组去重了,那应该如何进行数组去重呢?本篇文章整理了10余种方案,你来看看那个最适合。1.利用set对数组去重set是ES6中的一种数据结构,类似于数组,但是成员的值都是唯一的,没有重复的值。function unique(arr) { return [...new Set(arr)] // 扩展运算符,将伪数组转换为真正的数组}var arr = ["abc","ade","bef","原创 2020-09-07 19:40:40 · 272 阅读 · 2 评论 -
加密算法bcrypt的使用
bcrypt说明 bcrypt是一种加盐的加密方法,每次加密的时候会先生成一个随机数,之后将这个随机数与密码进行hash,形成密文。bcrypt与MD5的区别 MD5加密算法同一个密码加密后的密文是一样的,这样很容易被破解;bcrypt加密算法同一个密码加密之后的密文是不一样的,相对来说更加安全一些。bcrypt使用bcrypt依赖的其他环境 1.python 2 2.nod...原创 2020-03-08 20:41:34 · 1493 阅读 · 1 评论 -
解决同源政策限制的三种方案
何为同源政策产生原因JSONPCORS服务器端的方案withCredentials属性,运行请求携带cookie信息原创 2020-03-15 19:28:28 · 561 阅读 · 1 评论 -
看了这篇文章,让你不在害怕前端方法异步的问题
1.同步API与异步API同步API:只有当前API执行完成后,才能继续执行下一个API;异步API:当前API的执行不会阻塞后续代码的执行;区别:①同步API可以从返回值中拿到API执行的结果,但是异步API不可以。②代码执行顺序不同2.异步API都有哪些呢?常见的异步调用有:定时任务(setTimeout),Ajax以及在此基础之上封装的axios等。因为异步API的代码执行顺...原创 2020-04-19 15:45:58 · 366 阅读 · 2 评论 -
JS实现继承的7种方式,你都知道哪几种???
题记ECMAScript只支持实现继承,而且其实现继承主要是依靠原型链来实现的。继承的方式方式一:原型链基本思想:利用原型让一个引用类型继承另一个引用类型的属性和方法原创 2020-07-11 16:24:33 · 319 阅读 · 2 评论 -
JS创建对象的9种方式,你还在愁不知道如何创建对象吗?
什么是对象呢?ECMA-262中定义:对象是无序属性的集合,其属性值可以包含基本值、对象或者函数。理解一下:对象是一组没有特定顺序的值。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。知道什么是对象,下面我们一起来看一下创建对象的多种方式。创建Object的实例简介:创建对象的最简单方式:创建一个Object实例,然后添加属性和方法。早期JS开发人员使用这个模式创建对象。var perosn = new Object();perosn.name = 'Helen';person.原创 2020-07-09 16:15:14 · 255 阅读 · 0 评论 -
ES5中新增的方法,让你的开发效率6的飞起
前言ES5也被称为ECMAScript 5或ECMAScript 2009,在ES5中新增了许多方法,包括数组方法、字符串方法、对象方法等。今天我们主要来学习以下内容:数组迭代方法:forEach()、map()、filter()、some()、every()字符串方法:trim()对象方法:Object.keys()、Object.defineProperty()数组迭代方法1.forEach()forEach是用来遍历数组的,有三个参数,参数一是数组元素,参数二是数组元素的索引,参数三原创 2020-07-05 16:30:13 · 332 阅读 · 1 评论 -
前端将后端返回的数字(英文字母),转成对应的文字进行显示
前言类似于省市区,状态,性别之类的可以枚举出来的变量,一般情况下数据库中存储的是其对应的value值,像省市区联动的话,前端界面中显示的是省市区的名字,但是接口的入参一般是对应的code码;如果界面中需要状态的话,类似于我这种的稿件状态:草稿、待审批等,接口返回的不是草稿这样的文字,而是DRAFT这样的英文标识。那问题就来了,前端如何将后端返回的数字或英文字母,转成对应的文字进行显示呢?枚举类型后端返回的数据中有英文标识,具体标识如下:"status": { "DRAFT": "草稿", "AP原创 2020-06-16 09:49:10 · 12769 阅读 · 2 评论 -
你清楚JS的原型链吗
题记每个函数都有一个prototype(原型)属性,这个属性是一个指针,指向一个对象,这个对象是包含可以由特定类型的所有实例共享的属性和方法。简单理解:prototype就是通过调用构造函数而创建的那个对象实例的原型对象,可以让所有对象实例共享它所包含的属性和方法。function Person() {}Person.prototype.name = "Helen";Person.prototype.age = 23;Person.prototype.job = "Software Engine原创 2020-06-06 20:57:30 · 352 阅读 · 3 评论 -
箭头函数和普通函数的区别,你知道几个呢?
箭头函数是ES6新增的写法,那为什么要增加这样的写法呢?它与普通函数有哪些区别呢?区别一:箭头函数语法更加简洁// 普通函数写法function fn(x) { return function(y) { return x + y; };}// 箭头函数写法let fn = x => y => x + y箭头函数相当于匿名函数,并且简化了函数的定义,像上例代码所示,只包含一个表达式,所以就可以省略{ }和return,但是如果包含多个表达式,是不可以省略{ }.原创 2020-05-16 09:36:58 · 344 阅读 · 1 评论 -
JS由浅入深的一道面试题
前言: 前端面试中,JS是一大热点,下面就跟着小编来看一下一道由浅入深的面试题吧。正文: 请说出下面代码的执行结果:for (var i = 0; i < 5; i++) { setTimeout(function() { console.log(i); }, 1000);}---------------------揭晓答案了-------------------...原创 2020-04-09 21:09:19 · 332 阅读 · 1 评论 -
JS的this指向及改变this指向的方法
写在前面call、apply与bind都可以用来修改this的指向,但是他们之前有什么区别呢?下面我们来举例子说明一下。this指向请说出下面这个函数的输出结果:var o = {hobby: 'abc'}function test(){ console.log(this.hobby);}test()这个题考查的就是this指向的问题,在本题中,test函数是由windo...原创 2020-04-05 21:39:34 · 448 阅读 · 3 评论 -
前端函数防抖和节流
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2020-03-29 14:17:23 · 300 阅读 · 1 评论 -
JS文件中定义json对象,并动态获取key的值添加到json对象中
JS文件中定义json对象:var jsonObj = { 'param1': 22}控制台输出:给json对象添加新的值jsonObj.newParam = 'pre'控制台输出:给json对象添加动态获取到的值var test = ['aad', 'adsf']for (let i = 0; i < test.length; i++) { jsonObj[t...原创 2020-03-01 15:51:00 · 1331 阅读 · 0 评论 -
DOM核心操作
前言 JavaScript主要是由三部分组成:ECMAScript、DOM、BOM,今天我们一起来学习一下JS中DOM的核心操作吧。是什么 DOM即Document Object Model(文档对象模型),可以使用JS来操作HTML。创建元素 方式一:document.write 创建方式:document.write('我是后来的<p>我是更后的</p&...原创 2020-01-12 16:16:30 · 340 阅读 · 0 评论 -
TypeScript基础学习
什么是typescript TypeScript扩展了JavaScript的语法,所以任何现有的JavaScript程序可以运行在在TypeScript环境中。TypeScript是为大型应用的开发而设计,并且可以编译为JavaScript。安装 在终端中输入命令:npm install -g typescript 通过tsc -v可以查看安装的ts的版本。编译 新建t...原创 2019-12-26 21:20:58 · 504 阅读 · 1 评论 -
在json或数组中利用find方法实现根据value值获取key值的过程
前言 在项目开发的过程中有时候会遇到这种情况:预先定义的对象数组或者json对象,后端返回了一个value值,而你需要用的是key值,后端又没有办法返给你key值,这个时候就需要自己根据value值找key值了。find函数find函数用来查找目标元素,找到就返回该元素,找不到返回undefined数组中使用 定义对象数组:option:[ {text:'+',valu...原创 2019-12-02 17:12:47 · 6599 阅读 · 0 评论 -
JavaScript和jQuery常见面试题
前言 javascript和jQuery在前端开发中发挥着巨大的作用,在面试的过程中这也是不可缺少的话题吧!故搜集了一些面试会遇到的问题,与大家共享!JavaScript部分下面代码什么会被打印在控制台上?(function(){ var a = b = 5;})();console.log(b); 上面的代码会打印出5,拆解函数变量赋值过程如下:b = 5;var...原创 2019-02-02 15:19:56 · 5855 阅读 · 12 评论 -
【JS】论元素的绑定和解绑事件
前言 在JS的学习过程中,我们会了解到DOM,了解到元素,那么如何对一个进行绑定事件呢?事件绑定完之后可不可以解绑呢?都有什么方法呢?这都是今天我们要学习的内容。方法 方法一功能函数绑定事件对象.on事件名字 = 事件处理函数解绑事件对象.on事件名字 = null 具体事例: &lt;input type="button" value="绑定事...原创 2019-01-20 16:45:18 · 250 阅读 · 10 评论 -
【JS】基础篇之带你走进JavaScript的函数
1.什么是函数 函数(function)是一段预定义好,并且可以被反复使用的代码块。2.函数的声明 1)普通函数 function 函数名(){ 语句块; } 2)带参函数 function 函数名(参数列表){ //可以由0或多个参数的名称来组成,多个参数的话中间用 , 隔开定义函数时的参数列表,都称为“形参” 语句块; ...原创 2019-01-12 11:05:18 · 156 阅读 · 7 评论 -
【JS】基础篇之带你走进JavaScript的运算符
前言 每一种语言都有相对应的运算符,今天我们来看一下JS中的运算符。宏观把控 先来一张图简单了解一下JS中都有哪些运算符:算术运算符 1.“+”两边的操作数不是number类型的话,做连接操作; 2.除“+”以外的其他算术运算符,如果两边的操作数不是number类型的话,会通过Number()函数,默认进行转化,如果转化不成功,最终的运算结果是NaN。举例:var num1...原创 2019-01-06 16:29:59 · 324 阅读 · 5 评论 -
【JS】基础篇之带你走进JavaScript的数据类型
前言 什么是JS呢?全称是JavaScript,是能够运行在JS解释器中的脚本语言。那知道了什么是JS,那你知道什么是ES吗?如果你了解JS的前世今生,你就知道什么是ES了,ES就是JS,相当于ES是大名,JS是小名。就想给同学起外号,10年之后,只记得他的外号,而忘记他的真名了。现在呢,我们就一起来了解一下JS的数据类型吧。宏观把控 先来一张图简单了解一下js的数据类型都有哪些内容:...原创 2018-12-09 21:27:38 · 268 阅读 · 69 评论