最近在做面试题的过程中偶然碰到关于call函数的问题。然后再百度上查了查。偶然看到一篇文章:JavaScript中的call、apply、bind深入理解 抛开其对call函数基本概念的介绍还有其他原理的介绍。其中一段函数吸引了我。function fn1(){console.log(1); } function fn2(){console.log(2); }fn1.call(fn2); //输出 1fn1.call.call(fn2); //输出 2 对于 fn1.call(fn2);我能够理解,这段代码仅仅 使得 fn1对象的this指向了fn2;...
一、问题的由来 学懂 JavaScript 语言,一个标志就是理解下面两种写法,可能有不一样的结果。var obj = {foo: function () {} };var foo = obj.foo;// 写法一 obj.foo()// 写法二 foo()上面代码中,虽然obj.foo和foo指向同一个函数,但是执行结果可能不一样。请看下面的例子。var obj = {foo: function () { console.log(this.bar) },bar: 1 };var foo = obj.foo; var bar = 2;obj.foo() // 1 foo() // 2这种差异的原因,就在于函数...
JS核心原理 模块二 深入数组篇 JS实现各种数组排序 思考: 1、数据结构中稳定的排序算法有哪些?不稳定的排序算法有哪些? 2、时间复杂度和空间复杂度分别代表了什么?时间复杂度 & 空间复杂度 时间复杂度:说的更多的是通过O(nlogn)以及O(n)等来衡量,其实大多数时候我们对此并未建立形象的认知,到底哪一种算法更快、更好呢?空间复杂度:对一个算法在运行过程中临时占用存储空间大小的度量有的算法需要占用的临时工作单元数与解...
"不畏惧,不讲究,未来的日子好好努力"——大家好!我是小芝麻 (adsbygoogle = window.adsbygoogle || []).push({});标签:,,,,,,, 来源: https://www.cnblogs.com/hustshu/p/14725878.html
CommonJS模块化导出原理 本人前端小菜鸡一枚,文章用于记录自我学习的知识点、想法和思路,有不正确之处,希望各位大佬多多包涵,不吝赐教前言 CommonJS模块化导出底层原理一、CommonJS导出方式 //方式一: exports.a = "a" exports.b = function(){console.log("b函数") } //方式二: module.exports = {a:"a",b:function(){console.log("b函数")} }两种导出方式为何都可以得到同样的结果?exports 和 module.exports 是一样的吗?...
壹 ? 引 今天的题目来自LeetCode179. 最大数,题目描述如下:给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。 示例 1: 输入:nums = [10,2] 输出:"210"示例 2: 输入:nums = [3,30,34,5,9] 输出:"9534330"示例 3: 输入:nums = [1] 输出:"1"示例 4: 输入:nums = [10] 输出:"10"提示:1 <= nums.length <= 100 0...
冒泡排序介绍 冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序。 它是一种较简单的排序算法。它会遍历若干次要排序的数组,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾! 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止! 冒泡排序图文说明 var arr = [20,40,30,10,60,50...
一 New关键字:(https://github.com/mqyqingfeng/Blog/issues/2)New运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象类型之一 通过new实例的对象:具有访问构造函数里属性,访问构造函数原型对象里的属性。 New关键字是用来继承的(Web);面向对象的基础。 经典继承(借用构造函数方式):call与apply实现继承;var obj={ } 等同于 var obj=new Object( );? 二 new原理:https://juejin.im/entry/584a1c98ac50...
最近在写【重拾前端】系列,下面有几个快速通道,大家自取 【重识前端】原型/原型链和继承 【重识前端】闭包与模块 【重识前端】全面攻破this 【重识前端】一次搞定JavaScript的执行机制 【重识前端】什么是BFC、IFC、GFC 和 FFC 【重识前端】深入内存世界 【重识前端】暴走的异步编程 前言 老规矩,还是先了解一下什么是异步。异步其实是一个相对比较高级的一个概念。 通常来说,程序都是顺序执行,同一时刻只会发生一件事。如果一...
1.防抖 防抖原理: 原理参考楠丶的文章 事件响应函数在一段时间后才执行,如果在这段时间内再次调用,则重新计算执行时间。可理解为通过setTimeout的方式,在一定时间间隔内,将多次触发转变成一次触发。 应用场景: scroll时间滚动触发 搜索框输入查询 表单验证 按钮提交事件 浏览器窗口缩放 代码实现 可以参考B站Up主: 小野森森test() {console.log(1);}div.onmouseover = debounce(test); // test 是我们的一个回调函数// 三个...
JsBridge是Android Native原生和H5之间通信的桥梁,而且这种通信是双方互通的; H5调用Native方法:1.从H5页面通过JSBridge触发一个url scheme; (url scheme具体作用:可以用系统的OpenURI打开一个类似于url的链接(可拼入参数),然后系统会进行判断,如果是系统的url scheme,则打开系统应用,否则找看是否有app注册这种scheme,打开对应app); 2.Native页面捕获对应的url scheme,并对其进行分析拿到是属于哪一种回调函数的id后执行该...