- 博客(36)
- 收藏
- 关注
原创 【前端js】实现剑指offer|leetcode(三)——栈和队列题目集合
文章目录一、栈1. 用两个栈实现队列(牛客网-剑指offer)2. 链表中倒数第k个结点(牛客网-剑指offer)二、删除链表节点1. 删除链表中重复的结点(牛客网-剑指offer)三、链表排序1. 反转链表(牛客网-剑指offer)2. 合并两个排序的链表(牛客网-剑指offer)3.奇偶链表(leetcode 328. Odd Even Linked List)四、链表的环1. 判断是否有环(...
2019-05-04 12:25:41
516
原创 【js函数与作用域】(一)函数与对象声明重名
看一个例子:// 函数与变量同名var foo = "var";function foo() { return "function";}console.log(foo); //"var"foo();//因为foo不是函数类型,不能被执行//报错foo is not a functionvar foo = "var";会被拆分为变量声明——var foo和变量赋值——foo ...
2019-05-02 21:43:36
443
原创 【js常用polyfill】(二)JSON对象|原生js实现JSON.parse()和JSON.stringify()
文章目录一、完整代码二、解析JSON 是一种语法,用来序列化对象、数组、数值、字符串、布尔值和 null 。它基于 JavaScript 语法JSON对象包含两个方法:用于解析 JavaScript Object Notation (JSON) 的 JSON.parse() 方法,https://developer.mozilla.org/zh-CN/docs/Web/JavaScri...
2019-04-30 17:49:29
1539
原创 【js常用polyfill】(一)模版字符串|利用正则表达式生成一个模版字符串
正则表达式相关博客:【前端js】算法全归纳(三)字符串:最常用的20个正则表达式(附实例详解)正则表达式模版字符串实现一个模版字符串:传入一个数据(对象/基础类型),和一段字符串格式的html模版,含有{{somedata}}/{{somedata.xxx}},替换成值思路✨使用(/\{\{(.+?)\}\}/g+replace全局匹配字符串中{{}}的内容,m是整个内容,s1是括...
2019-04-23 18:58:13
1419
原创 js中的错误监控(一)【promise,async,generator异步+内置错误类型】的错误捕获与上报
文章目录一、错误类型二、错误冒泡三、捕获代码错误1. try…catch语句2. window.onerror事件3.异步代码错误一、错误类型主要分成两类——代码运行错误和资源请求错误代码运行错误运行代码时发生的错误有非常多。每种错误都有相应的错误类型。ECMA-262定义了7种错误类型:1.Error 错误,通用的异常对象。Error是基类型。其它类型继承自它。我们通常使用Er...
2019-04-21 22:30:51
4300
1
原创 【前端js】实现剑指offer|leetcode(五)——链表题目集合
文章目录一、修改链表1. 反转链表一、链表的环1. 判断是否有环一、修改链表1. 反转链表leetcode 206. Reverse Linked Listhttps://leetcode.com/problems/reverse-linked-list/var reverseList = function(head) { if(!head||!head.next){//空链表...
2019-04-15 12:09:53
665
原创 【前端js】实现剑指offer|leetcode(四)——二叉树题目集合
文章目录一、遍历1. 前序遍历二、深度/宽度1. 二叉树的深度一、遍历1. 前序遍历二、深度/宽度1. 二叉树的深度题目:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。思路特殊情况 ,根节点为null,深度为0,return 0递归法,递归法获取左右子树的深度,root的深度是左右子树的深度最大值+1...
2019-04-11 18:24:28
833
原创 【前端样式】css/js常用动画(一)移动动画效果(伪类+transition+ transform+ animation)
文章目录一、常用概念区分二、移动动画实现一、常用概念区分transform(变形)——属性定义元素的形状/位置变化,它的属性值有以下五个:移动translate缩放scale旋转rotate扭曲skew矩阵变形matrix元素translate(移动)——transform的一个属性,定义元素的移动效果translate(x,y)两坐标同时移动,可以使用百分比tr...
2019-04-06 22:15:13
6775
原创 【前端js】算法全归纳(七)运算符:常用运算问题及解决方案
文章目录一、相加1.js小数运算出现多位小数如何解决题目来源于牛客网前端专题:https://www.nowcoder.com/ta/front-end?page=1https://www.nowcoder.com/ta/js-assessment一、相加(结合test方法)一般验证输入是否符合标准,需要加上^$匹配整个字符串1.js小数运算出现多位小数如何解决查了一些...
2019-03-29 11:32:18
449
原创 【前端js】算法全归纳(五)函数:前端函数常用算法
文章目录一、函数作用域1.修改函数的this的指向,并执行这个函数2.修改函数的this的指向,并返回这个函数题目来源于牛客网前端专题:https://www.nowcoder.com/ta/front-end?page=1https://www.nowcoder.com/ta/js-assessment一、函数作用域(结合bind,call,apply方法),手动改变this...
2019-03-26 15:59:29
604
原创 【前端js】算法全归纳(四)对象与class:对象常用操作总结
文章目录一、创建对象1.根据包名,在指定空间中创建对象题目来源于牛客网前端专题:https://www.nowcoder.com/ta/front-end?page=1https://www.nowcoder.com/ta/js-assessment一、创建对象遍历对象+判断对象类型+指针引用嵌套的对象空间1.根据包名,在指定空间中创建对象题目描述根据包名,在指定空间中...
2019-03-26 15:43:04
329
原创 【前端js】算法全归纳(六)DOM:DOM操作算法
文章目录一、DOM节点操作1.dom最小公共父节点查找题目来源于牛客网前端专题:https://www.nowcoder.com/ta/front-end?page=1https://www.nowcoder.com/ta/js-assessment一、DOM节点操作(结合test方法)一般验证输入是否符合标准,需要加上^$匹配整个字符串1.dom最小公共父节点查找题目...
2019-03-26 11:25:20
519
原创 【前端js】算法全归纳(三)字符串:最常用的20个正则表达式(附实例详解)
文章目录一、表单验证用:1.颜色2.用户名3.时间4.日期5.验证密码问题6.不匹配任何东西二、获取匹配/子表达式:1.url2. id3.html标签三、修改原字符串:1.数字千分位2.字符串 trim 去除空格模拟3.将每个单词的首字母转换为大写4.连字符驼峰化5.驼峰转化成连字符一、表单验证用:(结合test方法)1.颜色/rgb\((\d+)\s*,\s*(\d+)\s*,\s*...
2019-03-25 17:03:03
2022
原创 【前端js】算法全归纳(二)字符串:JS正则表达式(实用全归纳)
文章目录正则表达式一、正则表达式的四种操作RegExp 对象方法1. 验证`test`2. 检索匹配和捕获的子表达式`exec() `String 对象的正则方法1. 第一个匹配索引`search() `1. 检索匹配和捕获的子表达式`match() `1. 替换字符`replace() `1. 第一个匹配索引`search() `一、正则表达式字符匹配1. 两种模糊匹配1.1 横向模糊匹配1....
2019-03-25 11:57:14
1166
原创 【前端js】实现剑指offer|leetcode(二)——数组题目集合
数组去重leetcode 26. 删除排序数组中的重复项——对排序数组去重题目:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间...
2019-03-21 14:52:21
452
原创 【前端js】算法全归纳(一)数组:最全数组操作合集
本文主要从应用来讲数组api的一些骚操作,如一行代码扁平化n维数组、数组去重、求数组最大值、数组求和、排序、对象和数组的转化等。1.扁平化n维数组1.终极篇(牛客网不支持)ES10扁平数组的api, n表示维度, n值为 Infinity时维度为无限大。Array.flat(n)[1,[2,3]].flat(2) //[1,2,3][1,[2,3,[4,5]].flat(3) //[...
2019-03-20 22:45:45
884
原创 js实现数据结构(一)实现一个栈类(ES5和ES6两种方式)
文章目录1.ES5方法实现“栈”类2.ES6方法实现“栈”类栈是一种遵从**后进先出(LIFO)**原则的有序集合。新添加的或待删除的元素都保存在栈的 同一端,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。1.ES5方法实现“栈”类我们将创建一个类来表示栈。先声明这个类的构造函数: function Stack() { //各种属性和方法的声明...
2019-03-20 20:55:04
1083
原创 js|比较两个【嵌套对象/数组】是否相等(递归法+json法)
文章目录划重点!不能用==/===来判断对象相等方法一:通过JSON.stringfy(obj)来判断两个对象转后的字符串是否相等方法二:通过遍历+迭代深度比较划重点!不能用==/===来判断对象相等在js 判断相等常见的就是 == (等同)和===(恒等);==, 两边值类型不同的时候,要先进行类型转换,再比较 ;===,不做类型转换,类型不同的一定不等。js中的对象是引用类型,...
2019-03-19 13:11:35
7317
2
原创 js|setTimeOut,Promise面试题集合,详解js事件机制EventLoop
文章目录1.利用setTimeOut,每隔1s循环打印叠加的i**先说为什么是间隔1s后同时输出:**实现间隔1s打印一次为什么是5个5?怎么样打印出0~4?方法一:利用立即执行函数方法二2.使用setTimeout模拟SetInterval效果SetInterval的累计效应3.this指向4.在setTimeout中传入函数1.利用setTimeOut,每隔1s循环打印叠加的i一个经典的题...
2019-03-16 19:19:14
2091
原创 详解Web跨域和同源,超全~(8种解决方式)
跨域和同源文章目录跨域和同源1.javascript的同源策略(Same-Origin Policy)1.1 在同源策略下,浏览器限制的请求:1.2 允许通信的情况:1.3 不允许的情况:2. 跨域问题的解决方案2.1 服务端CORS方法CORS——跨域资源共享"(Cross-origin resource sharing)以一个例子来说明:**优点**2.2 客户端解决方案2.2.1 JSON...
2019-03-14 20:38:45
1852
原创 【前端js】实现剑指offer|leetcode(七)——跳台阶/变态跳台阶/斐波那契数列
斐波那契数列题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39思路建立一个元素,存放斐波那契数列的每一项,从第二项开始遍历到第n项,根据相加规律得到新元素的值,最后return最后一项代码function Fibonacci(n){ let a = [0, 1]; if (n <= 0) { ...
2019-03-13 20:00:33
456
原创 React|记一个state布尔值控制显示出现的奇怪问题
问题描述存放在state里面的message来控制页面状态信息(是否开启)和button内容(开启/关闭)的显示:message的值切换正确,但是message===true恒为false先记录一下源代码,留个坑this.state = { message: false, mail: false, smsVisible: false, ma...
2019-03-12 16:01:58
1440
原创 【前端js】实现剑指offer|leetcode(六)——字符串/数组的排列组合题目合集
leetcode:46. 全排列描述:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]思路特殊情况:数组长度==0时,返回[[]];新建一个空数组存放结果全排列的情况考虑递归的方法,首先固定...
2019-03-10 22:11:45
799
原创 js|将数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组/二维数组去重
new一个Set对象,set方法去重,flat方法扁平化,Infinity规定数组长度的限制sort方法正序排列,最后把对象转化成数组:var arry =[1,25,15,[1,2,15,5],15,25,35,1];var set =new Set(arry.flat(Infinity).sort((a,b)=>(a-b)));var arr= [...set];:c...
2019-03-10 21:38:40
1159
原创 javascript实现剑指offer/leetcode——(一)字符串题目合集
描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = “leetcode”返回 0.s = “loveleetcode”,返回 2.思路特殊情况:字符串为空/字符串没有匹配,返回-1JavaScript中对于字符串的定位有两个方法:indexOf( ) 和 lastIndexOf( )。遍历字符串中的字符,若这两个索引相等,说明...
2019-03-09 21:10:55
276
原创 javascript实现剑指offer——1.二维数组中的查找/74. 搜索二维矩阵
描述:编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]target = 3输出: true思路:使用Arra...
2019-03-09 19:13:25
206
原创 js实现冒泡排序,快速排序,堆排序【解析时间空间复杂度】
冒泡排序(Bubble Sort)冒泡排序它在所有排序算法中最简单。然而, 从运行时间的角度来看,冒泡排序是最差的一个,它的复杂度是O(n2)。冒泡排序比较任何两个相邻的项,如果第一个比第二个大,则交换它们。元素项向上移动至正确的顺序,就好像气泡升至表面一样,冒泡排序因此得名。交换时,我们用一个中间值来存储某一交换项的值。其他排序法也会用到这个方法,因此我 们声明一个方法放置这段交换代码以...
2019-03-09 17:56:20
1854
原创 git已经推送push到gitlab/github代码,如何回退版本——记一次git push -f 后的回滚操作
1. 由git push -f 引发的惨案本来今天是合并一下同事push到了gitlab上的master分支,加上自己改的一些部分以后push覆盖,但是出现了一个问题:error: failed to push some refs to XXX'hint: Updates were rejected because the tip of your current branch is behi...
2019-03-08 21:35:57
6292
原创 js|通过正则表达式获取 多个url 参数(牛客网)
指定参数名称,返回该参数的值 或者 空字符串不指定参数名称,返回全部的参数对象 或者 {}如果存在多个同名参数,则返回数组function getUrlParam(sUrl, sKey) { result = {};//用来存储参数键值对 sUrl.replace(/\??(\w+)=(\w+)&?/g, function(str, key, value) { if...
2019-03-05 18:06:13
2720
原创 【前端js】一分钟掌握undefined,not defined,null和NaN的区别
相同点:都是“假值”,布尔值会转成false;都属于数据类型中没有方法和属性的;都只有一个值(区分nan)不同点:1.含义不同:undefined是window的一个对象,表示一个变量已声明但是未定义,变量不在作用域范围内;不是关键字null表示一个空对象,是一个关键字2.typeof不同:undefined返回undefined;null返回object对象。3.转化成数字不...
2019-03-02 17:53:55
2188
原创 封装函数 f,使 f 的 this 指向指定的对象
考虑兼容性对bind进行了判断,ECMAScript 5 还定义了一个方法:bind(),支持的浏览器不多apply之所以要放在一个函数里面是因为bind是返回一个函数表达式,而apply方法是立即执行函数,所以需要把apply放在一个函数里面,return了以后不会立即执行,到调用的时候再立即执行。function bindThis(f, oTarget) { if (f.bind)...
2019-02-28 23:07:47
466
原创 javascript|react中使用moment.js格式化时间/日期
Moment.js 是一个JavaScript 日期处理类库,可以用在node.js和浏览器中。node.js下安装npm install moment在react文件里引入 //import导入 import moment from "moment"; //或者是require var moment = require('moment'); 获取当前时间...
2019-02-28 16:59:18
1994
原创 JavaScript|数组的split()方法详解,如何用正则表达式去除URL空串
定义和用法split() 方法用于把一个***字符串***分割成***字符串数组***。语法stringObject.split(separator,howmany)参数描述separator:必需,字符串/正则表达式howmany可选。该参数可指定返回的数组的最大长度。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。...
2019-02-28 14:11:53
3179
原创 百度前端学院:第十六天,开始感受JS的乐趣【计算器,简历代码】
IEF|零基础学院|16天:javascript【1】@(IEF笔记)[javascript, IEF] ief课程:第十六天,开始感受JS的乐趣1. 课程目标从今天开始,我们要开始学习在Web开发中使用 JavaScript/ECMAScript 来实现各种各样的交互逻辑及数据处理,今天的目标是初步了解 JavaScript/ECMAScript 是什么,开始学习基本的语法...
2018-07-16 21:42:23
802
原创 前端|mooc课程笔记|H5和css3编写个人扁平风博客
网页布局IMOOC课程笔记之_ HTML5和CSS3扁平化风格博客简介:本课程通过CSS3扁平化风格博客的实例详细讲解,让大家更容易理解常规网页的组成部分,灵活的使用不同部分WEB组件,理解它的构成思想,以及网页灵活的布局和设计。我们也可以由宏观到微观去掌握整体的布局。## 第一步 模块分析 写网页之前先进行模块分析,列出框架图 .png) ## 第二步 重置样式[CSS ...
2018-05-10 17:09:42
409
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅