JavaScript
文章平均质量分 57
学无止境
牛先森家的牛奶
语言只是一门工具
展开
-
项目中必用的js方法汇总
常用项目中的js方法1、过滤电话号和身份证号用****1、过滤电话号和身份证号用****这里用于vue项目中过滤器使用,可以根据情况来写 filters:{ replaceStar(str,frontLen,endLen){ // str:字符串,frontLen:前面保留位数,endLen:后面保留位数。 if(frontLen == 3 && endLen == 4){ var sub原创 2020-11-30 14:17:03 · 1760 阅读 · 1 评论 -
总结那些犯错的JS知识点
1、let声明的问题var tmp = 123;if (true) { tmp = 'abc'; // ReferenceError:Cannot access 'tmp' before initialization let tmp; }原创 2020-07-02 20:19:46 · 287 阅读 · 2 评论 -
this指向和bind—call—apply
this和bind&&call&&applythis 关键字call 和 apply 和 bindcallapplybindthis 关键字每一个函数内部都有一个关键字是 this可以让我们直接使用的重点: 函数内部的 this 只和函数的调用方式有关系,和函数的定义方式没有关系函数内部的 this 指向谁,取决于函数的调用方式全局定义的函数直接调用,this => windowfunction fn() { console.log原创 2020-06-30 21:54:20 · 151 阅读 · 0 评论 -
原生js用Export2Excel导出excel单级表头和多级表头数据方式实现
原生js用Export2Excel导出excel单级表头和多级表头数据方式实现原创 2024-08-18 16:07:53 · 584 阅读 · 0 评论 -
项目中必用的js时间方法汇总
项目中必用的js时间方法汇总原创 2024-06-13 10:29:51 · 285 阅读 · 0 评论 -
echarts图表设置关于图例legend,限制图例可点击时最少保留显示一个图例
echarts图表设置关于图例legend,限制图例可点击时最少保留显示一个图例原创 2023-03-01 16:01:26 · 1367 阅读 · 1 评论 -
typescript报错汇总(持续整理中)
typescript报错汇总(持续整理中)原创 2022-07-07 11:26:30 · 2149 阅读 · 1 评论 -
js的箭头函数和普通函数的区别
js的箭头函数和普通函数原创 2022-06-12 11:44:00 · 224 阅读 · 0 评论 -
温顾篇 —— JS(函数防抖debounce和节流throttle)
js防抖处理原创 2021-12-26 15:55:22 · 605 阅读 · 0 评论 -
TypeScript入门学习之路
TypeScript学习之路TypeScript学习之路安装typescript环境typescript起步TypeScript学习之路安装typescript环境npm install -g typescript查看版本tsc -vtypescript起步1、新建hello.tsconst hello : string = "Hello World!"console.log(hello)2、通过 tsc 命令编译tsc hello.ts 3、此时路径下会生成一个hello.原创 2021-11-21 17:02:21 · 7376 阅读 · 0 评论 -
JavaScript之内存泄露和闭包
面试之js的内存泄露js造成内存泄漏的几种情况1、介绍js的垃圾回收机制2、主要存在内存泄漏的问题点3、主要关注的代码点4、在vue中如何处理内存泄漏的闭包1、什么是闭包?js造成内存泄漏的几种情况1、介绍js的垃圾回收机制js的垃圾回收机制就是为了防止内存泄漏的;内存泄漏的含义就是当已经不需要某块内存时这块内存还存在着,垃圾回收机制就是间歇的不定期的寻找到不再使用的变量,并释放掉它们所指向的内存。所以这里又涉及到变量的生命周期,当一个变量的生命周期结束之后它所指向的内存就应该被释放。JS有两种原创 2021-10-27 17:55:49 · 443 阅读 · 2 评论 -
js中的map到底会不会改变原数组?
js中的map到底会不会改变原数组?一直以为不会,但是项目中出现了问题,哎嘿,总结一下吧第一种如下 const arr = [7, 14, 21, 28] const result = arr.map(item => { item = item * 2; return item; }); console.log('arr', arr); console.log('result', result); 第二种如下 c原创 2021-06-24 14:57:29 · 952 阅读 · 0 评论 -
js思路提升
思想1、定义一个变量来存状态<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <tit原创 2020-07-06 23:00:23 · 167 阅读 · 0 评论 -
js之对象数组的深拷贝和浅拷贝
数组的深拷贝和浅拷贝数组的浅拷贝数组的深拷贝对象的浅拷贝对象的深拷贝数组的浅拷贝 var arr1 = [1,2,3,4]; var arr2 = arr1; arr2[2] = 'fqniu'; console.log(arr1); // [1, 2, "fqniu", 4] console.log(arr2); // [1, 2, "fqniu", 4]数组的深拷贝以slice方法为例 var arr1 = [1, 2, 3, 4]; var arr2 = ar原创 2021-03-04 00:16:49 · 245 阅读 · 1 评论 -
字符串的原型方法
字符串的原型方法字符串原型方法includes()字符串原型方法includes() // includes() 方法用于判断一个字符串是否包含在另一个字符串中,根据情况返回 true 或 false。 // includes() 方法是区分大小写的。 const flag = 'aaa'.includes('') console.log(flag) //true const a = 'abc'.includes('a') const A = 'abc'.inclu原创 2021-02-05 14:15:16 · 412 阅读 · 0 评论 -
数组的原型方法
js的数组原型方法数组原型方法findIndex()数组原型方法findIndex() <script> // arr.findIndex(function(item, i ,arr){}) // 数组的原型方法,也就是构造函数的原型上的方法,都能被它实例出来的访问 Array.prototype.info = "哈哈哈" var a = [] console.log(a.info) // 哈哈哈 // 封装此方法的作用是根据给定的回调函原创 2021-02-05 14:14:53 · 644 阅读 · 0 评论 -
常用在项目里面的正则表达式
正则去掉字符串中的;和: for (var i in this.skuListData) { let str = this.skuListData[i].specName.replace(/:|;/g, ',') console.log(str) this.shopItemInfo[this.skuListData[i].specName] = this.skuListData[i]; }原创 2021-01-29 14:00:08 · 100 阅读 · 0 评论 -
js事件运行机制和事件机制
js事件运行机制单线程任务队列事件和回调函数Event Loop单线程因为 javascript是单线程的,所谓的单线程是指JS引擎中负责解释和执行javascript代码的线程只有一个,可以称为主线程。问:为什么JavaScript不能有多个线程呢?这样能提高效率啊。假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征,将来也原创 2020-10-17 22:55:08 · 991 阅读 · 0 评论 -
JavaScript之DOM
DOM篇DOM是什么?文档对象模型(Document Object Model ,DOM),是W3C组织推荐处理可扩展标记语言(HTML和XML)的标准编程接口。1、HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。2、XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法。HTML DOM 树形结构:...原创 2020-06-13 15:46:53 · 1424 阅读 · 0 评论 -
JavaScript之BOM
BOMBOMBOM是什么BOMBOM是什么BOM(Browser Object Model)即浏览器对象模型,它提供了独立于内容而与浏览器窗口进行交互的对象,其核心对象是window。 BOM 由一系列相关的对象构成,并且每个对象都提供了很多方法与属性。 BOM 缺乏标准,JavaScript 语法的标准化组织是 ECMA,DOM 的标准化组织是 W3C,BOM 最初是Netscape浏览器标准的一部分。...原创 2020-06-24 23:57:46 · 694 阅读 · 0 评论 -
正则表达式
正则表达式正则正则原创 2020-06-28 22:29:44 · 160 阅读 · 0 评论 -
窗口的属性和方法——事件对象中光标位置
窗口的属性和方法&&事件对象中光标位置和元素尺寸窗口的主要属性和方法1、获取浏览器窗口的尺寸2、浏览器常用事件3、获取浏览器卷去的高度获取滚动条属性和方法事件对象中光标位置获取元素的尺寸窗口的主要属性和方法1、获取浏览器窗口的尺寸在这里需要说的一个概念是 页面视图容器页面视图容器: 称之为浏览器的视口(viewpoint),相比窗口本身来说,它不包含工具栏和滚动条innerHeight 获取页面视图的高度(不包括滚动条)innerWidth 获取页面视图的高度(不包括滚动原创 2020-06-24 15:38:38 · 398 阅读 · 0 评论 -
JavaScript数组、字符串回顾
JavaScript的数组、字符串笔记1、添加数组元素方法 // 1. push() 在数组的末尾 添加一个或者多个数组元素 var arr = [1, 2, 3]; // arr.push(4, 'blue'); console.log(arr.push(4, 'blue'));//5 console.log(arr);//[...原创 2020-03-15 11:28:57 · 613 阅读 · 0 评论 -
JavaScript之键盘相关信息
键盘相关信息键盘事件(一般只给可以输入内容的元素绑定 或者 window绑定)1、onkeydown (按下键盘键的时候触发)2、onkeyup (松开键盘键的时候触发)3、onkeypress (按下字符键的时候触发,不包括Ctrl和shift等) <input type="text" id="btn"> <script> var btn = document.querySelector('#btn'); //当input有输入内容时,触发按键按下事原创 2020-06-24 22:39:28 · 166 阅读 · 0 评论 -
琢磨不透的JS原型相关
JS原型相关构造函数原型(proto) 和 prototype原型链 (JS原型与原型链继承)内部原型(proto) 和 构造器的原型(prototype)。浅谈constructor函数和对象关系原型prototype的用法prototype与__proto__的关系经典练习题面向对象阅读前提:概念太多,理解最好,但是后面代码必须懂构造函数是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值。它总与 new 一起使用,可以把对象中的一些公共的属性和方法抽出来,然后封装到这个函数里面。n原创 2020-06-14 22:46:36 · 199 阅读 · 0 评论 -
继承和原型链
继承本来想先说说原型链,但是感觉先说一下继承会更好的理解原型链,那好,废话不多说,开始!!这里的继承是面向对象里面的范畴;注明:以下举例比较随意,看个人理解比如,现在有一个"动物"构造函数 function Animal(){ this.type="动物"; }要求:怎么才能让"猫"继承"动物"呢?继承的第一种方法:使用call和apply方法,将父元素的构造函数绑定到子对象上,即在第一行加一个function函数名.call(this);<script&g原创 2020-05-25 19:22:11 · 264 阅读 · 0 评论 -
总结JavaScript要点
JavaScript要点JavaScript作用域就是代码名字在某个范围内起作用和效果,目的是为了提高程序的可靠性,更重要的是减少命名冲突js的作用域(es6之前):全局作用域、局部作用域全局作用域:整个script标签或者是一个单独的js文件, 比如:var num=10局部作用域(也叫做函数作用域)在函数内部就是局部作用域,这个代码的名字只能在函数内起效果和作用 ,比如: function fn(){}变量作用域的分类在js中,根据作用域的不同,变量分为两种:全局变量和局部变量全局原创 2020-10-06 09:06:09 · 1065 阅读 · 1 评论 -
javascript冷知识
杂记javascript知识点立即执行函数深浅克隆Object.assign() 方法使用apply() 冷知识使用方法call()冷知识使用方法Array.prototype.slice.call(伪数组集合)和 Array.from(伪数组集合)立即执行函数 // 1.立即执行函数: 不需要调用,立马能够自己执行的函数 function fn() { console.log(1); } fn(); // 2. 写法 也可以传递参数进来 //原创 2020-07-23 18:52:57 · 413 阅读 · 0 评论 -
数组方法的返回值使用
计算两个数组的交集<script> var arr1 = [1, 2, 2, 3, 4, 5]; var arr2 = [2, 2, 3, 4, , 6, 7, 8]; // 输出的内容 [2,3,4] // 循环拿出arr1数组中的每一个数据 /* 第一次调用 item = 1 arr2.indexOf(item) !== -1 === arr2.indexOf(1) !== -1 条件不成立 不会把item返回到新的原创 2020-06-21 22:48:51 · 2222 阅读 · 1 评论 -
javascript的同步和异步
同步和异步 //1、同步代码,一步又一步,前面出问题,后面出问题 console.log('同步start'); for(let i=0;i<5;i++){ console.log('123'); //打印5次123 } console.log('同步end'); /* 同步start 5 123 ...原创 2020-07-10 12:54:59 · 131 阅读 · 0 评论 -
JS开发中高阶函数之filter、map、reduce
高阶函数之filter、map、reduce<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <tit...原创 2020-05-02 15:19:40 · 367 阅读 · 0 评论 -
获取url参数转为对象
获取到的url参数转为对象把字符串转为对象 // 把字符串转化为对象 var str = 'id=1&name=zhangsan&age=18&className=2003' // {id:1,name:zhangsan,age:18,className:2003} // 先把字符串转化为 数组 var arr = str.split('&'); // arr = ['id=1','name=zhangsan','age=1原创 2020-06-22 21:22:13 · 2161 阅读 · 2 评论 -
Math对象随机数方法—random()
随机数random()1、Math对象里面随机数方法,random()返回一个随机的小数 0 <= x < 1;2、这个方法里面不跟参数;3、验证代码: console.log(Math.random())4、如果得到随机整数,并且包含这2个整数: Math.floor(Math.random()*(max - min + 1)) + min;例: function getRandom(min, max) { return Math.floor原创 2020-06-13 21:37:32 · 10084 阅读 · 0 评论 -
封装获取非行内样式函数
获取非行内样式操作1、 window.getComputedStyle(dom元素).属性注意:在IE中,只有在ie9及以上才能获取写法: var style = window.getComputedStyle(dom元素).height;2、dom元素.currentStyle.属性注意:只有在ie8及以下才能获取样式,在其他浏览器会报错写法:var style = dom元素.currentStyle.height // 获取非行内的样式 // getComputedStyl原创 2020-06-24 15:40:11 · 556 阅读 · 0 评论 -
短路表达式小技巧
短路表达式||:当前面的值为真 后面得值就不会 被执行,前面的为假,后面的才会被执行&&:当前面的值为真的时候,才会执行后面的值,当前面的值为假的时候,后面的值不会被执行 var num = 10; // num= 11 ,因为 || 前面为假,后面才会执行 // false || num++ // num= 10 ,因为 || 前面为真,后面的不会执行 true || num++ // 最后打印num = 10,因为&&原创 2020-06-23 19:01:22 · 394 阅读 · 0 评论 -
系统弹窗
系统弹窗alert()prompt()comfirm()open()close()1、alert() <script> alert('我只是一个弹窗') </script>2、prompt() <script> var ret = prompt('看看这个弹窗是什么样的?') console.log(ret) </script>注意:返回值:当输入内容时,点击确定,返回值是输入的内容当不输入内原创 2020-06-21 22:46:18 · 304 阅读 · 0 评论 -
冒泡排序和选择排序
冒泡排序 <script> /* 冒泡排序 找到最大的数据 放在数组的最后面 【1】相邻的两个数据进行比较 【2】如果前面的数据 比后面的数据大,这两个数据就交换 */ // var num1 = 10; // var num2 = 20; // num1 =20 num2 =10 // var num3 = num1; // num1 = num2; // num2 = num3;原创 2020-06-17 16:56:44 · 102 阅读 · 0 评论 -
细说javascript的垃圾收集
javascript的垃圾收集JavaScript 具有自动垃圾收集机制1、标记清除2、引用计数性能问题管理内存总结以下内容引用javascript高级程序设计第三版 中第4章变量,作用域和内存问题JavaScript 具有自动垃圾收集机制 JavaScript 具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中使用的内存。 而在 C 和 C++之类的语言中,开发人员的一项基本任务就是手工跟踪内存的使用情况,这是造成许多问 题的一个根源。在编写 JavaScrip原创 2020-08-08 17:42:36 · 124 阅读 · 0 评论 -
杂记—JavaScript梳理(2)
事件事件JavaScript与HTML之间的交互是通过事件实现的。事件,就是文档或浏览器发生的一些特定的交互瞬间。事件流:事件流描述的是从页面中接收事件的顺序。但有意思的是,IE 和 Netscape 开发团队居然提出了差不多是完全相反的事件流的概念。IE 的事件流是事件冒泡流,而 Netscape Communicator 的事件流是事件捕获流。事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即是DOM事件流事件冒泡IE 的事件流叫做事件冒泡(event bubbling),即原创 2020-06-03 15:11:59 · 165 阅读 · 0 评论 -
杂记—JavaScript梳理(1)
面向对象篇创建对象 //1、利用字面量 创建对象 var obj={ uname:'小白', age:18, sex:'男', sayhi:function (){ console.log('hi'); } } console.log(o...原创 2020-05-17 19:40:01 · 192 阅读 · 0 评论