JavaScript
文章平均质量分 74
js相关文章
前端蜗牛君
前端开发工程师
展开
-
js函数参数的默认值,参数为对象
比如,上面最后一个函数,定义了 3 个参数,其中有一个参数c指定了默认值,因此length属性等于3减去1,最后得到2。上面两种写法都对函数的参数设定了默认值,区别是写法一函数参数的默认值是空对象,但是设置了对象解构赋值的默认值;上面代码中,函数fetch没有第二个参数时,函数参数的默认值就会生效,然后才是解构赋值的默认值生效,变量method才会取到默认值GET。上面代码中,有默认值的参数都不是尾参数。上面代码中,x参数对应undefined,结果触发了默认值,y参数等于null,就没有触发默认值。原创 2024-06-18 19:47:34 · 890 阅读 · 0 评论 -
JS中对象解构时(嵌套子对象)指定默认值
当被解构字段缺失时:此时可在解构时使用。原创 2024-05-30 19:20:41 · 350 阅读 · 0 评论 -
浏览器存储cookie、webStorage、IndexedDB
MDN官网是这样解释Indexed DB的:IndexedDB 是一种底层 API,用于在客户端存储大量的结构化数据(也包括文件/二进制大型对象(blobs))。该 API 使用索引实现对数据的高性能搜索。虽然 Web Storage 在存储较少量的数据很有用,但对于存储更大量的结构化数据来说力不从心。而 IndexedDB 提供了这种场景的解决方案。原创 2024-04-23 16:48:12 · 377 阅读 · 0 评论 -
如何实现跨标签页通讯
同一浏览器,可以打开多个标签页,跨标签页通讯就是,一个标签页能够发消息给另一标签页。原创 2024-03-20 20:42:28 · 1236 阅读 · 0 评论 -
JavaScript 触发浏览器页面全屏,某div区域全屏
全屏API可以控制浏览器的全屏显示,让一个Element节点(以及子节点)占满用户的整个屏幕。目前各大浏览器的最新版本都支持这个API(包括IE11),但是使用的时候需要加上浏览器前缀。原创 2022-08-17 19:30:00 · 3346 阅读 · 0 评论 -
Cookie的作用域不区分协议和端口
如果cookie在一个端口上运行的服务可读,则cookie也可由在同一服务器的另一个端口上运行的服务读取。如果cookie在一个端口上可由服务写入,则cookie也可由在同一服务器的另一个端口上运行的服务写入。出于这个原因,服务器不应该在同一主机的不同端口上运行相互不信任的服务,并使用cookie来存储安全敏感信息。在http://localhost:3000和http://localhost:4000之间跳转时,Chrome会传入相同的cookie,每个服务都无法理解cookie并生成新的cookie。.原创 2022-08-02 17:27:35 · 1966 阅读 · 0 评论 -
导出文件流,失败,提示错误信息
下载文件失败时,要提示后端返回的错误信息,而不是将错误信息流写到下载的文件中。原创 2022-07-24 10:47:28 · 1467 阅读 · 0 评论 -
使用src方式引用第三方依赖,CDN与UNPKG与NPM
前端开发,经常遇到这种方式快速使用第三方依赖。我们先到npm找到要使用的依赖名称,使用下面方式引用:使用固定的版本号:unpkg.com/react@16.0.0/umd/react.production.min.jsunpkg.com/react-dom@16.0.0/umd/react-dom.production.min.js也可使用语义化版本范围,或标签来代替固定版本号,亦可忽略版本和...原创 2022-06-28 19:00:00 · 1234 阅读 · 0 评论 -
js 可选链?.,逻辑与&&,逻辑或||,空值合并??
空值合并操作符"??",我第一次看到它,就和它的表示符号一样,满脸问号?。在实际开发中我会经常用到&&和||原创 2022-05-31 22:34:19 · 268 阅读 · 0 评论 -
js系列-常用正则表达式
25个常用的正则表达式汇总,建议收藏。正则表达式非常有用。正则表达式可用于每种语言。就像 json 一样,它们是通用的。在日常开发中,了解一些常用的正则表达式可以大大提高你的工作效率。今天,我给大家分享25个常用的正则表达式,希望大家能提高代码效率!1、手机号码的校验const phoneReg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/const phoneStr1 = '18886233487'console.log(phoneReg.test(phoneStr1))原创 2021-10-13 09:30:52 · 1480 阅读 · 0 评论 -
js系列-复制内容到粘贴板剪切板
document.execCommand()方法先看看这个方法在 MDN 上是怎么定义的:which allows one to run commands to manipulate the contents of the editable region.意思就是可以允许运行命令来操作可编辑区域的内容,注意,是可编辑区域。定义bool = document.execCommand(aCommandName, aShowDefaultUI, aValueArgument)方法返回一个 Boo原创 2021-10-12 22:21:24 · 251 阅读 · 0 评论 -
js-点击div之外,隐藏div
其实原理总结就两句话:给整个document添加监听点击事件,隐藏div给div添加监听点击事件,阻止冒泡代码实现html代码<body> <!-- 要隐藏的div --> <div id="showDiv"></div></body>js代码const bt = document.getElementById('showButton');const div = document.getElementById('sh原创 2021-10-11 22:27:00 · 5034 阅读 · 0 评论 -
js系列-File 对象,FileList 对象,FileReader 对象
File 对象,FileList 对象,FileReader 对象File 对象File 对象代表一个文件,用来读写文件信息。它继承了 Blob 对象,或者说是一种特殊的 Blob 对象,所有可以使用 Blob 对象的场合都可以使用它。最常见的使用场合是表单的文件上传控件(),用户选中文件以后,浏览器就会生成一个数组,里面是每一个用户选中的文件,它们都是 File 实例对象。// HTML 代码如下// <input id="fileItem" type="file">var fil原创 2021-10-02 13:59:43 · 12941 阅读 · 2 评论 -
js高级应用系列-优雅的判断0
判断排除0之外的false问题我们使用 if 时,经常会这样使用:if(!value){ console.log('数据不符合规范!'); return;}但这有一个问题,当value的值是0的时候,也会进入if 块中,如何排除0呢?优雅解决方式,使用 typeof :if(typeof value !== 'number' && !value){ console.log('数据不符合规范!'); return;}另一种方式就是排除除0之外的所有可能情况原创 2021-08-03 18:52:31 · 2756 阅读 · 0 评论 -
js系列-modul模块
为什么会出现模块?解决变量冲突,如果变量都定义在全局作用域中,难免会冲突,模块独立成各自作用域 将复杂的业务封装成一个个模块,业务逻辑更清晰 模块可以控制暴露什么,不暴露什么(内部调用),可以引入其他模块模块是什么?模块就是将复杂的业务代码拆分成独立的块,各个模块之间存在依赖,但各自又是独立的。在没有模块之前,如何模拟模块?为模仿模块模式封装,ES6之前会使用函数作用域和立即调用函数表达式(IIFE)将模块定义风转载匿名包中。(function(){ //私有模块代码 c原创 2021-04-11 21:24:00 · 311 阅读 · 0 评论 -
js系列-class类,继承
类原创 2021-04-07 14:17:22 · 1983 阅读 · 0 评论 -
js系列-原型和原型链继承
前戏世界上是先有的鸡,还是先有的蛋?这个世界难题,可能无从考究了。但如果现在问是先有的函数,还是先有的对象,那么,我的答案是先有的函数(构造函数)。那知道了这个,我们讲解原型,就从函数说起。原型每个函数都会创建一个prototype对象属性,它就是原型对象,也是我们调用构造函数生成的对象的原型,我们直接打印看下:function Person(name) { this.name = name;}console.dir(Person);我们看上面的图片发现一个特别有意思的事情原创 2021-03-20 23:36:19 · 345 阅读 · 0 评论 -
js系列-Object对象
简介:在JavaScript中,我们使用最多的就是对象,但我们很少自定义一个对象去使用,更多的是使用构造函数来new一个对象,其实我们在不知不觉中一直在使用对象,JS中大部分类型都是对象如 String/Number/Math/RegExp/Date 等等。...原创 2021-03-08 21:39:18 · 5111 阅读 · 0 评论 -
js系列-闭包
提出问题:1.什么是闭包(闭包的定义)2.闭包有什么特点3.闭包的应用场景闭包定义:可以访问其他函数内部变量的函数,就是一个闭包个人感觉,闭包其实是一个独立的函数作用域,类似于全局作用域,里面变量和状态都会被保留下来,方便以后的访问。闭包特点1.可以访问函数内部的变量2.变量的状态会保存在内存中,不会丢失闭包应用场景setTimeout...原创 2021-02-22 16:21:32 · 281 阅读 · 0 评论 -
js系列-函数Function
先思考几个问题:1.函数是什么2.怎么定义函数函数是对象函数是Function的实例对象,函数名是指针,通过下面这种方式定义函数很容易理解这句话:let fun = new Function('a','b','c','return a+b+c');...原创 2020-11-17 20:30:04 · 413 阅读 · 0 评论 -
js系列-Map和WeakMap
带着问题学习:1.什么是Map2.es6为什么会出现Map,解决什么问题2.如何定义Map原创 2020-10-27 20:09:06 · 2973 阅读 · 0 评论 -
js系列-Set集合和WeakSet弱引用
SetSet对象是值的集合, Set中的元素只会出现一次,即 Set 中的元素是唯一的,无论是基本类型还是对象引用。 let set = new Set([1, 1, '1', { name: 'zhang' }, [1, 2, 3]]); console.log(set);//Set(4){1, "1", {…}, Array(3)}通过上面简单的定义我们可以发现几个问题:虽然Set定义是{..}对象,但只有值没有key键名 是严格类型检测如字符串数字不等于数值型数字..原创 2020-08-16 23:15:11 · 1186 阅读 · 0 评论 -
js系列-Array数组详解
创建声明数组使用对象方式创建数组console.log(new Array(1, '后盾人', 'hdcms')); //[1, "后盾人", "hdcms"]使用字面量创建是推荐的简单作法const array = ["hdcms", "houdunren"];原创 2020-07-28 09:11:23 · 1126 阅读 · 0 评论 -
js系列-Date时间
声明创建方式(创建时间对象) let a = new Date(); console.log(a);//Sat Jul 11 2020 22:27:56 GMT+0800 (中国标准时间) let b = new Date(1594477107296); console.log(b); let c = new Date('2020-07-11'); console.log(c); let d = new Date(2020, 06, 11, 22,原创 2020-07-11 22:43:57 · 265 阅读 · 0 评论 -
js系列-number类型详解
#定义 //字面量方式 let a = 11; //对象方式 let b = new Number(11); console.log(typeof a);//number console.log(typeof b);//object //对象方式取值 console.log(b.valueOf());//11#基本函...原创 2020-07-09 23:17:46 · 1720 阅读 · 0 评论 -
js系列-string字符串,模板字面量
#定义方式 //字面量 let str = 'abc'; console.log(str);//'abc' //对象方式 let strob = new String('abc'); console.log(strob);//String('abc')两种定义方式区别:1.类型不同 //字面量 let str = 'ab...原创 2020-04-08 22:29:15 · 708 阅读 · 0 评论 -
js系列-基本类型和引用类型typeof和instanceof
最新的 ECMAScript 标准定义了 8种数据类型:7 种原始类型: Boolean Null Undefined Number BigInt String Symbol 和Object类型检测:typeof let num = 123; console.log(typeof num);//'number' let st...原创 2020-04-05 20:51:56 · 219 阅读 · 0 评论 -
js系列-let,const,var定义变量
首先说明几点:1.js是弱类型语言,即值决定变量的类型2.命名规范:变量名以字母、$、_ 开始,后跟字母、数字、_。3.不能使用关键字:比如true、if、while、class等。变量声明的4种方式:1.不加声明符:web = 'monkey';2.var声明符:var web = 'monkey';3.let声明符: let web = 'monkey';4...原创 2020-03-30 21:18:07 · 383 阅读 · 0 评论