JavaScript
文章平均质量分 62
学习分享
爱划水de鲸鱼哥~
一只自由生长的野生程序猿
展开
-
typeof 与 instanceof 的区别
typeof 与 instanceof 的区别原创 2022-12-20 20:56:00 · 604 阅读 · 1 评论 -
js连接mqtt接口
最近项目中用到了kafka接口,后来又改用了mqtt接口,今天就来记录一下js如何连接mqtt。主要是使用了mqtt.js这个库,使用 WebSocket 连接。原创 2022-12-20 20:55:13 · 898 阅读 · 0 评论 -
利用FormData上传本地文件
利用FormData上传本地文件原创 2022-12-20 20:53:54 · 8026 阅读 · 0 评论 -
websocket使用方法
最近项目用到了websocket接口,用来做长连接,监听服务器数据变化,保持各终端数据同步。用下来发现确实很好用,避免了轮询,开销小,而且最重要的是没有同源策略限制。原创 2022-12-20 20:52:26 · 983 阅读 · 1 评论 -
手写new操作符
new操作符原创 2022-12-20 20:51:23 · 149 阅读 · 0 评论 -
JavaScript 节流和防抖
本文主要记录了JavaScript 节流和防抖,节流和防抖本质上是优化执行高频率代码的一种手段。例如:浏览器的 、、 等事件在触发时,会不断地调用绑定的事件函数极大地降低了前端的性能。为了性能优化,需要对这类事件进行调用次数的限制,对此我们就可以采用 防抖(debounce) 和 节流(throttle) 的方式来减少调用频率。触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间。维护一个计时器,规定在delay时间后触发函数,但是在delay时间内再次触发的话,都会清除当原创 2022-06-08 22:56:43 · 296 阅读 · 0 评论 -
javascript如何手动抛出错误?
在javascript中通常使用抛出错误,语句用于抛出一个用户自定义的错误。例如:抛出了一个值为字符串的错误例如:抛出了一个错误对象语句用于抛出一个用户自定义的错误。当程序执行语句时,之后的语句将不会执行,如果调用者函数中没有块,程序将会终止。所以语句常常和语句一起使用。语句用于处理代码中可能出现的错误信息。try语句,执行可能发生错误的代码块。catch 语句,当 try 代码块发生错误时,所执行的代码块。finally 语句在 try 和 catch 之后无论有无异常都会执行。结合语句使用语句抛原创 2022-06-06 22:02:20 · 7950 阅读 · 0 评论 -
JS实现页面右键菜单
JS实现页面右键菜单原创 2022-05-17 19:59:07 · 3766 阅读 · 0 评论 -
JS实现页面快捷键功能
JS实现页面快捷键功能JS实现页面快捷键功能一共分为三步:第一步:绑定onkeydown事件;第二步:阻止默认按键功能;第三步:验证键码,调用功能函数;绑定事件首先,实现页面快捷键我们需要用到 onkeydown事件,onkeydown 事件会在用户按下键盘时触发。我们将其绑定到 window上:window.onkeydown。阻止默认功能然后,通过event.preventDefault() 方法阻止掉按键原有的功能,为我们绑定上新的功能做好准备工作。ps: 当然 event.原创 2022-04-30 23:23:07 · 7077 阅读 · 5 评论 -
如何用for (var i=1; i<=5; i++) 加 setTimeout 输出1、2、3 、4、5
for (var i=1; i<=5; i++) 加 setTimeout 如何输出1、2、3 、4、5大家在笔试或者面试的时候,或多或少都做过这样的题吧!请问下面代码的输出是什么? for (var i=1; i<=5; i++) { setTimeout( function timer(){ console.log( i ); }, i*1000 ); } //输出 6原创 2022-04-25 15:15:32 · 3105 阅读 · 0 评论 -
如何在老版本浏览器中丝滑地使用JS新特性(ES6)
如何在老版本浏览器中丝滑地使用JS新特性呢?如何在老版本浏览器中丝滑地使用JS新特性呢?有两种方法可以帮助我们实现:第一种方法就是我们用JS原有的方法,自己去实现JS的新特性😂;??? 不是说好的丝滑使用新特性吗,就这哈哈哈,别急!客官留步,我还有plan B😁咳咳咳,plan B 就是 把JS的新特性翻译成JS原有的方法😎纳尼,这是就你的 plan B 拿我🔪来大哥,别 别 别 !!!我这有工具可以直接翻译,包你丝滑!不爽不要钱😭这还差不多,先饶你一条小命,赶紧好好给大家说说怎么回事原创 2022-04-24 07:00:00 · 589 阅读 · 0 评论 -
JS字符串常用属性、方法
文章目录属性lengthconstructorprototype方法charAt()charCodeAt()属性length字符串的length属性,可以返回字符串的长度;constructor字符串的constructor属性,可以返回创建字符串属性的函数;prototype字符串的prototype属性,指向其原型对象,可以向其添加一些方法和属性;方法charAt()字符串的charAt()方法,可以返回 0~str.length之间 指定位置的字符;如果传入的位置不在 0原创 2021-10-27 19:45:43 · 323 阅读 · 0 评论 -
常见JS继承方式
原型链继承核⼼:将⽗类实例作为⼦类原型;优点:可以复用父类构造函数的⽅法;缺点:创建⼦类实例的时候,不能传⽗类的参数。⼦类实例共享了⽗类构造函数的引⽤属性,引⽤属性共享。⽆法实现多继承。 // 父类 function Parent (name){ this.name = name; this.q = ['0']; } Parent.prototype.say = function (){ conso原创 2021-10-11 15:49:13 · 118 阅读 · 0 评论 -
手写promise加载图片
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>手写p原创 2021-09-09 23:30:35 · 149 阅读 · 0 评论 -
JS垃圾回收机制
文章目录垃圾回收机制引用计数法引用计数原理引用计数过程引用计数缺点——循环引用标记清除法标记阶段清除阶段循环引用垃圾回收机制JS 垃圾收集器每隔一段时间就对变量检查。当一个变量不再被需要时,它就会把这个变量所占用的内存空间给释放掉,以防内存泄漏。内存泄漏:内存泄漏并不是物理层面上的泄露,是指变量再使用的过程中没有被及时的销毁、内存空间没有被释放,导致内存占用不断攀高,带来性能恶化、系统崩溃等一系列问题的现象。JS 垃圾回收算法有两种:引用计数法、标记清除法。引用计数法引用计数法是最初级的垃圾原创 2021-09-09 13:03:46 · 273 阅读 · 0 评论 -
JavaScript -- 闭包及应用
闭包的定义闭包是涉及独立变量的函数,在闭包中定义的函数会记住它所在环境中的变量。闭包的使用形式函数作为返回值函数作为参数闭包的优缺点优点变量长期驻扎在内存中;避免全局变量的污染;模拟私有成员 ;缺点会造成内存泄露;闭包的应用私有成员 function _data (){ // data中的数据被隐藏,不能被外界访问原创 2021-08-26 16:00:22 · 117 阅读 · 0 评论 -
JavaScript -- 数组去重
文章目录方法一、利用indexOf()去重思路代码方法二、利用splice方法去重思路代码实现方法三、利用Set去重思路代码实现方法一、利用indexOf()去重indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配的字符串则返回 -1。注意: indexOf() 方法区分大小写。思路创建一个新数组;循环待去重数组;用新数组去找待去重数组的值,找不到push到新数组;最后返回新数组;代码 function fun(arr){ let n原创 2021-08-24 11:51:37 · 108 阅读 · 0 评论 -
JavaScript -- Map数据结构
文章目录什么是MapMap和对象的区别什么是MapMap和对象类似都是键值对的集合。Map和对象的区别对象一般用字符串当键。原创 2021-08-17 18:57:28 · 3951 阅读 · 16 评论 -
JavaScript -- Set数据结构
Set什么是SetSet是一系列无序、没有重复值的数据集合;数组是一系列有序的数据集合。无序Set没有下标去表示每一个值,不能像数组一样通过下标去访问。没有重复值创建Set实例,使用add方法添加1,2,1三个值,Set实例中只有1,2两个值,没有重复值。add方法每次只能添加一个值。Set实例的属性和方法add()向Set实例中添加一个值。...原创 2021-08-17 16:42:07 · 590 阅读 · 0 评论 -
JavaScript 手写深拷贝
浅拷贝<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>原创 2021-08-09 14:57:37 · 591 阅读 · 0 评论 -
手写AJAX(兼容IE)
文章目录AJAX为什么要使用Ajax?AJAX最大的特点是什么。XMLHttpRequest对象XMLHttpRequest对象的常用方法和属性。AJAX请求五个步骤手写AJAXget请求post请求兼容IEwindow.ActiveXObject兼容IE的get请求AJAXAjax 并不算是一种新的技术,而是已有技术的组合;主要用来实现客户端与服务器端的异步通信,实现页面的局部刷新;为什么要使用Ajax?在没有使用Ajax情况下:用户进入提交/等待/重新显示Web站点会重新加载整个网页;对于原创 2021-08-09 14:40:52 · 292 阅读 · 0 评论 -
JavaScript 值类型与引用类型
值类型 let a = 20; let b = a; a = 10; console.log(b);//20值类型在栈中存储引用类型 let a = { name: "zhangsan"}; let b = a; a.name = "张三"; console.log(b);//{name: "张三"}例题 const a = { name: "zhangsan", age: 18}原创 2021-07-25 09:47:52 · 351 阅读 · 1 评论 -
JavaScript 利用数组方法快速创建一、二维数组
一维数组借助数组的 fill() 方法,快速创建一维数组。 // 一维数组 var arr1 = Array(6).fill(''); console.log(arr1); // 输出 //(6) ["", "", "", "", "", ""]fill()方法:用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。fill()方法有三个参数:value、start、endvalue:填充数原创 2021-06-28 09:12:44 · 852 阅读 · 0 评论 -
JavaScript笔记 -- 基本数据类型转换
强制类型转换一、转为数字类型1.使用Number()函数将其他值转换为一个数字2.使用parseInt()函数将其他值转换为一个整数3.使用parseFloat()函数将其他值转换为一个浮点数二、转为字符串类型1.使用String()函数将其他值转换为一个数字2.使用toString()函数将其他值转换为一个整数三、转为布尔类型使用Boolean()函数将其他值转换为一个数字数字转布尔值除0和NaN为false,其余数字均为true. console.log(原创 2021-06-06 14:51:13 · 143 阅读 · 0 评论 -
JavaScript -- 隐式类型转换
文章目录隐式类型转换字符串拼接使用 == 运算if语句总结隐式类型转换在JavaScript运算中,当运算符两边数据类型不一致时,编译器会自动将运算符两边的数据进行类型转换,转成一样的数据类型再进行计算。像这种由编译器自动完成数据类型转换的方式就称为隐式转换。字符串拼接当数字与字符串通过加号连接时进行字符串类型转换,数字 + 字符串 = 字符串当字符串前连接加号时会进行数字类型转换, + 字符串 = 数字使用 == 运算使用 == 运算时,会发生隐式转换,使结果相等。if语句在进行i原创 2021-06-06 14:51:46 · 765 阅读 · 0 评论 -
JavaScript -- undefined和null的异同点
相同点:undefined,null 均表示"无"的值。不同点:null表示"没有对象",此处应该无值;typeof运算为"object";作为函数的参数,表示函数的参数不是对象;作为对象原型链的终点;undefined表示"缺少值",此处应该有值但未定义;typeof运算为"undefined";变量定义了,但没赋值时值为undefined;调用函数未传递应有的参数时,对应参数等于undefined;对象的属性没有赋值时等于undefined;函数没有返回值时,默认返回u原创 2021-06-05 15:20:05 · 127 阅读 · 0 评论