自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 资源 (1)
  • 收藏
  • 关注

原创 同项目混用npm和yarn出现版本自动更新问题

1.前置知识:package.json中^,~的详细说明(1)指定版本:比如"axios": “0.21.0”,表示安装0.21.0的版本;(2)波浪号~指定版本:比如 “core-js”: “~3.6.5”, 表示安装3.6.x的最新版本(不低于3.6.5),但是不安装3.7.x,也就是说安装时不改变大版本号和次要版本号(3)^指定版本:比如 “antd”: “^3.1.4”,,表示安装3.1.4及以上的版本,但是不安装4.0.0,也就是说安装时不改变大版本号。package-lock.json

2022-04-20 13:11:44 4103 2

原创 设备项目部署

下载宝塔1.使用ftp或阿里云的vnc等远程工具连接服务器后输入账号密码登录(我的账户是root,密码刚修改这个)2.yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh安装宝塔,一直回车即可,记录宝塔账号密码和内外网地址3.在阿里云开发8888端口3.1打开安全组配置3.2打开配置规则3.3添加规则后保存

2022-04-12 23:58:21 287

原创 前端VUE面试

前端vue面试

2022-03-09 15:45:15 1261

原创 JS基础面试题

JS基础面试题

2022-03-04 09:12:17 779

原创 前端浏览器及网络面试考点

前端浏览器面试考点

2022-02-25 16:33:41 1751

原创 海康威视球形摄像头激活,web二次开发

海康威视球形摄像头激活,web二次开发

2022-02-25 10:01:36 9281 1

原创 前端算法考点

前端算法考点

2022-02-23 09:13:04 271

原创 javascript 对象知识点整理

javaScript对象知识点整理

2022-02-22 17:13:21 1006 4

原创 nextjs移动端开发总结

移动端rem适配1.让font-size随页面的宽度改变而改变这里使用lib-flexible插件yarn add lib-flexible由于nextjs是服务端渲染,没有window对象这里封装了一个方法来解决这一问题import { useEffect } from 'react'export default function useRem() { const setRem = async () => { await require('lib-flexible')

2021-10-09 14:48:24 2812 5

原创 yarn和npm切换镜像

npm查看当前镜像npm get registry 切换淘宝镜像npm config set registry http://registry.npm.taobao.org/设置为官方镜像npm config set registry https://registry.npmjs.org/yarn查看当前镜像yarn config get registry切换淘宝镜像yarn config set registry http://registry.npm.taobao.org/

2021-08-26 14:55:09 172

原创 力扣 16. 最接近的三数之和 js版

var threeSumClosest = function(nums, target) { let temp; let min; //使用循环排序使数组升序排序,用sort排序也可以 for(let i=0;i<nums.length;i++) { min=nums[i]; let minIndex=i; for(let j=i+1;j<nums.length;j++) { .

2021-08-16 15:30:48 142

原创 力扣第50. Pow(x, n)JS

使用快速幂和递归var myPow = function(x, n) { //当n<0时其结果就是其正数的倒数 return n>=0?quickMul(x,n):1.0/quickMul(x,-n); function quickMul(x,n){ if(n==0){ return 1.0; } //每次快速幂是下取整 let result=quickMul(x,Math.floor(n/2)); //为偶数则结果结果相乘即可

2021-07-19 00:29:16 91

原创 node.js如何发布一个自己的包

包的上传1.登录npm账号(输入账号和密码以及邮箱)npm adduser最后右边的网址需输出该网址才算成功如为淘宝镜像则执行下列语句,更换镜像,再执行上述语句重新登录npm config set registry https://registry.npmjs.org2.上传包npm publish注意:登录的账号必须绑定邮箱,同时该包的名字需未被使用过,否则会上传失败可在npmjs.com中找到包的使用1.把包下载到生成环境npm i 123custom12 --S

2021-07-18 20:45:37 272

原创 node.js 包版本命令详解

并行执行需要npm run runjs串行执行时只需要npm start生产环境就是线上环境,发布到对外环境上,正式提供给客户使用的环境–save或-Snpm i --production 只安装生成环境的配置开发环境开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告。(程序员接到需求后,开始写代码,开发,运行程序,看看程序有没有达到预期的功能;)–dev或-D 开发环境查看包的所有版本cnpm view jquery v

2021-07-18 15:47:32 289

原创 力扣 22. 括号生成 JS

使用了回溯的思想var generateParenthesis = function(n) { const res=new Array(); if(n<=0) { return res; } geneParenthesis("",n,n) function geneParenthesis (s,left,right){ //left和right都为0时表示该结果是有效的括号组合 if(left == 0 && right == 0.

2021-07-18 00:17:25 173

原创 力扣 11. 盛最多水的容器 JS

使用暴力破解发现超时var maxArea = function(height) { let maxV=0; for(let i=0;i<height.length;i++) { for(let j=i+1;j<height.length;j++) { let minHeight=Math.min(height[j],height[i]) let s=minHeight*(j-i); if(.

2021-07-17 01:11:09 154

原创 力扣 14. 最长公共前缀 JS

var longestCommonPrefix = function(strs) { let min =strs[0].length; let result="";//遍历出数组中最短的元素, 并记录其长度 for(let i =1;i<strs.length;i++) { min=Math.min(strs[i].length,min); } var i;// 只需遍历最短元素的长度的字符长度即可 for(i=0;i<min;i++) .

2021-07-11 23:59:58 152

原创 node 实现图片的复制和删除整个目录中的文件

index.jsvar fs = require('fs')function create(){ let readStream = fs.createReadStream("./img/1.jpeg"); for(let i=0;i<10;i++) { let writeStream = fs.createWriteStream("./img1/"+i+".jpeg"); //创建管道 readStream.pipe(writeStream); }}// 使用promi.

2021-07-11 00:30:22 348

原创 力扣 9. 回文数JS

var isPalindrome = function(x) { let arr = new Array(); let i = 0;// 为负数就直接返回false if(x<0) { return false; } //把整数放入一个数组中 while(Math.floor(x/10)>0) { arr[i] = x % 10; x = Math.floor(x / 10); i++; .

2021-07-10 22:55:57 136

原创 vuex示例

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态(意思就是数据),并以相应的规则保证状态以一种可预测的方式发生变化。简单来说,vuex就是用来集中管理组件的数据的。...

2021-07-09 21:45:11 467

原创 力扣7. 整数反转 JS

var reverse = function(x) { let arr = new Array(); let i=0;// 用来判断是为正数 1 还是负数 -1 let bool=1; if(x<0) { bool=-1; x=-x; }// 下取整x/10=0时表示所有位数都去尽 while(Math.floor(x/10)>0) {// 把整数的所有位都放入数组arr中 arr[i]=.

2021-07-08 21:52:54 216

原创 使用vuex和localStorage实现用户保持登录

store中的index.jsimport Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)export default new Vuex.Store({ state: { token:'', }, mutations: { // 用于修改token的值,起到监听的效果 setToken(state, token) { state.token = token; localStorage

2021-06-19 11:50:30 456

原创 存在重复元素2 javaScript

mapvalue indexmap的索引存放的是数组里的值 而map里的值则存放数组的索引var containasNearbyDuplicate = function(nums,k) {//创建一个map数组 const map = new Map(); for(let i=0;i<nums.length;i++) { //判断map中是否有对应的值,并且两个重复的元素之间的距离是否符合条件 if(map.has(nums[i])&&

2021-06-16 14:59:49 37

原创 力扣 134. 加油站 js

var canCompleteCircuit = function(gas, cost) { let sumGas=0; let sumCost=0; for(let i=0;i<gas.length;i++) { sumCost+=cost[i]; sumGas+=gas[i]; } if(sumGas<sumCost) { return -1; } let current.

2021-06-11 14:23:57 113

原创 力扣 125. 验证回文串 js

var isPalindrome = function(s) { //把s中字母都转化成小写 var s1=s.toLowerCase(); //\W表示除字母数字下划线以外的符号 从而后面要跟一个_来包括_ /g表示全部替换 s1=s1.replace(/[\W_]/g,"") let i=0,j=s1.length-1 while(i<=j) { if(s1[i] !== s1[j]) { conso.

2021-06-11 13:52:23 141 1

原创 力扣 123. 买卖股票的最佳时机 III JavaScript

使用一般的动态规划,公式为:max={dp[i][j−1]price[j]−price[z]+dp[i−1][z]max=\begin{cases}dp[i][j-1]\\price[j]-price[z]+dp[i-1][z]\end{cases}max={dp[i][j−1]price[j]−price[z]+dp[i−1][z]​可执行发现其提交出现超时var maxProfit = function(prices) { if(prices.length===0) {

2021-06-10 17:29:57 109 1

原创 力扣 122. 买卖股票的最佳时机 II JavaScript方法

var maxProfit = function(prices) { //判断数组是否为空 if(prices.length===0) { return 0; } //设置低谷值的存放变量 let minPrice=prices[0]; let sum=0; for(let i=1;i<prices.length;i++) { //当price[i-1]的值大于pricep[i]则说明i-1为一个谷峰,这时候.

2021-06-10 15:15:43 132 1

原创 力扣 121. 买卖股票的最佳时机 js方法

该题可以看出当买入时间确定,其左边股票价格最小值就是其最大的利润var maxProfit = function(prices) { //该变量记录最低的价格 let minPrice=prices[0]; //记录最大的利润 let maxProfit=0; if(prices.length==0) { return 0; } for(let i=0;i<prices.length;i++) { i.

2021-06-09 17:34:11 186

原创 力扣 92. 反转链表 II js方法

本题需要先了解反转链表1中如何反转链表区别就是要再开辟两个指针。var reverseBetween = function(head, left, right) { let pre = null; let current = head; let next = head; //先让指针跳到要反转链表部分上 for(let i=1;i<left;i++) { pre=current; current=current.ne.

2021-06-09 17:23:11 195

原创 深入解析什么是BFC

1.BFC是什么?Formatting context 是 W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。最常见的 Formatting context 有 Block fomatting context (简称BFC)和 Inline formatting context (简称IFC)。Block formatting context直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-l

2021-06-08 22:22:28 85

原创 CSS水平垂直居中(多种方法解决)

1.flex该方法时兼容手机端居中的首选<html> <head> <style> .box{ width: 500px; height: 500px; border: 1px solid red; display: flex; /* 设置弹性布局的方向 */

2021-06-08 21:33:53 162

原创 前后端交互技术AJAX、Axios、async和await

Ajax全称Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)最早出现的发送后端请求技术,隶属于原始js中,核心使用XMLHttpRequest对象,多个请求之间如果有先后关系的话,就会出现回调地狱。status:1**:请求收到,继续处理2**:操作成功收到,分析、接受3**:完成此请求必须进一步处理4**:请求包含一个错误语法或不能完成5**:服务器执行一个完全有效请求失败100——客户必须继续发出请求101——客户要求服务器根

2021-06-08 20:34:02 655

原创 力扣 206. 反转链表

var reverseList = function(head) { let pre=null; let next=head; let current=head; while(next!==null) { //先把current的下一个节点存放在next中 next=current.next; current.next=pre; pre=current; current=next; .

2021-06-08 15:59:58 39

原创 力扣 83. 删除排序链表中的重复元素 js

var deleteDuplicates = function(head) { let current=head; while(current!=null&&current.next!=null) { if(current.next.val === current.val) { current.next=current.next.next; } else{ current=current..

2021-06-08 13:00:51 91

原创 力扣 73. 矩阵置零 js

var setZeroes = function(matrix) { let firstROW=false; let firstCol=false; //1.判断第一行是否有零有零则标记 for(let i=0;i<matrix[0].length;i++) { if(matrix[0][i]==0) { firstROW=true; } } //2.判断第一列是否有零有零则标记 .

2021-06-08 00:25:46 116

原创 力扣 70. 爬楼梯

后面的台阶走的方法数是前面两个台阶方法数量的综合即m[i]=m[i-1]+m[i-2]/** * @param {number} n * @return {number} */var climbStairs = function(n) { const memo=[]; memo[0]=1; memo[1]=2; for(let i=2;i<n;i++) { memo[i]=memo[i-1]+memo[i-2]; } .

2021-06-07 23:31:19 38

原创 力扣 66. 加一 js

1.循环数组如遇到数组值不为9则直接加1跳出循环2.遇9则变为0,继续循环3.循环结束 如还没返回就说明其全为9则在最前加1即可var plusOne = function(digits) { for(let i=digits.length-1;i>=0;i--) { if(digits[i]!==9) { digits[i]++; return digits; } else{ digit.

2021-06-06 11:05:24 225

原创 力扣 62. 不同路径

二维数组动态规划var uniquePaths = function(m, n) { //二维数组构建 var arr=[]; for(let i=0;i<=m-1;i++) { arr.push([]); } //给第一列赋值为1 for(let row=0;row<=m-1;row++) { arr[row][0]=1; } //给第一行赋值为1 for(let col=0;col<=n-1;col++) .

2021-06-06 11:02:28 41

原创 力扣 56. 合并区间

var merge = function(intervals) { //把每个数组按每个数组的起始位由小到大排序 intervals.sort(function(a,b){ return a[0]===b[0]?(a[1]-b[1]):(a[0]-b[0]); }) let current=[]; const result=[]; current=intervals[0]; //这里cureent理解为前面的数组,interval理解为其后面的数组 for(let.

2021-06-05 14:38:43 126

原创 力扣 55. 跳跃游戏 js

第一种方法动态规划 从后向前var canJump = function(nums) { //生成长度为输入数组长度并且值都为0的数组 const dp=Array(nums.length).fill(0); dp[nums.length-1]=1; for(let i=nums.length-2;i>=0;i--) { //这里是为了防止跳跃越界的情况 var maxlength=Math.min(nums.length-i-1,nums[i])

2021-06-05 14:35:20 168

汉诺塔动画演示(html+js+css 鼠标拖拽以及点击按钮练习功能+手机端适配)

该网页可以实现汉诺塔最优算法的演示,以及手动拖拽和点击按钮来做到练习解决汉诺塔问题的功能,同时点击按钮功能适配移动端。

2021-06-06

空空如也

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

TA关注的人

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