随笔分类 -  Javascript

摘要:场景:vue后台管理系统项目嵌入其他项目 一、iframe引入其他项目地址 <iframe ref="newScreen" @load="sendMessage" frameborder="0" :src="url" width="100%" height="100%" id="ysOpenDevi 阅读全文
posted @ 2021-09-22 18:26 盼星星盼太阳 阅读(4404) 评论(1) 推荐(0)
摘要:话不多说,上图 推荐的应用场景 defer 1. defer只适用于外联脚本,如果script标签没有指定src属性,只是内联脚本,不要使用defer 2. 如果有多个声明了defer的脚本,一般会按顺序下载和执行 3. defer脚本一般会在DOMContentLoaded事件之前执行 如果你的脚 阅读全文
posted @ 2021-09-07 17:37 盼星星盼太阳 阅读(79) 评论(0) 推荐(0)
摘要:手写call Function.prototype.myCall = function(context, ...args) { // 解构context 与arguments if(typeof this !== 'function') { // this 必须是函数 throw new TypeE 阅读全文
posted @ 2021-08-06 15:35 盼星星盼太阳 阅读(28) 评论(0) 推荐(0)
摘要:第一层 - 绑定在原型上的方法 由于 function xxx 的原型链 指向的是 Function.prototype , 因此我们在调用 xxx.bind 的时候,调用的是 Function.prototype 上的方法。 Function.prototype._bind = function( 阅读全文
posted @ 2021-08-06 15:03 盼星星盼太阳 阅读(112) 评论(0) 推荐(0)
摘要:一、作用域和变量 全局作用域:当浏览器打开页面时,浏览器会给当前JS代码提供一个可以执行的运行环境,那么这个环境就是全局作用域。 一个页面只对应一个全局作用域;在当前的全局作用域,浏览器给当前作用域提供了全局的对象叫window; JS是单线程的,每次只能执行一行代码。 在JS中只要遇到报错,代码立 阅读全文
posted @ 2021-06-28 17:44 盼星星盼太阳 阅读(141) 评论(0) 推荐(0)
摘要:场景:在离开页面的时候,需要弹出提示框,让用户确定是否真的要关闭网页。如果用户真的需要关闭网页,则让浏览器向后台提交信息。 浏览器页面事件基础 页面加载时只执行 onload 事件。 页面关闭时,先 onbeforeunload 事件,再 onunload 事件。 页面刷新时先执行 onbefore 阅读全文
posted @ 2021-06-22 14:49 盼星星盼太阳 阅读(2916) 评论(0) 推荐(0)
摘要:前言 说明一点,__proto__属性的两边是各由两个下划线构成,实际上,该属性在ES标准定义中的名字应该是[[Prototype]],具体实现是由浏览器代理自己实现,谷歌浏览器的实现就是将[[Prototype]]命名为__proto__,大家清楚这个标准定义与具体实现的区别即可(名字有所差异,功 阅读全文
posted @ 2021-04-19 14:43 盼星星盼太阳 阅读(277) 评论(0) 推荐(1)
摘要:Event Loop是什么 event loop是一个执行模型,在不同的地方有不同的实现。浏览器和NodeJS基于不同的技术实现了各自的Event Loop。 浏览器的Event Loop是在html5的规范中明确定义。 NodeJS的Event Loop是基于libuv实现的。可以参考Node的官 阅读全文
posted @ 2021-04-13 17:39 盼星星盼太阳 阅读(375) 评论(0) 推荐(1)
摘要:一、需要处理哪些异常? 对于前端来说,我们可做的异常捕获还真不少。总结一下,大概如下: JS 语法错误、代码异常 AJAX 请求异常 静态资源加载异常 Promise 异常 Iframe 异常 跨域 Script error 崩溃和卡顿 二、Try-Catch 的误区 try-catch 只能捕获到 阅读全文
posted @ 2021-04-02 17:05 盼星星盼太阳 阅读(616) 评论(0) 推荐(0)
摘要:为什么要有垃圾回收 在C语言和C++语言中,我们如果想要开辟一块堆内存的话,需要先计算需要内存的大小,然后自己通过malloc函数去手动分配,在用完之后,还要时刻记得用free函数去清理释放,否则这块内存就会被永久占用,造成内存泄露。 但是我们在写JavaScript的时候,却没有这个过程,因为人家 阅读全文
posted @ 2021-03-11 13:57 盼星星盼太阳 阅读(186) 评论(0) 推荐(0)
摘要:一、执行上下文 执行上下文(Execution Context)是ECMAScript规范中用来描述 JavaScript 代码执行的抽象概念,规定了当前代码执行的环境(当前执行代码片段中的变量、函数、作用域链等),所有执行上下文又叫执行环境。 全局上下文(整个js文件被加载执行建立的上下文,必有且 阅读全文
posted @ 2021-03-11 11:56 盼星星盼太阳 阅读(494) 评论(0) 推荐(1)
摘要:一、前端JS生成指定长度ID 随机数转化字符串,拼接时间戳 genID(length){ // 随机字符串+时间戳 var str = ''; for ( ; str.length < length; str += Math.random().toString(36).substr(2) ); re 阅读全文
posted @ 2021-01-28 17:01 盼星星盼太阳 阅读(127) 评论(0) 推荐(0)
摘要:一、语法 arr.reduce(callback,[initialValue]) 这个方法接收两个参数: 1.要执行的函数 要执行的函数中也可传入参数,分别为 prev:上次调用函数的返回值 cur:当前元素 index:当前元素索引 arr:被遍历的数组 2.函数迭代的初始值 例子: eg1: v 阅读全文
posted @ 2021-01-21 17:24 盼星星盼太阳 阅读(4487) 评论(0) 推荐(1)
摘要:数组扁平化(又称数组降维) MDN:flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回; const test = ["a", ["b", "c"], ["d", ["e", ["f"]], "g"]] // flat不传参数时,默认扁平化 阅读全文
posted @ 2021-01-21 14:40 盼星星盼太阳 阅读(256) 评论(0) 推荐(0)
摘要:一、数据类型 五种简单数据类型(值类型)包括:String、Number、Boolean、undefined、Null一种复杂数据类型(引用类型):Obeject(包括 function、Array、Date) ES6 中新增了一种 Symbol 。这种类型的对象永不相等,即始创建的时候传入相同的值 阅读全文
posted @ 2020-12-11 14:11 盼星星盼太阳 阅读(212) 评论(0) 推荐(0)
摘要:Promise 对象有几个组合方法,可以将多个承诺合并成一个进行处理,分别是 Promise.all, Promise.race, Promise.allSettled, Promise.any Promise.all(values) 其中参数 values 是一个可迭代对象,比如数组 在后文中使用 阅读全文
posted @ 2020-12-09 15:29 盼星星盼太阳 阅读(755) 评论(0) 推荐(0)
摘要:一、JS数组sort方法 1.基本用法: // 升序 return a - b; // 倒序 return b - a; var arr = [2,34,242,12,3,2,23,3];// 定义一个数组 arr.sort(function (a,b) { // a -->代表每一次执行匿名函时候 阅读全文
posted @ 2020-12-03 15:52 盼星星盼太阳 阅读(1192) 评论(0) 推荐(0)
摘要:转化二维数组实现轮播图 const arrHandle = (arr, targetNums = 3) => { //原始数组长度 const _length = arr.length; //计算需要循环次数 const _splitNums = _length % targetNums 0 ? _ 阅读全文
posted @ 2020-10-15 18:46 盼星星盼太阳 阅读(436) 评论(0) 推荐(0)
摘要:时间对象常用函数 // 获取指定年份最后一天 function getLastDay(year, month) { var new_year = year; //取当前的年份 var new_month = month++; //取下一个月的第一天,方便计算(最后一天不固定) if (month > 阅读全文
posted @ 2020-08-01 15:50 盼星星盼太阳 阅读(228) 评论(0) 推荐(0)
摘要:场景:传入三个参数2020-02-02,2020-08-01,31,开始日期,结束日期,分隔日期 要求:从开始日期到结束日期,按每个月31号划分成日期段(不足的自动按照当月最后一天) dataMonth(value1, value2, day) { var getDate = function (s 阅读全文
posted @ 2020-08-01 15:35 盼星星盼太阳 阅读(1448) 评论(0) 推荐(0)