随笔分类 -  javascript

摘要:一、new一个函数和直接调用函数的区别 不使用new,也就是普通的函数调用而已,所以若是函数本身没有返回值,普通的函数调用没有什么意义 如: var person=new Person();//person是一个对象 var person = Person();//这只是一次普通的函数调用并赋值而已 阅读全文
posted @ 2020-09-30 18:22 vickylinj 阅读(1842) 评论(0) 推荐(1)
摘要:一、全局环境下 在全局环境下,this 始终指向全局对象(window), 无论是否严格模式; console.log(this.document document); // true // 在浏览器中,全局对象为 window 对象: console.log(this window); // tr 阅读全文
posted @ 2020-09-30 17:28 vickylinj 阅读(384) 评论(0) 推荐(0)
摘要:在 web 开发中,我们通常需要对输入的内容进行校验。这段代码虽然执行起来没有什么问题,但是会产生非直接输入,比方说我们输入“树莓派”,中间过程会输入拼音,每次输入字母都会触发input事件,然而当中文输入完成之前,都属于非直接输入。 未禁止非直接输入 可以看到,当我们输入 “树莓派” 时,触发了9 阅读全文
posted @ 2020-09-11 17:01 vickylinj 阅读(2552) 评论(0) 推荐(0)
摘要:首先看一段代码: 打印顺序是什么? 正确答案:script start, script end, promise1, promise2, setTimeout 其中涉及到事件循环(event loop),宏任务(macrotask),微任务(microtask) 一、事件循环 Event Loop 阅读全文
posted @ 2020-09-01 15:36 vickylinj 阅读(433) 评论(0) 推荐(1)
摘要:一、协程: 传统的编程语言,早有异步编程的解决方案(其实是多任务的解决方案)。其中有一种叫做“协程”(coroutine),意思是多个线程互相协作,完成异步任务。 协程有点像函数,又有点像线程,它的运行流程大致如下: 第一步,协程 A 开始执行; 第二步,协程 A 执行到一半,进入暂停,执行权转移到 阅读全文
posted @ 2020-08-20 18:04 vickylinj 阅读(206) 评论(0) 推荐(0)
摘要:概念:只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数; 先看一个简单例子,add函数接受 2 个参数(或者多个),addX函数接受 1 个参数。换而言之,所谓"柯里化",就是把一个多参数的函数,转化为单参数函数。将一个函数转换为一个新的函数: // 非柯里化 function ad 阅读全文
posted @ 2020-08-18 21:57 vickylinj 阅读(756) 评论(0) 推荐(0)
摘要:一、arguments.callee的作用:返回正被执行的 Function 对象 arguments 的主要用途是保存函数参数, 但这个对象还有一个名叫 callee 的属性,返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文,这有利于匿名函数的递归或者保证函数的 阅读全文
posted @ 2020-08-18 21:28 vickylinj 阅读(583) 评论(0) 推荐(0)
摘要:语法: Array.prototype.concat.apply([],array); 示例: concat 如果concat方法的参数是一个元素,该元素会被直接插入到新数组中;如果参数是一个数组,该数组的各个元素将被插入到新数组中; apply apply方法会调用一个函数,apply方法的第一个 阅读全文
posted @ 2020-07-29 21:10 vickylinj 阅读(1452) 评论(0) 推荐(0)
摘要:HTML 的DOM querySelector()方法可以不需要额外的jQuery等支持,也可以方便的获取DOM元素,语法跟jQuery类似。 获取文档中id=”container”的元素 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" 阅读全文
posted @ 2020-07-28 19:25 vickylinj 阅读(8286) 评论(0) 推荐(0)
摘要:console.log(“detail:”+this.props); 输出结果如下图: 【解决方法】: 改为如下即可(原因:字符串+将调用toString()函数将对象专为字符串了,所以不能展开详情)。 console.log(this.props); 或 console.log("detail:" 阅读全文
posted @ 2020-07-28 18:03 vickylinj 阅读(1965) 评论(0) 推荐(0)
摘要:需求: 原理: 拖动效果的实现基本都是dom操作来实现的,通过拖动分隔线,计算分隔线与浏览器边框的距离(left),来实现拖动之后的不同宽度的计算;当拖动分隔线1时,计算元素框left和mid;当拖动分隔线2时,计算元素框mid和right;同时设置元素框最小值以防止元素框拖没了(其实是被遮住了)。 阅读全文
posted @ 2020-07-25 13:31 vickylinj 阅读(1470) 评论(0) 推荐(0)
摘要:这是一组非常容易弄混的参数,都是描述某个盒子元素的宽度、高度以及上或左的距离偏移量。 1. offsetWidth / offsetHeight(不包括外边距) offsetWidth:返回元素的宽度(content+padding+border)offsetHeight:返回元素的高度(conte 阅读全文
posted @ 2020-07-24 20:37 vickylinj 阅读(270) 评论(0) 推荐(0)
摘要:vue源码中编译部分有下面一段代码,里面用到了with: export function generate ( ast: ASTElement | void, options: CompilerOptions ): CodegenResult { const state = new CodegenS 阅读全文
posted @ 2020-07-16 17:32 vickylinj 阅读(556) 评论(0) 推荐(0)
摘要:学习《ECMAScript6入门》中的模板字符串的案例中看见了new Function()创建函数的语法: let str = 'return ' + '`Hello ${name}!`'; let func = new Function('name', str); func('Jack') // 阅读全文
posted @ 2020-07-15 18:37 vickylinj 阅读(992) 评论(0) 推荐(0)
摘要:一、方法定义: apply:将函数绑定到某个对象,apply()不会创建一个函数,函数体内的this对象的值会被绑定到传入apply()中的第一个参数的值,例如:f.apply(obj),实际上可以理解为obj.f(),这时f函数体内的this指向的是obj; call:将函数绑定到某个对象,cal 阅读全文
posted @ 2020-07-01 17:19 vickylinj 阅读(3019) 评论(0) 推荐(0)
摘要:1、 将两个数组转成字符串比较 1.1但是发现他们只是顺序不相等也被当做不相等 1.2、我们可以先把数组排序按照从小到大的顺序sort()函数 这样的就是"1,2,3"=="1,2,3"结果是相等的。 2、如果数组里的元素是标量,非object类型,可以使用==比较数组里的元素: var scala 阅读全文
posted @ 2020-06-17 17:30 vickylinj 阅读(19637) 评论(0) 推荐(1)
摘要:在 symbols 诞生之前,对象的键只能是字符串。假如我们试着使用一个非字符串当做对象的键,就会被转换为字符串,如下所示: const obj = {}; obj.foo = 'foo'; obj['bar'] = 'bar'; obj[2] = 2; obj[{}] = 'someobj'; c 阅读全文
posted @ 2020-06-03 15:35 vickylinj 阅读(2511) 评论(0) 推荐(0)
摘要:转自:https://www.cnblogs.com/mopagunda/p/8328084.html 1.Object.assign(target,source1,source2,...) 该方法主要用于对象的合并,将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对 阅读全文
posted @ 2020-06-03 11:54 vickylinj 阅读(923) 评论(0) 推荐(1)
摘要:转自:https://www.jianshu.com/p/8fe1382ba135 大纲: 1.对象的定义与赋值 经常使用的定义与赋值方法obj.prop =value或者obj['prop']=value 2.Object.defineProperty()语法说明 Object.definePro 阅读全文
posted @ 2020-05-30 12:00 vickylinj 阅读(274) 评论(0) 推荐(0)
摘要:语法:Array.from(new Set(arr))示例: function unique10(arr) { //Set数据结构,它类似于数组,其成员的值都是唯一的 return Array.from(new Set(arr)); // 利用Array.from将Set结构转换成数组 } cons 阅读全文
posted @ 2020-03-30 11:41 vickylinj 阅读(2830) 评论(0) 推荐(0)