js
夜丶陌颜
快来看看我的博客吧!!!希望你有所收获
展开
-
吃透 js 中原型链
作为函数时只需关注prototype 属性即可prototype属性的作用就是让该函数所实例化的对象们都可以找到公用的属性和方法proto作为对象时需要关注__proto__ 、constructor。__proto__属性的作用就是当访问一个对象的属性时,如果该对象内部不存在这个属性,那么就会去它的__proto__属性所指向的那个对象(父对象)里找,一直找,直到__proto__属性的终点null,再往上找就相当于在null上取值,会报错。原创 2023-03-17 16:21:28 · 737 阅读 · 1 评论 -
canvas 实现静态流程图
canvas 画静态流程图,canvas 画 圆、棱形、三角形、线条、曲线、文本、图片原创 2022-07-13 17:36:08 · 1388 阅读 · 0 评论 -
js 位运算你了解吗?
名词介绍有符号: 无符号表示全部的整数,包含负数和正数无符号: 有符号代表全部是正整数,不包含负数的整数源码: 计算机存储数字都是以二进制进行存储,并且第一位 数字为 0 表示正数, 1表示负数,所以二进制称为源码, 比如 2 的二进制 0000 0010反码: 对所有二进制进行取反操作, 1 变成 0, 0变成 1, 当前数字为负数时,第一位数字不变(代表正负数), 比如 2 的反码 0111 1101, -2 的反码 1111 1101补码: 所有负数都是以补码进行存储,补码表现形式为 先求出原创 2022-04-07 18:17:35 · 428 阅读 · 0 评论 -
彻底了解http 缓存
强制缓存Expires: new Date().toUTCString(); 即将废弃!!!缓存机制:判断本地时间是否大于缓存时间缺点:依赖本地时间,如果本地时间有更改,game over。。。Cache-Control: max-age=10;缓存机制:max-age 定义过期时间,时间一到就过期,单位秒。 缺点:无法判断请求内容是否过期。协商缓存Cache-Control:no-cache; last-modified: 文件更新时间缓存机制:通知浏览器使用协商缓存原创 2022-03-21 15:48:56 · 1089 阅读 · 0 评论 -
如何优雅的在项目中使用js 新特性
Object.entries 迭代对象const person = { name: '111', age: 20}// Object.keys 迭代一个对象Object.keys(person).forEach((key) => { console.log(`${key} is ${person[key]}`)})// name is 111// age is 20// Object.entries 迭代一个对象Object.entries(person)原创 2021-11-17 11:20:32 · 641 阅读 · 0 评论 -
算法-排序
冒泡排序动图演示:代码:冒泡选择排序动图演示:提示:这里可以添加学习目标插入排序动图演示:提示:这里可以添加学习目标希尔排序动图演示:提示:这里可以添加学习目标归并排序动图演示:提示:这里可以添加学习目标快速排序动图演示:提示:这里可以添加学习目标快速排序动图演示:提示:这里可以添加学习目标计数排序动图演示:提示:这里可以添加学习目标基数排序动图演示:提示:这里可以添加学习目标桶排序动图演示:提示:这里可以添原创 2021-11-10 16:58:10 · 548 阅读 · 0 评论 -
js搜索算法
算法-搜索代码对比工具:可以使用https://jsbench.me 对比新旧代码那种方式更好目录算法-搜索一、线性/顺序 搜索二、二分搜索# 测试性能结果一、线性/顺序 搜索介绍:用每一个元素与需要查找的元素进行比较代码如下(示例):const arr = [1,2,3,4,5,6,7,8,9,10]const lineSearch = (array, searchItem) => { for (var i=0; i<array.length; i++){原创 2021-11-09 14:56:38 · 1062 阅读 · 0 评论 -
重新认识JSON.stringify
JSON.stringify 第二个参数const person = { name: "JSON", age: undefined }// 问题1: 当值为undefined 时, 存在属性丢失console.log(JSON.stringify(person)// '{"name":"JSON"}'数组// 格式化指定的属性console.log(JSON.stringify(person , [name])// '{"name":"JSON"}'函数// 格式化的每个原创 2021-10-11 16:45:06 · 111 阅读 · 0 评论 -
JavaScript for-in和for-of的区别
在平时工作中大家常用的肯定是forEach、map等来循环数组,通过Object.keys().forEach 来循环对象。缺点: 但是forEach、map是无法中断循环的,除非使用try...catch 来抛出异常,强制使forEach跳出循环这里介绍两个万能的循环方法for-of 、for-in不同点:for in在这里插入代码片 遍历的是数组的索引(即键名),而for of遍历的是数组元素值for in总是得到对象的key或数组、字符串的下标for of总是得到对象的value或数原创 2021-10-09 11:38:31 · 148 阅读 · 0 评论 -
js伪数组
伪数组和数组的区别对象没有数组Array.prototype的属性值,类型是Object,而数组类型是Array;数组有length属性,而对象是键值对;使用对象可以创建伪数组,伪数组可以正常使用数组的大部分方法// 伪数组const a = { length: 2, "a1": 12, "a2": 13}console.log(a.length) // 2伪数组转数组// slice内部实现Array.prototype.slice = function(sta原创 2021-10-08 10:41:54 · 204 阅读 · 0 评论 -
vue + ts + element下拉加载更多指令
import { DirectiveOptions } from "vue";/** * 对 element-ui 的无限滚动在 el-table 上使用的封装 */import elInfiniteScroll from "element-ui/lib/infinite-scroll";const elScope = "ElInfiniteScroll"; // scope nameconst msgTitle = `[el-table-infinite-scroll]: `; // me原创 2021-09-22 12:00:53 · 334 阅读 · 0 评论 -
flv 视频播放加载延迟,双击放大处理
<!DOCTYPE html><html><head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <title>flv.js demo</title> <style> .mainContainer { display: block; width: 1024px; m原创 2021-06-02 10:58:56 · 889 阅读 · 0 评论 -
axios 上传文件获去上传进度
onUploadProgress 介绍axios({ methods: 'POST', url: 'your upload url', data: 'your data', onUploadProgress(e) { console.log(e.loaded) // 已上传大小 console.log(e.total) // 文件总大小 console.log(Math.floor(e.loaded / e.total * 100)) // 上传进度百分比 }})onUploa原创 2021-05-24 17:46:51 · 280 阅读 · 0 评论 -
gulp构件自动化流程
一. 什么是gulp? gulp 是一个构件工具。包括了浏览器实时刷新、监听 、压缩、打包等等,运用了管道(pipe)思想,输入 -> 加工 -> 写入 1. src 属性: 读取文件 2. dest 属性: 写入文件 3. parallel 属性: 同步执行任务 4. series 属性: 串行执行任务 5. watch 属性: 监听文件变化二、gulp使用以及基础插件的介绍yarn add gulp --dev 安装gulpyarn add原创 2021-03-06 10:12:57 · 102 阅读 · 0 评论 -
node 自定义脚手架
一、项目环境node v12.16.1ejs( 模板语言、帮助javaScript生成 html文件)yarn add ejs // yarn 下载安装 npm install ejs // npm 安装inquirer 引导用户输入二、生成脚手架进入项目目录(初始化项目)yarn init(会自动创建package.json)在pageage.json中添加bin{ "name": "cli-mode", "version": "1.0.0原创 2021-03-03 23:35:20 · 256 阅读 · 1 评论 -
Symbol.iterator 迭代器的作用
// 统计每个班级所有学生的姓const allLastName = { class1: ['赵', '钱', '孙', '李'], class2: ['周', '吴', '郑', '王'], [Symbol.iterator]: function() { console.log(2222222, this) // 收集所有姓 const allClass = [...this.class1, ...this.class2] let原创 2021-02-04 08:24:33 · 1266 阅读 · 0 评论 -
js字符串新特性
1.字符串查找属性作用返回类型使用startsWith查找字符串是否以指定的子字符串开始booleanstr.startsWith(‘str’)endsWith查找字符串是否以指定的子字符串结束booleanstr.startsWith(‘str’)includes查找字符串中是否包含指定字符串booleanstr.startsWith(‘str’)1.模板字符串的高级用法 可以使用自定义函数处理模板字符串, say `hello, my na原创 2021-02-02 22:27:33 · 168 阅读 · 0 评论 -
uni-app window连接ios真机测试 iTunes 后无反应
请检查你当前iTunes的版本号是否是 ‘12.9.4.102’ 之前的版本号如果你安装的版本号不是12.9.4.102之前的版本 请重新安装iTunes安装地址https://mydown.yesky.com/pcsoft/33491427/versions/iTunes 安装12.9.4.102之前的版本之后连接不上ios真机。造成这种原因可能是你之前下载过更高的版本,之后卸载附件不干净。请重新安装如下步骤进行卸载。1、iTunes 2、QuickTime 3、Apple.原创 2021-01-12 10:55:43 · 1255 阅读 · 1 评论 -
浏览器窗口通信
针对window.open()打开的新窗口与原窗口之间的通信问题。父窗口window.open(’href‘, ‘_blank’) // href 跳转连接window.addEventListener(‘message’, this.receiveMessage, false)`// 子窗口发生变化后回调函数receiveMessage (event) {// event.data 发送过来的消息。// event.origin 子窗口连接地址if (event.origin !=原创 2020-07-01 14:00:02 · 269 阅读 · 0 评论 -
正则搜集
非空校验 ---- /.[^\s][\s\S]$/手机号 ---- /^((13|14|15|17|18)[0-9]{1}\d{8})$/原创 2020-06-15 14:27:07 · 130 阅读 · 0 评论