自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(214)
  • 资源 (4)
  • 收藏
  • 关注

原创 原生DOM与虚拟DOM

原生dom与虚拟dom

2022-06-20 23:27:31 566 1

原创 webpack

vue2.0---webpack的配置一、webpack简介二、安装 Webpack三、创建项目四、OADER一、webpack简介Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。从图中我们可以看出,Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。二、安装 Webpack使用 cnpm 安装 webpack:cnpm install webpack.

2022-03-10 20:39:15 439 1

原创 dependencies和devDependencies的区别

dependencies:项目依赖。在编码阶段和呈现页面阶段都需要的,也就是说,项目依赖即在开发环境中,又在生产环境中。如js框架vue、页面路由vue-router,各种ui框架antd、element-ui、vant等。devDependencies: 开发依赖。仅仅在写代码过程中需要使用,比如css预处理器、vue-cli脚手架、eslint之类。后面部分为–save -dev 的情况会使得下载的插件放在package.json文件的devDpendencies对象里面后面部分为–save...

2022-03-08 18:45:00 16338 3

原创 vue2.0---目录结构

build—打包之后的项目文件config—配置文件,包括端口号等node_modules—依赖包文件src—开发目录文件static—静态资源目录文件.babelrc、.editorconfig、.gitignore、.postcssrc.js—这些是一些配置文件,包括语法配置,git配置等。index.html—首页package.json—项目配置文件README.md—项目说明文件assets—放置一些图片,如logo等components—目录里面放了一个组件文...

2022-03-07 20:24:10 2178

原创 vue2.0---搭建vue的开发环境

vue2.0---搭建vue的开发环境一、NPM 使用介绍测试node是否安装完成cnpm介绍安装cnpm如果检测失败出现:***权限问题Powershell 脚本运行的几种权限:二、命令行工具(cli)--脚手架三、安装vue安装四、创建一个vue项目1. 简单版本创建过程2. vue3.0安装3. 完整版本创建一、NPM 使用介绍NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:(1)允许用户从NPM服务器下载别人编写的第三方包.

2022-03-05 17:59:37 4027

原创 leetcode---加一

题目描述给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]解题方法解题思.

2022-02-25 19:03:39 123 2

原创 leetcode---最后一个单词的长度

题目描述给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = “Hello World”输出:5示例 2:输入:s = " fly me to the moon "输出:4示例 3:输入:s = “luffy is still joyboy”输出:6解题办法解题思路首先从字符串末尾开始向前遍历,主要有两种情况。第一种:从后往前遍历.

2022-02-23 23:48:55 186 2

原创 leetcode---最大子数组和

题目描述给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23解题办法 var maxSubArray = function(num.

2022-02-22 23:01:06 334 2

原创 leetcode---搜索插入位置

题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4示例 4:输入: nums = [1,3,5,6],.

2022-02-21 23:14:06 213 2

原创 leetcode---实现 strStr()

题目描述实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例 1:输入:haystack =.

2022-02-20 23:16:54 348 2

原创 leetcode---移除元素

题目描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?> - 请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对.

2022-02-19 20:30:00 158 2

原创 leetcode---删除有序数组中的重复项

题目描述给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。判题标准.

2022-02-18 18:45:00 129 2

原创 leetcode---有效的括号

题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:false示例 5:输入:s = “{[]}”输出:true解题方法解题思路:.

2022-02-17 18:00:00 364 4

原创 vue2.0介绍以及网页版vue环境搭建

vue2.0介绍以及网页版vue环境搭建一、原生DOM与虚拟DOM二、Vue.js 是什么三、安装vue1、独立版本2. 使用 CDN 方法3、NPM 方法三、网页版vue环境搭建一、原生DOM与虚拟DOM首先,我们需要搞清楚两个概念,什么是原生dom,什么是虚拟dom?传统的开发模式原生JS或JS操作DOM时,浏览器会从构建DOM树开始从头到尾执行一遍流程。在一次操作中,我需要更新10个DOM节点,浏览器收到第一个DOM请求后并不知道还有9次更新操作,因此会马上执行流程,最终执行10次。.

2022-02-16 11:00:00 1283 2

原创 leetcode---最长公共前缀

题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”示例 2:输入:strs = [“dog”,“racecar”,“car”]输出:""解释:输入不存在公共前缀。解题方法 var longestCommonPrefix = function(strs) { if(strs.length===0){ .

2022-02-15 11:15:00 106 3

原创 leetcode---回文数

题目描述给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个回文数。.

2022-02-14 21:03:58 7247 3

原创 leetcode---罗马数字转整数

题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + I.

2022-02-12 23:07:51 97 3

原创 leetcode---js实现整数反转

题目描述给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0解题方法方法一:数学解法 var reverse = functi.

2022-02-10 17:02:19 661 6

原创 leetcode---Z字型变换

题目描述将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入:s.

2022-02-09 18:28:08 190 4

原创 leetcode---js实现最长回文子串

题目描述给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”解决办法—中心扩散法主要可以分成两种情况,一种是回文子串长度为奇数(如aba),另一种是回文子串长度为偶数(如abba),循环遍历字符串,对取到的每个值都假设它可能是中心位来判断。.

2022-02-08 19:40:17 720 4

原创 leetcode---js实现寻找两个正序数组的中位数

题目描述给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 .

2022-02-07 20:11:37 777 4

原创 leetcode---js实现无重复字符的最长子串

题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke”.

2022-02-06 23:12:30 1451 4

原创 leetcode---js实现两数相加

题目描述给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,9].

2022-02-04 23:38:50 940 5

原创 leecode---js实现两数之和

题目描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], tar.

2022-02-03 19:01:53 1131 4

原创 less里面的内置函数

less里面的内置函数一、if()函数二、boolean()函数三、escape()函数四、length()五、extract()函数六、range()函数七、each()函数八、数学函数1. ceil---向上取整2. floor---向下取整3. percentage---取百分比的4. round---四舍五入5. sqrt---开平方6. abs---取绝对值7. min---取最小值8. max---取最大值的九、类型函数1. isnumber() 检测值是否是数字类型2. isstring(.

2022-01-25 23:41:27 2486 4

原创 less基础知识

less基础知识一、概览二、变量三、运算四、混合五、嵌套@规则嵌套和冒泡六、转义七、函数命名空间和访问符八、映射九、导入一、概览Less (Leaner Style Sheets 的缩写) 是一门向后兼容的 CSS 扩展语言。因为 Less 和 CSS 非常像,因此很容易学习。而且 Less 仅对 CSS 语言增加了少许方便的扩展。less在浏览器端使用的时候,借助less.js文件进行编译,编译之后其实就是css文件。引入less文件<link rel="stylesheet/l.

2022-01-24 23:05:10 1143 4

原创 ES6---编程风格

ES6---编程风格一、块级作用域1. let 取代 var2. 全局常量和线程安全二、字符串三、解构赋值四、对象五、数组六、函数七、Map 结构八、Class九、模块一、块级作用域1. let 取代 varES6 提出了两个新的声明变量的命令:let和const。其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。2. 全局常量和线程安全在let和const之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量。const优于let有几个原.

2022-01-24 16:52:37 108 4

原创 ES6---Module 的加载实现

ES6---Module 的加载实现一、浏览器加载加载规则二、ES6 模块与 CommonJS 模块的差异一、浏览器加载HTML 网页中,浏览器通过< script >标签加载 JavaScript 脚本。由于浏览器脚本的默认语言是 JavaScript,因此type="application/javascript"可以省略。默认情况下,浏览器是同步加载 JavaScript 脚本,即渲染引擎遇到< script>标签就会停下来,等到执行完脚本,再继续向下渲染。如果是.

2022-01-24 16:22:22 313 4

原创 ES6---Module 的语法

ES6---Module 的语法一、概述二、export 命令三、import 命令四、模块的整体加载五、export default 命令一、概述JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用.

2022-01-24 10:45:00 327 4

原创 ES6---Class的继承

ES6---Class的继承一、简介二、Object.getPrototypeOf()三、super 关键字四、类的 prototype 属性和__proto__属性五、实例的__ proto __ 属性一、简介Class 可以通过extends关键字实现继承。 class Point{ } class getColor extends Point{ }上面代码定义了一个Color类,该类通过extends关键字,继承了.

2022-01-20 23:42:50 729 4

原创 ES6---Class 的基本语法

ES6---Class 的基本语法一、简介二、不可枚举性三、constructor 方法四、类的实例五、取值函数(getter)和存值函数(setter)六、属性表达式七、Class 表达式八、静态方法九、静态属性十、私有方法和私有属性十一、注意点1. 严格模式2. 不存在提升3. name 属性4. this 的指向一、简介js中,生成实例对象的传统方法是通过构造函数。 //传统类的写法 //直接定义构造函数 function Point(x,y){ .

2022-01-19 23:32:19 408 4

原创 ES6---async函数

ES6---async函数一、基本用法promise异步编程 + async函数async函数多种使用形式(1)函数声明(2)函数表达式(3)对象的方法(4)箭头函数二、async函数返回值三、Promise 对象的状态变化四、await 命令五、错误处理六、async函数使用注意点七、async 函数的实现原理八、按顺序完成异步操作一、基本用法async函数处理异步编程,类似状态机。封装多个promise进行异步编程。async函数就是将 Generator 函数的星号(*)替换成asyn.

2022-01-17 20:00:00 2074 5

原创 ES6---promise源码

function Promise(executor) { let self = this; // 保存成功的值和失败的原因 self.value = undefined; self.reason = undefined; // 专门存成功的回调 self.onResolvedCallbacks = []; // 专门存失败的回调 self.onRejectedCallbac...

2022-01-14 18:51:35 225 3

原创 ES6--块级作用域

ES6--块级作用域一、为什么需要块级作用域?二、ES6 的块级作用域(1)let为js新增了块级作用域(2)ES6 允许块级作用域的任意嵌套(3)内层作用域可以定义外层作用域的同名变量三、块级作用域与函数声明一、为什么需要块级作用域?ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。(1)内层变量可能会覆盖外层变量。 var tmp = new Date(); function f() { console.log(tmp); .

2022-01-14 16:29:55 915 3

原创 ES6--暂时性死区

暂时性死区只要块级作用域内存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。 var tmp = 123; if (true) { tmp = 'abc';//Cannot access 'tmp' before initialization在初始化之前无法访问“tmp” let tmp; } 上述代码存在全局变量tmp,但是块级作用域内let又声明了一个局部变量tmp,导致后者绑定这个块级作用域,所以在let声明变.

2022-01-14 16:29:35 306 3

原创 ES6---Promise对象

ES6---Promise对象一、Promise 的含义Promise对象两个特点二、Promise 基本用法三、用Promise对象实现的 Ajax 操作四、Promise异步加载图片五、Promise.prototype.then()---添加状态改变时的回调函数六、Promise.prototype.catch()---指定发生错误时的回调函数七、Promise.prototype.finally()八、Promise.all()---合并多个 Promise 实例九、Promise.race()-.

2022-01-14 16:25:06 607 3

原创 ES6---Generator函数

ES6---Generator函数一、简介二、yield 表达式三、next 方法的参数四、for...of 循环五、Generator函数异步操作的同步化表达六、Generator.prototype.throw()---函数体外抛出错误七、Generator.prototype.return()---返回给定的值八、next()、throw()、return() 的共同点1. next()是将yield表达式替换成一个值2. throw()是将yield表达式替换成一个throw语句3. return.

2022-01-14 00:01:01 549 4

原创 ES6--顶层对象的属性

顶层对象的属性顶层对象在浏览器环境指的是window对象,在Node中指的是global对象,ES5中,顶层对象的属性与全局变量是等价的。 window.a = 1; console.log(a);//1 a = 2; console.log(window.a);//2 顶层对象的属性赋值与全局变量的赋值,是同一件事。ES6 为了改变这个,一方面规定,为了保持兼容性,var命令和function命令声明的全局变量,依旧是顶层对象的属性;另一方面规定,let命令.

2021-12-24 22:42:04 143 3

原创 ES6---箭头函数

ES6---箭头函数一、基本用法二、箭头函数的写法1. 没有返回值(1)不带参数(2)带参数2. 有返回值3. 对象上的函数es6缩写三、箭头函数可以与变量解构结合使用四、箭头函数简化回调函数五、rest 参数与箭头函数六、计时器里面的箭头函数的使用七、箭头函数使用注意点八、箭头函数不适用场景九、箭头函数嵌套问题一、基本用法特点:保证上下文this指针一致ES6 允许使用“箭头”(=>)定义函数。如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。 var f.

2021-12-24 22:41:48 1230 3

原创 ES6--遍历器(Iterator )

ES6--遍历器(Iterator )一、Iterator(遍历器)的概念二、遍历器的作用三、Iterator 的遍历过程四、自己模拟遍历器接口实现1. 普通实现2. 类部署 Iterator 接口的写法(es6 部署遍历器 class,等价es5 函数)3. 模拟es5 的函数类写法 去部署一个遍历器五、默认 Iterator 接口1. Iterator接口的目的2. 原生具备 Iterator 接口的数据结构如下。例子:数组的Symbol.iterator属性六、部署对象的遍历器接口1. 为什么对.

2021-12-08 13:46:59 1709 4

NB-mall.zip

javaEE项目

2021-07-29

商品放大镜(购物网站进去商品详情页).zip

就是一个商品详情页,点击底下小图出现对应的中图,鼠标进入中图会出现一个层,滑动就可以放大商品的细节

2021-07-29

京东侧边导航(有动态详情页).zip

就是京东的侧边导航,附带动态详情页

2021-07-29

选项卡制作.zip(简单版以及动画版)

使用html、css、js实现简单的选项卡制作(以及动画类的选项卡制作),点击开头的选项卡,就可以跳转对应的页面

2021-07-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除