js
star@星空
相逢一醉是前缘,风雨散,飘然何处!
展开
-
js字符串面试题(出现次数最多的字符,指定字符出现了几次)
1. 统计一个字符串中某个字符出现的次数? function sum(str, a) { let b = str.indexOf(a); var num = 0; while (b !== -1) { console.log(b); num++; b = str.indexOf(a, b + 1) } return num; }2. 统计一个字符串中,出现次数最多的字符,出现了多少次? // 统计一个字符,中出现原创 2021-01-21 16:03:05 · 3304 阅读 · 2 评论 -
day02 - 首页布局 + 用户管理
今日目标实现后台首页的基本布局实现左侧菜单栏实现用户列表展示实现添加用户1.后台首页基本布局打开Home.vue组件,进行布局:<el-container class="home-container"> <!-- 头部区域 --> <el-header>Header<el-button type="info" @click="logout"> 退出 </el-button></el-header> <原创 2020-11-26 14:59:20 · 1344 阅读 · 0 评论 -
es6中的class与继承
前言:传统的javascript中只有对象,没有类的概念。它是基于原型的面向对象语言。原型对象特点就是将自身的属性共享给新对象。这样的写法相对于其它传统面向对象语言来讲,独树一帜也可以说难以接受!ES5中的类ES5中如果要生成一个对象实例,需要先定义一个构造函数,然后通过new操作符来完成。示例://构造函数名大写(非强制,但这么写有助于区分构造函数和普通函数)function Person(name,age) { this.name = name; this.age=age原创 2020-11-23 18:11:30 · 3138 阅读 · 0 评论 -
es6解构赋值
定义:解构赋值语法是一种 Javascript 表达式。通过解构赋值, 可以将属性/值从对象/数组中取出,赋值给其他变量。语法://数组结构var a, b, rest;[a, b] = [10, 20];console.log(a); // 10console.log(b); // 20//对象解构({ a, b } = { a: 10, b: 20 });console.log(a); // 10console.log(b); // 20// ...rest 解构数组[原创 2020-11-13 16:03:29 · 4524 阅读 · 0 评论 -
promise对axios二次封装、promise封装ajax、promise封装wx.request、promise封装uni.reqest
在学习了promisse的基本知识后,下一步就是promise如何使用呢?根据老湿从业8年的经验。将promise在项目中的使用总结如下几项:1. 使用promise对axios进行二次封装axios本身就是使用promise封装的http库,为什么还要对它进行二次封装呢?在一个项目中我们肯定要使用很多接口,每个接口主要是.get()或者.post()请求,所以我们就要自己手动封装一个全局的Axios网络模块,这样的话就既方便也会使代码量不那么冗余。步骤1.给axios设置请求拦截,响应拦截。//原创 2020-11-09 11:07:43 · 3768 阅读 · 5 评论 -
什么是JavaScript 严格模式
JavaScript 严格模式原创 2020-11-04 21:21:18 · 398 阅读 · 0 评论 -
一文彻底搞懂js垃圾回收和内存泄露
垃圾回收机制浏览器的 Javascript 具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。其原理是:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。但是这个过程不是实时的,因为其开销比较大并且GC时停止响应其他操作,所以垃圾回收器会按照固定的时间间隔周期性的执行。只有函数内的变量才可能被回收不再使用的变量也就是生命周期结束的变量,当然只可能是局部变量,全局变量的生命周期直至浏览器卸载页面才会结束。局部变原创 2020-11-04 17:31:42 · 5669 阅读 · 3 评论 -
null和undefined区别
相同性:在JavaScript中,null 和 undefined 几乎相等在 if 语句中 null 和 undefined 都会转为false两者用相等运算符比较也是相等console.log(null==undefined); //true 因为两者都默认转换成了falseconsole.log(typeof undefined); //"undefined" console.log(typeof null); //"object" console.log原创 2020-10-26 16:28:40 · 5075 阅读 · 1 评论 -
for···in和for···of的区别
for···in和for···of的区别:(for···in取key,for··of取value)①从遍历数组角度来说,for···in遍历出来的是key(即下标),for···of遍历出来的是value(即数组的值);var arr = [99,88,66,77];for(let i in arr){ console.log(i); //0,1,2,3}for(let i of arr){ consoel.log(i); //99,88,66,77}②从遍历字符串的原创 2020-10-26 16:14:59 · 5951 阅读 · 0 评论 -
封装一个通用的事件绑定函数
通过上节案例来展开案例需要点击每个a,来。弹出他们的内容<div id="div3"> <a href="#">a1</a><br> <a href="#">a2</a><br> <a href="#">a3</a><br> <a href="#">a4</a><br> <button id='btn1原创 2020-10-26 00:14:55 · 1779 阅读 · 0 评论 -
cookie、localStorage、sessionStorage区别
CookieCookie设计初衷是用来和服务器通讯,而不是本地存储,他只是被‘借用’到本地存储。如下图,每次http请求,header都携带cookie;localStorage、sessionStorage与cookie相比:localStorage、sessionStorage不同点:...原创 2020-10-25 23:36:15 · 4474 阅读 · 0 评论 -
事件绑定、事件传播、事件捕获、事件冒泡、自定义事件
DOM事件三种级别DOM0级事件DOM0 级时间分两种,一是直接在标签内直接添加执行语句,二是定义执行函数。<input type="text" id="test"><input type="button" value="button" onclick="alert(document.getElementById('test').value)"><script> document.getElementById('button').onclick原创 2020-10-25 22:19:23 · 3373 阅读 · 2 评论 -
js操作BOM
什么是Bom?Bom是浏览器对象。它提供与浏览器的交互5大属性。有哪些常用的Bom属性呢?navigator(浏览器对象)1. 如何检测浏览器的类型 (ua的问题)?//如何检测是否为Chrome浏览器var ua = navigator.userAgent;console.log(ua);var isChrome =ua.indexOf('Chrome');console.log(isChrome); // true为是,false为不是screen(屏幕对象)screen.w原创 2020-10-24 14:46:50 · 2554 阅读 · 0 评论 -
js操作DOM
DOM 本质:浏览器把拿到的html代码,结构化一个浏览器能识别并且js可操作性的一个模型而已①获取DOM节点 var div1=document.getElementById(‘div1’);//元素 var divList=document.getElementsByTagName(‘div’); //集合 console.log(divList.length) console.log(divList[0]) var containerList=document.getElementsB原创 2020-10-23 18:04:44 · 4392 阅读 · 0 评论 -
JavaScript中let、const、var 的区别
前言在ES5中,声明变量只有var和function两种形式。但是因为var声明的变量会有一定的缺点(内层变量可能覆盖外层变量的问题以及用来计数的循环变量泄露为全局变量,下面会有详细的介绍),ES6提出了使用let和const声明变量,下面就来看看他们之间的区别。1.是否存在变量提升?var声明的变量存在变量提升(将变量提升到当前作用域的顶部)。即变量可以在声明之前调用,值为undefined。let和const不存在变量提升。即它们所声明的变量一定要在声明后使用,否则报Reference原创 2020-07-27 19:45:49 · 5277 阅读 · 0 评论 -
js之继承
前言继承在js中占有非常重要的地位,那么在js中有很多中继承的方式,不过每一种继承方式都有优缺点。下面就列举几种继承的方式。实现继承首先需要一个父类,在js中实际上是没有类的概念,在es6中class虽然很像类,但实际上只是es5上语法糖而已function People(name){ //属性 this.name = name || 'Annie' //实例方法 this.sleep=function(){ console.log(this.name + '正在睡觉')原创 2020-07-26 11:49:25 · 3577 阅读 · 0 评论 -
js的数据类型、堆栈存储、多数据类型计算
js数据类型有哪些JavaScript一共有8种数据类型:7种基本数据类型: Undefined、Null、Boolean、Number、String、Symbol(es6新增,表示独一无二的值) 和 BigInt(es10新增);1种引用数据类型 Object(Object本质上是由一组无序的名值对组成的)。里面包含 function、Array、Date等。JavaScript不支持任何创建自定义类型的机制,而所有值最终都将是上述 8 种数据类型之一。如何存储基本数据类型: 直接存储在栈原创 2020-07-26 09:00:57 · 6702 阅读 · 0 评论 -
函数防抖和函数节流
问题引入问题1: 如果实现了dom拖拽功能,但是在绑定拖拽事件的时候发现每当元素稍微移动一点便触发了大量的回调函数,导致浏览器直接卡死,这个时候怎么办?问题2: 如果给一个按钮绑定了表单提交的post事件,但是用户有些时候在网络情况极差的情况下多次点击按钮造成表单重复提交,如何防止多次提交的发生?为了应对如上场景,便出现了函数防抖和函数节流两个概念,总的来说: 这两个方法是在时间轴上控制函数的执行次数。定义函数防抖 是指在事件被触发 n 秒后再执行回调,如果在这 n 秒内事件又被触发,则重新原创 2020-07-24 19:10:51 · 5421 阅读 · 1 评论 -
一图搞懂javascript中的this与call/apply/bind的6中关系
谈谈你对this、call、apply和bind的理解详情可看另一篇文章JavaScript中的this、call、apply和bind在浏览器里,在全局范围内this 指向window对象;在函数中,this永远指向最后调用他的那个对象;构造函数中,this指向new出来的那个新的对象;call、apply、bind中的this被强绑定在指定的那个对象上;箭头函数中this比较特殊,箭头函数this为父作用域的this,不是调用时的this.要知道前四种方式,都是调用时确定,也就是动态的,而原创 2020-07-22 21:35:23 · 4684 阅读 · 0 评论 -
js数组去重
情境:将数组var arr = [1,1,‘true’,‘true’,true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,‘NaN’, 0, 0, ‘a’, ‘a’,{},{}]中重复的值过滤掉1、 ES6-set使用ES6中的set是最简单的去重方法var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, n原创 2020-07-22 18:19:05 · 5323 阅读 · 3 评论 -
jsonp原理
前端代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X...原创 2020-04-13 21:28:07 · 2850 阅读 · 0 评论 -
es6中的generator函数详解
generator函数1.generator是什么: generator是一个迭代生成器,其返回值为迭代器(lterator),是ES6标准引入的新的数据类型,它借鉴于Python中的generator概念和语法;迭代器协议: 定义了一种标准的方式来产生一个有限或无限序列的值;当一个对象被认为是一个迭代器时,它实现了一个 next() 的方法,next()返回值如下:{ done:tr...原创 2020-04-12 20:53:19 · 5558 阅读 · 0 评论 -
async、await
asayc的用法,它作为一个关键字放到函数前面,这样普通函数就变为了异步函数异步async函数调用,跟普通函数的使用方式一样异步async函数返回一个promise对象async函数配合await关键字使用(阻塞代码往下执行)是异步方法,但是阻塞式的使用场景async主要来处理异步的操作,需求:执行第一步,将执行第一步的结果返回给第二步使用。在ajax中先拿到一个接口的返回数据,...原创 2020-04-12 20:49:42 · 4671 阅读 · 0 评论 -
根据对象的属性值对数组排序
数组对象排序定义数组对象的排序函数数组对象例子:students:[ {name:'baibai',age:32}, {name:'xiaobai',age:30}, {name:'gufan',age:21}, {name:'King',age:45}]排序函数://数组对象方法排序:function sortByKey(array, key) {return...原创 2020-01-08 15:31:24 · 264 阅读 · 0 评论