![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
vanny_w
这个作者很懒,什么都没留下…
展开
-
知识总结:函数防抖和函数节流
防抖和节流原创 2021-11-26 17:32:15 · 360 阅读 · 0 评论 -
iframe跨域内嵌帆软web集成页面 -- 坑
集成界面在本地环境iframe 引入效果 --- 界面内容被挤在 iframe 设定范围,内部无法滚动条展示: 内容被遮挡 内容显示正常 解决方法一:...原创 2021-07-07 14:07:26 · 1536 阅读 · 0 评论 -
px转换rem给宽高设值 -- 坑(js)
px像素(Pixel),相对长度单位。像素px是相对于显示器屏幕分辨率而言的;rem是CSS3新增的一个相对单位,是以根元素的字体大小为基准计算的。通常情况下px转换rem时都以1:100的比例来方便计算(UI图:750 举例)// 根元素fsconst w = document.documentElement.clientWidth;document.documentElement.style.fontSize = w / (750 / 100) + 'px'/* 元素: f..原创 2021-04-13 18:33:04 · 459 阅读 · 0 评论 -
localStorage、sessionStorage 和 cookie 区别
localStorage:存储用量可达5M或者更大;在所有同源窗口中共享,永久有效,除非手动清除;仅在客户端本地中保存,不会自动发送给服务器;适用场景:长期保存本地数据localStorage.getItem(name); // 获取localStorage.setItem(name,value); // 设置localStorage.removeItem(name); // 移除localStorage.clear(); // 清空所有信息sessionStorag..原创 2021-04-07 11:26:17 · 126 阅读 · 0 评论 -
ES6中 let 和 var 区别(作用域)
var — 定义变量具有函数级作用于【子域可访问父域,而父域不能访问子域】let — 定义的变量巨油块级作用域【外界无法访问】典型实例:for(var i = 0; i < 5; i++) { setTimeout(function() { console.log(i) // 输出值:5 }, 1000)}for(let i = 0; i < 5; i++) { setTimeout(function() { console.log(i) /.原创 2021-04-07 11:17:00 · 125 阅读 · 0 评论 -
字符串倒序
方法一:反转数组var str = "abcdefg"var newStr = str.split("").reverse().join("")方法二:遍历var str = "abcdefg"var newStr = ""str = str.spllit("")for(var i = str.length - 1; i >= 0; i--) { newStr = newStr + str[i]}...原创 2021-04-07 11:04:59 · 102 阅读 · 0 评论 -
查询数组字符串公共
function fn(obj) { let arr = obj[0] let str, newStr = '' for(let i = arr.length; i > 0; i--) { if(!str) { str = arr.slice(0, i-1) obj.forEach((item,index) => { if(str && index) { if(item.search(str) &l.原创 2021-02-24 11:14:34 · 84 阅读 · 0 评论 -
图片转换为base64格式
/** * 路径转base64 * @param url 转换路径 * @returns {Promise<any>} */export function getUrlBase64(url) { return new Promise((resolve, reject) => { window.URL = window.URL || window.webkitURL; var xhr = new XMLHttpRequest(); xhr....原创 2021-01-22 11:01:31 · 203 阅读 · 0 评论 -
location.replace 替代路径兼容
当在ios中直接食用 location.replace 替代路径是完全可以的,但在安卓中却起不到替代的作用而变成了跳转,那么考虑到兼容性问题使用以下兼容:function replace() { if (history.replaceState) { // 安卓兼容 history.replaceState({}, document.title, url); location.reload(); //刷新 } else { locati.原创 2021-01-16 09:49:45 · 1231 阅读 · 0 评论 -
学习:构造函数和普通函数
构造函数(用于新建实例对象)和普通函数区别:构造函数和普通函数创建方法是一样的,但一般构造函数首字母为大写;构造函数调用方式: 使用new关键字来调用,例 -- new Person();普通函数调用方式:直接调用 person();函数名与类名相同:例 Person() 构造函数,Person 既是函数名,又是这个对象的类名;内部用 this 构造属性和方法:function Person(name,job,age){ this.name=name;.原创 2020-08-01 14:28:04 · 188 阅读 · 0 评论 -
原型、原型链、原型链继承 理解
原型概念: 所有对象都有一个私有的 _proto_属性,而这个属性所对应的就是自身的原型;原型链概念: 所有对像都有一个私有的 _proto_属性,而这个属性所指向的就是原型对象,它的原型对象又会有自身的原型对象,层层向上直至原型对象为null,那么这一过程就形成原型链;我们通常比较容易混淆 prototype 和_proto_,那么他们有什么区别呢?prototype 属性:是函数所特有的,它是从一个函数指向一个对象,属于函数的原型对象,也就是这个函...原创 2020-08-01 14:02:47 · 263 阅读 · 0 评论 -
知识总结:大数据下性能优化
1、数据冻结:当数组或Object,并且数据无需修改的情况下,可使用 Object.freeze() 让性能大幅提升。在实际开发中,这种提升大约有5~10倍,倍数随着数据量递增;2、虚拟滚动:页面数据较多情况下,首次加载速度会非常慢,虚拟滚动就可以先渲染可视范围内的 dom,通过复用超出可视范围的 dom 来提高性能;创建虚拟盒子显示滚动条(虚拟盒子 高度 / 宽度 根据总数据长度和每条子元素的大小来确定); 虚拟盒子根据可视区的盒子进行定位,以防把实际渲染内容挤出可视区; 实际渲...原创 2020-07-29 16:40:08 · 776 阅读 · 2 评论 -
变量提升
例一:console.log(str); // undefinedvar str = "123"变量提升即是将当前作用域的变量声明提升,当 "123" 赋值给 str 前就输出,浏览器默认把 var str 提取到 console 前但不赋值,即会输出 undefined。相当于:var strconsole.log(str); // undefinedstr = "123"例二:console.log(str); // undefinedvar str = "1...原创 2020-07-24 15:56:53 · 109 阅读 · 0 评论 -
多种数组去重方式
Set去重 返回新数组,无法去重 {} var arr = [0, 0, 1, 1, true, true, false, false, undefined, undefined, null, null, NaN, NaN, 'a', 'a', {}, {}]// 方法一:Array.from(new Set(arr)) //[0, 1, true, false, undefined, null, NaN, "a", {}, {}]// 方法二:console.log([......原创 2020-07-14 14:53:28 · 161 阅读 · 0 评论 -
undefined 和 null 区别及用法
1、undefined 和 null 有什么区别? null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaNvar a = nullNumber(a) // 0var b = undefinedNumber(b) // NaN 典型用法:原创 2020-07-21 12:20:08 · 247 阅读 · 0 评论