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

浙公网安备 33010602011771号