
JavaScript
文章平均质量分 57
JavaScript遇到问题或者面试题
请叫我小一
这个作者很懒,什么都没留下…
展开
-
面试官:你懂Axios吗?我:给你手撸一个
Axios 是一个非常流行的前端 HTTP 请求库,它可以方便地发起 HTTP 请求并处理响应结果。Axios 不仅支持基本的 GET、POST 等请求方式,还提供了丰富的配置项和拦截器机制,使得开发者可以对请求和响应进行全方位的控制和定制。在本文中,我们将通过手写 Axios 的方式来学习请求拦截器和响应拦截器的实现。具体来说,我们将会实现一个基于 XMLHttpRequest 对象的 Axios 类,并在其中添加请求拦截器和响应拦截器。原创 2023-03-09 08:30:00 · 635 阅读 · 1 评论 -
大厂面试必备 - async/await 详解
async/await语法糖可以让异步代码变得更清晰,可读性更高,所以快快卷起来吧。Generator有兴趣的可以了解一下。原创 2022-09-15 18:02:21 · 557 阅读 · 0 评论 -
js 删除两个数组中id相同的对象
js 删除两个数组中id相同的对象原创 2022-09-06 14:26:59 · 797 阅读 · 0 评论 -
【原生】js怎么判断数组是否包含另一个数组
js怎么判断数组是否包含另一个数组原创 2022-08-23 18:31:33 · 389 阅读 · 0 评论 -
详解JavaScript的空值合并运算符
今年ECMAScript 2020(ES2020)将发布!自 2015 年 ECMAScript 2015(ES6)发布以来,我们每年都对 JavaScript 语言进行更新。目录使用 JavaScript 空值合并运算符 使用实例 空值合并运算符与逻辑或(||) 浏览器支持 总结在ES2020中,我们获得了在其他语言中( 如 C# 和 PHP)早已可用的功能:空值合并运算符。我一直喜欢这个名字,因为每当我说这个名字时,都会觉得自己很聪明。空值合并运算符将会遍历列表,并返回第一个不是原创 2022-04-21 13:46:06 · 2197 阅读 · 0 评论 -
浅谈localStorage
localStorage的优势1、localStorage拓展了cookie的4K限制2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的localStorage的局限1、浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日原创 2022-03-14 10:20:57 · 538 阅读 · 0 评论 -
JavaScript 判断数组的方法总结
根据构造函数判断(妈妈)instanceof判断一个实例是否属于某构造函数let arr = []console.log(arr instanceof Array) // true复制代码缺点: instanceof 底层原理是检测构造函数的 prototype 属性是否出现在某个实例的原型链上,如果实例的原型链发生变化,则无法做出正确判断。let arr = []arr.__proto__ = function() {}console.log(arr instanceof原创 2022-03-01 15:22:22 · 252 阅读 · 0 评论 -
前端转义字符
转义字符 表示字符 & amp; & & nbsp; 空格 & lt; < & gt; > & copy; © 注:为避免转义字符被编辑器转义,&符号后增加一个空格符原创 2022-02-24 17:54:32 · 432 阅读 · 0 评论 -
js实现md5加密(支持中文)
function md5(a) { function b(a, b) { return a << b | a >>> 32 - b } function c(a, b) { var c, d, e, f, g; return e = 2147483648 & a, f = 2147483648 & b, c = 1073741824 &am.原创 2022-02-17 11:07:44 · 5107 阅读 · 1 评论 -
JS四种数据类型判断方法
1. typeoftypeof是一个运算符,其有两种使用方式:(1)typeof(表达式);(2)typeof 变量名;返回值是一个字符串,用来说明变量的数据类型;所以可以用此来判断number,string,object,boolean,function,undefined,symbol这七种类型,每种情况返回的内容如下表所示类型 结果 String 'string' Number 'number' Boolean 'boolean' Un...原创 2021-11-22 11:00:26 · 612 阅读 · 0 评论 -
JS常用数组方法和属性
常用属性 Array.length:返回数组的大小 常用方法 Array.pop():删除并返回数组的最后一个元素 Array.push():向数组的结尾添加元素 Array.shift():将元素移除数组 Array.unshift():向数组头部添加元素 Array.join():将数组元素连接起来以构成一个字符串 Array.concat():连接数组 Array.reverse():将数组进行反转 Array.so原创 2021-11-19 10:17:25 · 824 阅读 · 3 评论 -
深度解析闭包
闭包是一个可以访问外部作用域中变量的内部函数。这些被引用的变量直到闭包被销毁时才会被销毁。在本质上是函数内部和函数外部链接的桥梁。不会触发垃圾回收机制。闭包属于一种特殊的作用域,称为静态作用域。它的定义可以理解为: 父函数被销毁的情况下,返回出的子函数的[[scope]]中仍然保留着父级的单变量对象和作用域链,因此可以继续访问到父级的变量对象,这样的函数称为闭包。 闭包会产生一个很经典的问题: 多个子函数的[[scope]]都是同时指向父级,是完全共享的。因此当父级的变 量对象被修改时,所有子函数都受到原创 2021-05-31 16:09:11 · 452 阅读 · 0 评论 -
深度解析JS作用域链
作用域链当查找变量的时候,会先从当前上下文的变量对象中查找,如果没有找到,就会从父级(词法层面上的父级)执行上下文的变量对象中查找,一直找到全局上下文的变量对象,也就是全局对象。这样由多个执行上下文的变量对象构成的链表就叫做作用域链。(JavaScript深入之作用域链)(1) 函数作用域 先看一小段代码:var scope="global";function t(){console.log(scope);var scope="local"console.log(sco..原创 2021-05-20 09:52:26 · 172 阅读 · 0 评论 -
关于执行上下文
一、什么是执行上下文?简而言之,执行上下文是评估和执行 JavaScript 代码的环境的抽象概念。每当 Javascript 代码在运行的时候,它都是在执行上下文中运行。二、执行上下文的类型JavaScript 中有包含三种类型。全局执行上下文 — 这是默认或者说基础的上下文,任何不在函数内部的代码都在全局上下文中。它会执行两件事:创建一个全局的 window 对象(浏览器的情况下),并且设置 this 的值等于这个全局对象。一个程序中只会有一个全局执行上下文。 函数执行上下文 — 每当原创 2021-05-19 15:12:39 · 943 阅读 · 0 评论 -
js中常见的设计模式
写在前面在 JavaScript 中虽然 Object 构造函数或对象字面量都可以用来创建单个对象,但是这些方法都有一个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码。为了解决这些问题,人们提出了很多对象创建的解决办法,下面是我对 JavaScript 对象创建的一些理解和总结。工厂模式工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽离了创建对象的具体过程。考虑到在 ECMAScript 中无法创建类,开发人员发明以一种函数,用函数来封装以特定接口创建对象的细节。如..转载 2020-10-23 15:16:28 · 128 阅读 · 0 评论 -
深究JavaScript作用域(链)知识点和闭包
前端料包」深究JavaScript作用域(链)知识点和闭包人生不能像做菜,把所有的料都准备好了才下锅。前言在学习作用域和作用域链知识的时候,我一度都是处于犯迷糊的边缘,直到前两天,有人在群里聊了有关作用域的面试题,我当时闭上眼睛心想要是问到我该怎么回答。这两天查了资料,做了几道面试题,觉得要输出一点我自己的理解,本文将通过几个简单的代码片段和面试题对JavaScript作用域和闭包的相关知识一探究竟。文中的表述如有不对,欢迎指正~ 如觉得还行请点亮左侧的????????1转载 2020-10-23 11:42:51 · 280 阅读 · 0 评论 -
js的原型和原型链
构造函数创建对象:function Person() {}var person = new Person();person.name = 'Kevin';console.log(person.name) // KevinPerson 就是一个构造函数,我们使用 new 创建了一个实例对象 personprototype每个函数都有一个 prototype 属性每一个JavaScript对象(null除外)在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型,每.原创 2020-10-22 11:56:42 · 291 阅读 · 1 评论 -
JS 类型隐式转换
1、js数据类型js中有7种数据类型,可以分为两类:原始类型、对象类型:基础类型(原始值):Undefined、 Null、 String、 Number、 Boolean、 Symbol (es6新出的,本文不讨论这种类型)复杂类型(对象值):object2、三种隐式转换类型js中一个难点就是js隐形转换,因为js在一些操作符下其类型会做一些变化,所以js灵活,同时造成易出错,并且难以理解。涉及隐式转换最多的两个运算符 + 和 ==。+运算符即可数字相加,也可以字符串相加转载 2020-10-09 17:47:15 · 1039 阅读 · 1 评论 -
JavaScript的深浅拷贝
先来个总结(内存地址没变是浅拷贝,内存地址变了是深拷贝)我们先来看一个demo// 我们先申明一个变量str1,// 然后把变量str1负值(拷贝)给变量str2 // 最后对变量str2进行修改操作var str1 = 'shen'var str2 = str1str2 += 'zhiyong'console.log('str1:', str1) //shenconsole.log('str2:', str2) //shenzhiyong我们申明一转载 2020-08-25 17:02:32 · 158 阅读 · 0 评论 -
闭包详解
请用自己的话简述什么是「闭包」。(函数以及函数能访问到私有变量,可以访问其他函数内变量的函数) 「闭包」的作用是什么。(间接访问一个变量)---------------------------------------首先来简述什么是闭包假设上面三行代码在一个立即执行函数中(为简明起见,我就不写立即执行函数了,影响读者理解)。评论里没看完就说我写得有问题的,请看清楚哦:上面三行代码在一个立即执行函数中。三行代码中,有一个局部变量 local,有一个函数 foo,foo 里.转载 2020-08-25 16:57:34 · 233 阅读 · 0 评论