- 博客(55)
- 收藏
- 关注
原创 短信拨测元服务的隐私政策
为了给您提供更准确、更有个性化的服务,本软件目前不会使用和披露您的个人信息。本隐私权政策属于本软件服务使用协议不可分割的一部分。(a) 如果我们决定更改隐私政策,我们将在网站上以及我们认为合适的地方公布本政策中的这些更改,以便您了解我们如何收集和使用您的个人信息,谁可以访问您的个人信息,以及我们将在什么情况下披露您的个人信息。(b) 在您使用本应用网络服务,本应用自动接收并记录您的设备信息,包括但不限于您的IP地址、浏览器的类型、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据;
2024-01-26 09:41:00
235
原创 【JS工具书】记录JS的高级用法
第二个参数replacer可以传函数过滤,if判断返回undefined,但是如foo是数组会用null代替过滤位。第二个参数replacer也可以作为数组,直接过滤foo的属性。
2022-12-02 16:37:13
375
1
原创 【源码debug】以 react antd 为例,使用 sourceMap 的正确姿势
参考:https://juejin.cn/post/7158430758070140942。
2022-10-28 16:04:45
610
原创 【ThreeJs】the first demo —— Dancing BoxGeometry
the first demo —— Dancing BoxGeometry
2022-09-11 19:41:50
97
原创 项目 api 封装(vue版)
法一http 封装使用 ky 库// utils/ http.jsimport ky from 'ky'const http = {}const LEGACY_URL_REGEXP = /^\/api\//function createRequest(method) { // 创建请求 return async (url, options) => { if (process.env.NODE_ENV !== 'production' && (!url ||
2022-05-04 21:54:07
196
原创 npm 发布 自己编写的库(以大数加法为例,完整流程)
步骤以大数加法为例:创建项目,安装 webpack, webpack-climkdir npm_publish_bigIntcd npm_publish_bigIntnpm init -ycnpm i webpack -Dcnpm i webpack-cli -Dcnpm i terser-webpack-plugin -D编写库的源码// src/index.jsexport default function add (a,b) { let aLen =
2022-05-04 21:00:51
257
原创 【J客时间——C学前端 】笔记
1、利用Promise封装setTimeout function sleep(duration) { return new Promise(function(resolve, reject) { console.log("b"); setTimeout(resolve,duration); }) } console.log("a"); sleep(5000).then(()=>console
2022-05-03 12:43:11
270
原创 三分钟带你走进可视化(对比svg、canvas、webgl)附心形线,粒子效果,三维webgl
复制如下代码到chrome控制台,回车 // svg let body = document.querySelector("body") let svg = document.createElementNS("http://www.w3.org/2000/svg", "svg") body.appendChild(svg) let circle = document.createElementNS("http://www.w3.org/2000/s
2022-03-23 14:04:21
630
原创 前端常用正则表达式
规则/ $/ 结束^ 以 开头\d 数字?可以不存在js用法// test, 返回Boolean/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/.test('#FFF') // true// replace'11#FFF11#FFFFFF'.replace(/#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})/g,'替换后') // '11替换后11替换后'// match, 返回Array`"The rain in SPAIN stays ma
2022-03-12 23:05:16
1106
原创 【webpack基础配置】mode,entry,output,loader,plugins,devServer,优化 optimization,tree shaking
webpack学习简介https://www.webpackjs.com/打包多个文件资源成一个,避免全局变量污染,单个文件中可以用模块规范(esm) import, export安装npm init -ynpm install webpack --devnpm install webpack-clinpm install -D webpack-dev-server // –save-dev 简写 -D配置webpack.config.jsconst path = require('p
2022-03-06 17:56:44
512
原创 前端面试手写题
拖动clientX 指鼠标事件在浏览器有效区域 的位置,不包含顶部导航栏screenX 指鼠标事件整个显示屏幕 的位置,包含导航栏offsetX 指鼠标事件 相对监听元素的位置 <div id="demo"></div> #demo { position: absolute; width: 100px; height: 100px; background-color: rgb(0, 0, 255);
2022-02-16 09:15:14
303
原创 纯CSS组件网站
纯CSS组件网站https://neumorphism.io/ css Soft-UI 按钮https://cssbuttons.io/ css组件 仅包括 button/ checkbox/ toggle switchhttp://navnav.co/css全组件*
2021-12-06 13:27:42
298
转载 JavaScript 风格
参考https://github.com/lin-123/javascriptAirbnb JavaScript 风格指南目录类型引用对象数组解构字符串函数箭头函数类与构造函数模块迭代器与生成器属性变量提升比较运算符与相等块控制语句注释空格逗号分号类型转换与强制转换命名规范Get-Set 访问器事件jQueryECMAScript 5 兼容性ECMAScript 6+ (ES 2015+) 风格标准库测试性能资源In the Wild
2021-10-15 13:24:57
70
原创 js设计模式
总体概括单例模式:每个类只能拥有一个实例,如登录弹窗(多个时引用同一个)策略模式:解耦封装一个策略模块,易维护可拓展,如表单校验、绩效计算代理模式:解耦,例如加载大图片之前的loading单例模式点击按钮新增弹窗 const createLayer = ()=>{ const div = document.createElement('div'); div.innerHTML = "弹窗"; div.style.display = 'none'; docu
2021-09-17 17:32:31
72
原创 算法题总结——经典题型、模板
动态规划背包\ 代金券组合…// 动态规划 背包// - 题目:背包容量100,现有水果占容量20,价值50;水占容量10,价值20;电脑占容量30,价值100;金块占容量60,价值140;求不超过容量情况下拿最多价值// - 思路:因为组合的情况很多,而且结果只需要得到最多的价值,所以采用动态规划。、// -- 首先明确dp[i]的索引和值表示什么(一般值为要求的),i需要可以遍历,每一个dp[i]之间需要有关联,所以i表示容量,从0开始遍历每一个容量,值代表最多的价值function m
2021-09-09 10:43:52
119
原创 牛客JS(V8)输入输出写法
常用输入readline()读取一整行内容,并且为字符串类型parseInt()转数字,但是如parseInt("1 2 3 4")输出1,仅输出第一个例子单行数字输入直接let xx = parseInt(readline()),输出console.log()多行数字输入一般使用如下封装函数,while(1)循环读取,遇到结束符跳出,将读到的值作为参数传入函数。readline()一行一行地读取,如果一行多个数字(如1 2 3空格隔开):let arr =readline().split(" "
2021-09-08 19:03:52
1993
原创 JS工具函数——(searchProperty,clone,getChildren)
/* 查询对象、数组的属性或方法,返回其路径 使用场景:已知属性名且唯一,查找API,返回其路径*/let arr = [];function searchProperty(obj,count,res) { if(count > 8) { // 迭代次数 return 0 } count++ if(obj instanceof Array) { // 数组 let len = Math.min(obj.length,5) // 只找前五个 for(let i=0;
2021-07-21 09:36:41
330
原创 cesium初识 && canvas基础
安装https://cesium.com/downloads/压缩包解压后npm i,安装依赖如express等然后运行npm run start参考网站http://cesiumcn.org/?node=learning&page=3使用引入界面介绍按住鼠标左键拖拽 - 让相机在数字地球平面平移。按住鼠标右键拖拽 - 放缩相机。鼠标滚轮滑动 - 放缩相机。按住鼠标中键拖拽 - 在当前地球的屏幕中间点,旋转相机。1.Geocoder : 一种地理位置搜索工具,用于显
2021-07-05 17:36:27
1769
原创 项目中用到的Vue组件总结 & Element样式修改 & VueAPI(项目中还未用到)(持续更新于20210728)
nextTick延迟调用,该函数中的方法无视声明周期$watch观察者模式(发布订阅)vm.$wactch(vm, ‘person.name’, (newVal)=>{ }) //当person.name数据变化时,就执行后面的函数
2021-06-24 14:29:29
208
原创 axios封装拦截器
Axios简介Axios 是一个基于 Promise 的 HTTP 客户端,可以用在浏览器和 node.js 中,本质是XMLHttpRequests请求即ajax请求。拥有以下特性:从浏览器中创建 XMLHttpRequests 从 node.js 创建 http 请求 支持Promise API; 能够拦截请求和响应; 能够转换请求和响应数据; 能够取消请求; 能够自定转化JSON数据; 客户端支持防御CSRF(XSRF)封装拦截器对请求或者响应拦截进行二次封装
2021-06-22 14:14:03
956
原创 算法题总结之——各种复杂需求的解决方案(持续更新。。)
数组篇嵌套数组去重,如[[2,2,2,2],[2,2,2,2],[0,1,0,2]]let set = new Set(); res.map(v=>{set.add(v.sort().toString())}); //转字符串才能比较是否相等res = [...set].map(v=>v.split(",").map(Number)); //将[["2,2,2,2"],["0,1,0,2"]]转数组......
2021-06-09 22:11:05
104
原创 Es6学习回顾(非完整版)
本文章主要是基于尚硅谷(https://www.bilibili.com/video/BV1uK411H7on?p=14)讲的知识点中不熟悉的部分进行快速回顾对象的结构赋值数组:let arr = [1,2,3,2];let [yl,hh,tang,h] = arr;console.log(yl); //1对象:let obj = {a:1, b:2};let {a,b} = obj; //必须与obj的key相同let {a1,b1} = obj; //失效console.log
2021-06-07 22:03:21
118
原创 js this指向梳理
简单梳理一下目前遇到的,持续更新。。基本四大this调用首先是基本的四类调用:test():window 以函数形式调用时,this永远是window任何函数本质上都是通过某个对象来调用,若没有直接指定 就是windowp.test():p 以方法形式调用时,谁调用this就是谁方法:obj.属性名 = function(){ };obj.属性名();调方法 //当属性值为函数,那么属性名为方法例如:inner.onclick = function(){console.log(this)}
2021-06-07 21:19:41
83
转载 js实现排序(其他方法除快排)
sort()sort((a,b)=>a-b)大于0 升序,sort((a,b)=>b-a)小于0 降序// 特别的var ar1=[2,4,6,8,1,3]var ar2=[2,16,36,8,56]ar1.sort()ar2.sort()//这个方法值只能排序第一位数 也可以字符串进行排序console.log(ar1)//[1,2,3,4,6,8]console.log(ar2)//[16, 2, 36, 56, 8]; //把数组里面当成字符串处理默认排序顺序是升序,
2021-06-07 11:29:39
177
转载 js数据结构 链表、树
树的几个概念拥有相同父节点的节点,互称为兄弟节点节点的深度 :从根节点到该节点所经历的边的个数节点的高度 :节点到叶节点的最长路径树的高度:根节点的高度B、C、D就互称为兄弟节点,其中,节点B的高度为2,节点B的深度为 1,树的高度为3二叉树最多仅有两个子节点的树(最多能分两个叉的树????♀️)细分平衡二叉树二叉树中,每一个节点的左右子树的高度相差不能大于 1,称为平衡二叉树。满二叉树除了叶结点外每一个结点都有左右子叶且叶子结点都处在最底层的二叉树完全二叉树
2021-06-06 22:18:15
245
转载 js实现快速排序
参考:https://www.cnblogs.com/hjx-blog/articles/9183453.html思想:分治法。通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。排序效率在同为O(N*logN)的几种排序方法中效率较高// 快排 var devide_Xin = function (array, start, end) { if(start >= end) retu
2021-06-05 21:55:04
110
原创 js笔试时的输入输出(node版)
node单行,多行,行数未知的输入输出流模板单行输入//---------------本地测试时使用const fs = require('fs');let fd = fs.createReadStream('./test3_data.txt'); //创建文件读取流//--------------const readline = require('readline'); //引入readline按行读取模块const rl = readline.createInterface({ //
2021-06-03 20:08:07
2183
原创 JS对象的深拷贝
let a = [1], r = []; r.push(a); console.log(r); //[[1]] a.push(2); r.push(a); //a:[1,2] console.log(r); //[[1,2],[1,2]]以上,对象地址一样,一变全都变了。想输出[[1], [1,2]]就需要深拷贝数组的深拷贝.slice() let a = [1], r = []; r.push(a.slice()); console.log(r); //[[1]] a.pu.
2021-06-02 16:56:41
61
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人