JavaScript
Great_Eagle
这个作者很懒,什么都没留下…
展开
-
LRU缓存淘汰算法
来源公众号:算法面试题简介 LRU,最近最少使用算法,即当要对数据进行淘汰时,先将最近最久未使用的数据淘汰(亦说最近最久未使用算法),是一种缓存淘汰算法。 意义:大家知道计算机的内存是有限的,当我们对一些数据一直缓存而不淘汰的话,那么内存总会被占满的,特别是服务器,造成的后果是可怕的。 应用场景:内存的页面淘汰、站内搜索关键字的缓存淘汰(详见:《如何应对...原创 2018-10-14 10:15:48 · 2648 阅读 · 0 评论 -
百度面试题之求数组最大值
来源公众号:算法面试题上周末作者刚到百度进行了面试,今天对面试过程中的一道算法题进行梳理讲解。希望对大家有所帮助! 点评:此题实质上是二分查找的变形题目。 代码实现 下面是作者用JavaScript实现的代码,仅供参考!(建议大家自己动手实现一遍) 1//参数a...原创 2018-10-22 17:52:01 · 1414 阅读 · 0 评论 -
优先级队列(头条面试题)
来源:微信公众号:算法面试题 扫码开启算法之旅 //实现一个优先级队列,此队列具有enqueue(val,prior)和dequeue()两种操作,分别代表入队和出队。//其中enqueue(val,prior)第一个参数val为为值,第二个参数prior为优先级(prior越大,优先级越高),优先级越高越先出队//dequeue()出队操作,...原创 2018-10-17 20:33:10 · 806 阅读 · 0 评论 -
超级次方取模问题
/** * @param {number} a * @param {number[]} b * @return {number} */var superPow = function(a, b) { if(b == null || b.length === 0) return 1; function powMod(x, y) { let res = 1; for(let i...原创 2018-11-02 22:25:46 · 474 阅读 · 0 评论 -
循环左移数组元素
//逆序函数function reverse(arr, left, right) { let temp; while(left < right) { //两数交换 temp = arr[left]; arr[left] = arr[right]; arr[right] = temp; //左下标+1,右下标-1 left++; right--; }}...原创 2018-11-18 20:51:03 · 498 阅读 · 0 评论 -
分数转小数
JavaScript: //a,b均为整数,b不为0//返回字符串,代表分数的小数表示function divide(a, b) { //能整除直接返回 if(a % b === 0) return a / b; //不能整除分两种情况,结果是有限小数,结果是无限循环小数 //sign,存储结果正负号 let sign = ""; if(a > 0 &&...原创 2018-11-12 19:28:03 · 1071 阅读 · 0 评论 -
什么是洗牌算法
公众号:扫码开启算法之旅 //对数组中的元素进行随机重新排列,并返回//arr:数组function shuffle(arr) { for(let i = arr.length - 1; i >= 0; i--) { //随机从0-i中选择一个下标 let randomIndex = Math.floor(Math.random() * (i + 1)); //将...原创 2018-12-05 17:21:32 · 241 阅读 · 0 评论 -
如何求根号2
欢迎关注公众号:算法面试题问题 小E最近找实习的时候,被面试官问了这样一道题:如何求根号2的值? 小E没能答上来,回来后向老师请教。 思路 点评:以上介绍了二分法和牛顿迭代法来求解根号2,另外我们还可以通过泰勒公式法来求解。很多朋友可能会问,我们经常调用的Math库中sqrt(x...原创 2018-12-03 21:51:36 · 3783 阅读 · 0 评论 -
什么是RSA算法
详情关注公众号:算法面试题 //返回a的p次方对n取模的值function superPow(a, p, n) { let b = String(p).split("").map(item => Number(item)); function powMod(x, y) { let res = 1; for(let i = 0; i < y; i++) { ...原创 2018-12-25 22:43:17 · 386 阅读 · 0 评论 -
正则表达式的exec方法与字符串的match方法比较
当正则表达式有全局属性时let s = "12mm13mm14";let reg = /(\d)+/g;//全局let res1, res2;while(res1 = reg.exec(s)) { console.log(res1);}res2 = s.match(reg);console.log(res2);//[ '12', '2', index: 0, input: '...原创 2018-09-27 20:38:50 · 215 阅读 · 0 评论 -
Promise解析
思想: 在执行本Promise的方法(每个方法都对应着下一个Promise)的时候,将下一个Promise的方法(全部方法)加入到任务队列,其中,最后的Promise的方法为空。两个数组:成功时要执行的方法数组_doneCallbacks,失败时要执行的方法数组_failCallbacks。注:根据本Promise方法的执行情况,决定下一个Promise执行哪个数组中的方法(_doneCa...原创 2018-08-31 20:59:22 · 245 阅读 · 0 评论 -
深入响应式原理
现在是时候深入一下了!Vue 最独特的特性之一,是其非侵入性的响应式系统。数据模型仅仅是普通的 JavaScript 对象。而当你修改它们时,视图会进行更新。这使得状态管理非常简单直接,不过理解其工作原理同样重要,这样你可以回避一些常见的问题。在这个章节,我们将进入一些 Vue 响应式系统的底层的细节。如何追踪变化当你把一个普通的 JavaScript 对象传给 Vue 实例的 data ...转载 2018-08-19 21:44:49 · 304 阅读 · 0 评论 -
解释性语言和编译性语言
解释性语言和编译性语言的定义:计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。解释性语言的定义:解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低。现代解...转载 2018-07-19 21:33:41 · 174 阅读 · 0 评论 -
JS中一些重要的实例与类对应关系
alert(Object.prototype.toString.call(new Object()));//[object Object] alert(Object.prototype.toString.call(new Object(8)));//[object Number] alert(JSON...原创 2018-07-20 23:52:44 · 312 阅读 · 0 评论 -
Js中获取对象属性的几种方法解析
for-in枚举在使用for-in循环时,返回的是所有能够通过对象访问的、可枚举的属性,其中既包括存在于实例中的属性,也包括存在于原型中的属性,屏蔽了原型中不可枚举属性的实例属性也会在for-in循环中返回。<script type="text/javascript"> function Person(name, sex) { this.name = name;...原创 2018-07-23 03:49:58 · 5578 阅读 · 0 评论 -
浅谈 js中parseInt函数的解析
alert(Number(2.5)); //2.5 alert(parseInt(2.5)); //2 alert(parseInt("-2.5dd"));//-2 alert(parseInt("+2.5dd"));//2 alert(parseInt("12kj")); //12 alert(parseInt("09",8));//0 alert(p...转载 2018-07-28 12:09:45 · 378 阅读 · 0 评论 -
forEach与for-in的坑爹地方
var arrCheck = new Array(100 + 1); arrCheck[4]=undefined; for(var i in arrCheck){ arrCheck[i]=false; console.log(1);//1,只输出1次 } console.log(arrCheck);//[empty × 4, false, e...原创 2018-08-10 02:25:30 · 487 阅读 · 0 评论 -
JS严格模式
严格模式主要有以下限制:变量必须声明后再使用 函数的参数不能有同名属性,否则报错 不能使用with语句 不能对只读属性赋值,否则报错 不能使用前缀 0 表示八进制数,否则报错 不能删除不可删除的属性,否则报错 不能删除变量delete prop,会报错,只能删除属性delete global[prop] eval不会在它的外层作用域引入变量 eval和arguments不能被重...原创 2018-08-18 03:17:55 · 314 阅读 · 0 评论 -
面试中的高级数据结构之跳表
微信公众号:算法面试题 扫码开启算法之旅总结:跳表具有如下性质:(1) 由很多层结构组成(2) 每一层都是一个有序的链表(3) 最底层(第0层)的链表包含所有元素(4) 如果一个元素出现在第i层中,则它在第0到第i-1层也都会出现 (5) 跳表是一种随机化的数据结构(通过掷硬币的过程可以看出)点评:跳表是一种应用广泛的数据结构,著名的Redis与Leve...原创 2019-01-13 01:20:11 · 545 阅读 · 0 评论