自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 收藏
  • 关注

原创 个人总结:回文字符串判断的三种方式总结

/* 方法1: * 判断是不是回文字符串 * 方法一思路旋转之后看两个字符串是否相等 */function hw(str){ let newStr=''; let len=str.length-1; for(let i=len;i>=0;i--){ newStr+=str[i]; } console.log(str,newStr,str==newStr); return str==newStr...

2020-12-19 09:08:59 1296 1

原创 webpack压缩大图片之项目资源优化

webpack打包时,会根据webpack.config.js中url-loader中设置的limit大小来对图片进行处理,小于limit的图片转化成base64格式,其余的不做操作。对于比较大的图片我们可以用image-webpack-loader来压缩图片。在webpack.config.js中配置:image-webpack-loader 可能npm 下载不下来 改成淘宝镜像$ npm install -g cnpm --registry=https://registry....

2020-11-16 13:43:23 490

原创 webpack学习记录

下载webpack:npm install webpack webpack -D终端使用:webpack ./src/entry.js -o ./dist/bulid.js --mode=development 开发环境开发 webpack ./src/entry.js -o ./dist/bulid.js --mode=production 生产环境开发...

2020-11-14 23:24:34 136

原创 普通函数和箭头函数的区别

详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深…普通函数和箭头函数的区别:箭头函数的this指向规则:箭头函数没有prototype(原型),所以箭头函数本身没有thislet a = () =>{};console.log(a.prototype); // undefined1 2箭

2020-11-07 16:45:13 249

原创 ts学习-4

ts中的类和类的继承//ts中的类定义class Person{ name:string;//属性 前面省略了public关键字 constructor(name:string){ this.name=name; } getName():void{ console.log("类中的获取name的值:"+this.name) } setName(name:string):void{ this.nam..

2020-11-05 09:08:30 337

原创 前端cookie、localStorage、sessionStorage比较

2020-11-04 18:29:39 78

原创 ts学习-3

/* typescript中的数据类型typescript中为了代码的书写规范 有利于维护增加了类型校验布尔类型(boolean)数字类型(number)字符串类型(string)数组类型(array)元组类型(tuple枚举类型(enum)任意类型(any)null和undefinedvoid 类型never 类型*//* 布尔类型*/var flag:boolean=true;flag=false;/* 数字类型 number*/var a:number=1.

2020-11-03 23:00:31 494

原创 ts学习笔记-2

/* typescript中的数据类型typescript中为了代码的书写规范 有利于维护增加了类型校验布尔类型(boolean)数字类型(number)字符串类型(string)数组类型(array)元组类型(tuple枚举类型(enum)任意类型(any)null和undefinedvoid 类型never 类型*//* 布尔类型*/var flag:boolean=true;flag=false;/* 数字类型 number*/var a:number=1.

2020-11-01 16:27:20 208

原创 typeScript开始学习记录的笔记

第一章安装typeScript:npm install -g typescript检查是否安装成功:tsc -v //查看本版号使用:新建文件index.ts里面内容是:varstr:string='sss';如何生成index.js文件呢在对应的终端 使用命令:tsc index.ts 就会生成对应的index.js文件D://typeScript tsc index.tsts文件开发工具其实有更好的方式去执行开发和编译js文件的配置...

2020-10-31 23:18:18 341

原创 js数组扁平化的方法(flat)汇总

js数组扁平化的方法(flat)方法的总结:/** js数组扁平化的方法(flat)方法的总结*//**方法1:*/let arr=[1,[2,34,[4,5]]];let str=JSON.stringify(arr);// [1,[2,34,[4,5]]]// 方式1:flat()console.log(arr.flat(Infinity));//[1, 2, 34, 4, 5]// 方式2:字符串替换拼接序列化str=str.replace(/(\[|\])/g,''...

2020-10-29 19:46:29 1086

原创 高阶函数的一个特殊用法-函数柯里化

第一次看到柯里化这个词的时候,还是在看一篇算法相关的博客提到把函数柯里化,那时一看这个词就感觉很高端,实际上当你了解了后才发现其实就是高阶函数的一个特殊用法。果然是不管作用怎么样都要有个高端的名字才有用。首先看看柯里化到底是什么?维基百科上说道:柯里化,英语:Currying(果然是满满的英译中的既视感),是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。看这个解释有一点抽象,我们就拿被做了无数次示例的add函数

2020-10-29 16:40:03 112

原创 GET和POST两种基本请求方法的区别(面试用)

get参数通过url传递,post放在request body中。 get请求在url中传递的参数是有长度限制的,而post没有。 get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感信息。 get请求只能进行url编码,而post支持多种编码方式 get请求会浏览器主动cache,而post支持多种编码方式。 get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留。 GET和...

2020-10-21 19:46:33 924

原创 nginx window使用

1.下载之后配置杀死nginx进程:taskkill /im nginx.exe /f启动:start nginx或者nginx.exe.启动nginx有很多种方法启动nginx(1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过(2)打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe 或者 start nginx ,回车即可...

2020-10-19 19:46:32 250 1

原创 js编程实现功能

1.编写一个JavsScript函数 fn,该函数有一个参数 n(数字类型, n <=31),其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。(可以使用伪代码) function fn(n,min,max){ //n最大是31 if(n>31){ n=31; } let allArr=[];//区间内的所有整数..

2020-10-16 14:00:44 513

原创 view-name

1.不使用原有的数组方法遍历数组 :递归 定时器 计时器2.生命周期除了八种之外的 keep-alive中的active deactive3.函数柯里化

2020-10-14 19:56:15 457

原创 JavaScript之冒泡排序

我们去大厂面试前端的时候,最容易被问及的一个内容就是排序,而其中,冒泡排序作为最基础的排序算法,很多时候是被要求进行手写代码的,面试官通过对手写代码的考察,可以看出求职者的算法基础功底、JavaScript语言功底以及在开发时,对变量的语义化水平。下面,将对冒泡排序的原理进行讲解。01冒泡排序原理假设数组中有n个数,比较相邻两个数的大小,若前者大于后者,则两数交换位置。这样,第一轮结束的时候,就可以选出最大的一个数放在最后面,那么,经过n-1轮之后,所有的数就完成了排序。02代码演示

2020-10-12 20:03:03 245

原创 数组方法汇总js

1.concat定义和用法concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。语法arrayObject.concat(arrayX,arrayX,......,arrayX)参数 描述 arrayX 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。 返回值返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat().

2020-10-12 10:11:57 294 2

原创 js中原型和原型链

1.创建一个没有原型的对象:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .e.

2020-09-20 10:51:02 195

原创 JSON序列化与自定义toJSON

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .error{ bor.

2020-09-16 22:16:46 386

原创 使用代理完成自定义验证组件

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .error{ bor.

2020-09-16 21:47:32 128

原创 使用new Proxy实现vue数据双向绑定原理

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body> <input .

2020-09-15 21:54:15 1394

原创 js对象的一些用法

1.使用展示语法完成对象合并属性相同后面覆盖前面的属性: //使用展示语法完成对象合并 属性相同后面覆盖前面的属性 let obj={ name:'yang', height:200 } let nameObj={ name:'zhang' } let newObj={...obj,...nameObj}; console.log(newObj)/* {name: "zhang", height: 200} */...

2020-09-06 19:30:50 242

原创 call和apply区别/bind的使用

构造函数://构造函数function User(name){ this.name=name}// let obj=new user('yang');// console.log(obj);let UnameObj={ age:12, height:150}User.call(UnameObj,'赵四_刘能——多行不义必自毙');User.apply(UnameObj,['赵四_刘能——多行不义必自毙']);console.log(UnameObj);/* {age: 1

2020-09-05 22:30:25 150

原创 2020-09-01- ES6 Map对象使用

1.基本的操作:增删改查 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body> </bo.

2020-09-01 23:00:14 139

原创 es6 WeakSet使用

//new WeakSet()声明 let weakObj=new WeakSet(); let obj={a:'jspang',b:'技术胖'} let obj1=obj; //添加元素 不允许重复 weakObj.add(obj); weakObj.add(obj1); console.log(weakObj);// console.log(weakObj.size);// /* WeakSet {{…}} [[Entries]] 0: value: .

2020-08-26 15:17:47 331

原创 ES6new Set 使用方法

多了不说少了不唠代码说话:<!DOCTYPE html><html><head> <title></title></head><body> </body></html><script type="text/javascript"> //定义数据 let setData=new Set([1,2,"yang"]); console.log(setData)

2020-08-25 19:56:16 5032 2

原创 Symbol数据类型学习

1.基本的使用:<!DOCTYPE html><html><head> <title></title></head><body> </body></html><script type="text/javascript"> //for in 变量不到 起到隐藏属性的作用 let age=Symbol('年龄'); let age1=Symbol('年龄');

2020-08-23 22:51:01 266 1

原创 数组中reduce的使用方法

1.出现元素的次数:<!DOCTYPE html><html><head> <title></title></head><body> </body></html><script type="text/javascript"> //出现元素的次数function arrCount(arr,val){ let count=arr.reduce((pre,cu.

2020-08-23 18:08:09 384

原创 数组方法总结js

清空数组:let arr=[1,3,4];let arr1=arr;arr.length=0;console.log(arr,arr1);//[] []

2020-08-20 22:40:08 123

原创 数组的移动

<!DOCTYPE html><html><head> <title></title></head><body> </body></html><script type="text/javascript"> function move(arr,from,to){ let newArr=[...arr]; let item=newArr.splic.

2020-08-20 22:24:12 217

原创 获取当前时间戳汇总

获取当前时间戳:<!DOCTYPE html><html><head> <title></title></head><body> </body></html><script type="text/javascript"> //获取当前时间戳 let a=new Date().getTime(); let b=new Date()*1; let c=D.

2020-08-20 21:43:50 535

原创 随机获取数组元素/随机点名操作demo函数

1.随机点名操作<!DOCTYPE html><html><head> <title></title></head><body></body></html><script type="text/javascript"> function arrayRandomVal(arr,start=1,end){ end =end?end:arr.length; .

2020-08-19 10:41:25 212

原创 while循环 boolearn demo

<!DOCTYPE html><html><head> <title></title></head><body> </body></html><script type="text/javascript"> while(true){ let str=prompt("后盾人是什么时候成立的"); if(!str) continue console.l.

2020-08-17 22:47:27 260

原创 电话号码模糊处理 隐藏后四位

<!DOCTYPE html><html><head> <title></title></head><body></body></html><script type="text/javascript"> function phone(num,len){ return String(num).slice(0,len*-1)+"*".repeat(4) }.

2020-08-17 21:51:57 706

原创 js中字符串常用的方法

字符串截取:1.slice(start,end)//参数可以负数 同为正start>end 不交换位置 得到空串2.substr(start,length)//第一个参数可以负数3.substring(start,end)//end<start 交换位置 两个参数负数转换为0处理<!DOCTYPE html><html><head> <title></title></head><body&.

2020-08-16 22:50:43 519 1

原创 原生js已经支持base64加密及解密对用户id加密

原生js已经支持base64加密及解密加密 window.btoa(decodeData) 解密window.atob(encodeData)

2020-08-15 15:05:35 412

原创 vue 解决less中calc无法正确计算的方法

在表达式前加上“~”字符即可正确解析实例:style标签 scoped要去掉负责认为是css文件 加~无效div{ height: calc(~"100%-100px")}

2020-08-14 10:32:10 818

原创 js判断IE浏览器的版本

js判断IE浏览器的版本由于项目不支持低版本IE,为了更好的用户体验,对使用低版本IE访问项目的用户,我们需要给他们展示一个温馨提示的页面。这就需要判断用户使用的IE版本,从网上借鉴了一个方法(原文可见参考文献):// 获取IE版本function IEVersion() { // 取得浏览器的userAgent字符串 var userAgent = navigator.userAgent; // 判断是否为小于IE11的浏览器 var isLessIE11 =

2020-08-11 19:31:55 298

原创 你应该学习的 JS 异步编程与Promise,还有async与await实例详解

从今天开始我就把自己学习异步编程 promise /async/await的学习做个总结:有新的关于这方面的知识我就会放到里面 博客会不断的更新1.首先看下例子:通过文件加载了解任务排序eg:<!DOCTYPE html><html><head> <meta charset="utf-8"> <title></title></head><body></body><

2020-08-09 08:10:35 559

原创 vue项目测试环境生产环境切换api接口前缀

复制build.js到test.js文件 :1:修改如下process.env.NODE_ENV='production'改成process.env.NODE_ENV='testing'test.js文件修改之后:'use strict'require('./check-versions')()process.env.NODE_ENV = 'testing'const ora = require('ora')const rm = require('rimraf')...

2020-08-05 17:18:11 1803

空空如也

空空如也

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

TA关注的人

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