
JavaSript
文章平均质量分 66
灯灯登登
杂学派,热衷各种技术
展开
-
柯里化技术
函数柯里化场景:1.参数复用 2.兼容性检测参数复用function uri_curring(protocol) { return function (hostname, pathname) { return `${protocol}${hostname}${pathname}`; }}const uri_https = uri_curring('https://');const url1 = uri_https('pku.com', '/index.j原创 2021-04-07 14:51:12 · 140 阅读 · 0 评论 -
javascript之this指向
this绑定规则原则:谁调用了这个函数,那么this就会指向谁默认绑定默认绑定下,this会指向window对象(可以看作默认是由window对象调用了这个函数var c = 3;(function () { var c = 2; console.log(this.c) //3})()隐式绑定如果是一个对象调用一个方法,那么this隐式绑定到这个对象上(对象调用了函数var a = 2;const obj = { a: "1", sayHi: functi原创 2021-04-07 14:38:53 · 115 阅读 · 0 评论 -
JavaScript之执行机制
导读之前对js的执行机制一知半解,导致使用setTimeout和setInterval函数时老是犯一些比较低级的错误。这篇文章就来系统地总结一下,先来看代码const s = new Date();const fn = () => { let i = 0; while (i < 2000000000) { i++; } console.log(Math.floor(new Date() - s) / 1000, "秒");}setInte原创 2021-02-25 17:00:11 · 198 阅读 · 0 评论 -
ES6之尾调用优化
在ES5之前,考虑以下代码function fac() { let a; return dosomething();}参照以上代码,尾调用的意义是指,函数作为某个函数的最后一个语句进行调用。ES5以前会像其他语言(C++,java)一样,会为dosomething函数分配一个新的栈帧,调用完成后,再返回fac函数,最后输出结果。这样新分配的栈帧就会带来额外的开销,严重影响程序的性能。ES6的尾调用优化就不会新分配栈,而是会用dosomething的函数栈,但满足尾调用优化要满足三个条件尾原创 2021-02-24 15:39:14 · 185 阅读 · 0 评论 -
JS高级程序设计读书笔记【2~4章】
JavaScript高级程序设计出第四版了,之前草率地看过一遍第三版,补个坑,把这本书读完,本专题转化为自己理解的知识,作为读书笔记记录。加载js加入<script>标签即可,script标签所含的元素可查阅MDN或者使用DOM来操作,动态加入<script>标签加载位置:<head>内:把CSS和JS放到了一起,不许把JS代码下载完成后,才开始旋绕页面,这会导致页面渲染的明显延迟问题。<body>内:通常是放在body内,这样加载速度更快&原创 2021-02-19 11:18:09 · 115 阅读 · 0 评论