严格模式和非严格模式之间的区别 1、在严格模式中禁止使用with语句。2、在严格模式中,所有的变量都要先声明,如果给一个未声明的变量、函数、函数参数、catch从句参数或全局对象的属性赋值,将会抛出一个引用错误(在非严格模式中,这种隐式声明的全局变量的方法是给全局对象新添加一个新属性)。3、在严格模式中,调用的函数(不是方法)中的一个this值是undefined。(在非严格模式中,调用的函数中的this值总是全局对象)
《深入浅出node.js》——setImmediate()与process.nextTick() setImmediate()方法与process.nextTick()方法十分类似,都是将回调函数延迟执行。但是两者之间其实是有细微差别的: process.nextTick()中的回调函数执行的优先级要高于setImmediate()。这里的原因在于事件循环对观察者的检查是有先后顺序的,process.nextTick()属于idle观察者,setImmediate()属于chec
细说setTimeout/setImmediate/process.nextTick的区别 node.js中的非IO的异步API提供了四种方法,分别为setTimeOut(),setInterval(),setImmediate()以及process.nextTick(),四种方法实现原理相似,但达到的效果略有区别:一、事件循环Event Loop首先,我们需要了解node.js的基于事件循环的事件模型,正是因为它才使得node.js中回调函数十分普遍,也正是基于此,no
JavaScript:['1','2','3'].map(parseInt)问题解析 最近碰到了[‘1’,’2’,’3’].map(parseInt)这种看似不起眼陷阱却极大的问题。这乍一看,感觉应该会输出[1,2,3]。但是,实际上并不是我们想的这样。你可以现在打开console,看看输出的结果。出乎意料结果竟然是[1,NaN,NaN].至于为什么是这样,下面一步一步的解释。parseInt()parseInt是JS的一个内置函数,它可以将
尝试解析js面试题(一) 解析:1、Foo.getName(); //21)结果执行的是Foo对象的一个叫做getName()的属性,而1、4、5中的getName都是作为函数存在,所以可以排除1、4、52)剩下两个中,2是Foo对象自身的属性,3是Foo对象原型链上的属性,而自身属性的优先级高于原型链上的属性,所以执行结果是22、getName(); //41)结果执行的是getN
操作系统内存管理的一些算法 在内存管理中存在这两类算法:一类是内存分配算法,一类是页面置换算法内存分配算法:是指怎么从连续的逻辑地址空间上分配内存地址给进程。常见内存分配算法及优缺点如下: (1)首次适应算法。使用该算法进行内存分配时,从空闲分区链首开始查找,直至找到一个能满足其大小要求的空闲分区为止。然后再按照作业的大小,从该分区中划出一块内存分配给请求者,余下的空闲分区仍留在空闲分区链中。
什么是闭包?闭包的优缺点? 闭包(closure)是javascript的一大难点,也是它的特色。很多高级应用都要依靠闭包来实现。1、变量作用域要理解闭包,首先要理解javascript的特殊的变量作用域。变量的作用域无非就两种:全局变量和局部变量。javascript语言的特别之处就在于:函数内部可以直接读取全局变量,但是在函数外部无法读取函数内部的局部变量。注意点:在函数内部声明变
cookie和session 作者:任云肖链接:https://www.zhihu.com/question/19786827/answer/151015728Session是什么用途定义Session和cookie的区别与联系session的实现原理浏览器禁用cookie后如何实现sessionURL地址重写如何通过URL地址重写实现session的id传输session和co
缺页中断——FIFO、LRU、OPT这三种置换算法 1. 缺页中断 在请求分页系统中,可以通过查询页表中的状态位来确定所要访问的页面是否存在于内存中。每当所要访问的页面不在内存时,会产生一次缺页中断,此时操作系统会根据页表中的外存地址在外存中找到所缺的一页,将其调入内存。 缺页本身是一种中断,与一般的中断一样,需要经过4个处理步骤: 1. 保护CPU现场 2. 分析中断原因 3. 转入缺页中断处理程序进行
常见数据结构查找、插入、删除、遍历性能比较 常见排序算法的比较(图) 排序法 平均时间最差情形稳定度额外空间备注冒泡 O(n2) O(n2) 稳定O(1)n小时较好交换 O(n2) O(n2)不稳定O(1)n小时较好选择
n级阶梯,每次走一步或两步,问最多有多少种走法 题目:n级阶梯,每次走一步或两步,问最多有多少种走法。思路:递归思想 假设f(n)代表n级阶梯的走法,f(0)=1,f(1)=1。 当n大于1时,假设第一步走1级,剩下n-1级阶梯,f(n-1)种走法;假设第一步走2级,剩下n-2级阶梯,f(n-2)种走法,所以f(n)=f(n-1)+f(n-2)。代码:function step(n){//
47种常见的浏览器兼容性问题大汇总 浏览器兼容性问题大汇总Ø JavaScript 31. HTML对象获取问题 32. const问题 33. event.x与event.y问题 34. window.location.href问题 35. frame问题 36. 模态和非模态窗口问题 37. firefox与IE的父元素(parentElement)的区别 38
探讨跨域请求资源的几种方式 探讨跨域请求资源的几种方式什么是跨域JSONPproxy代理corsxdr 由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。具体可以查看下表(来源) JSONP 这种方式主要是通过动态插入一个script标签。浏览器对script的资源引用没有同源限制,同时资源加载到页面后会立即执行(没
HTML渲染过程详解 转自:http://www.cnblogs.com/dojo-lzz/p/3983335.html 无意中看到寒冬关于前端的九个问题,细细想来我也只是对第一、二、九问有所了解,正好也趁着这个机会梳理一下自己的知识体系。由于本人对http协议以及dns对url的解析问题并不了解,所以这里之探讨url请求加载到浏览器端时,浏览器对html的解析到呈现过程,后来经过几位
前端面试题——js闭包 要求:利用闭包原理模拟计数器function count(){ //...}var f = count();f(); //输出1f(); //输出2f(); //输出3...答案:function count(){ var i=0; return function(){ console.log(++i); }}
正则表达式中 test、exec、match 方法区别 一、String对象支持四种利用正则表达式的方法,分别为search(),replace(),match(),split()1、search()方法以正则表达式作为参数,返回第一个与之匹配的子串开始的位置,如果没有任何与之匹配的子串,它返回-1。 2、replace()方法执行检索和替换操作,它的第一个参数是正则表达式,第二个参数是要进行替换的字符串或者闭包。 3、 mat
理解Javascript_07_理解instanceof实现原理 在《Javascript类型检测》一文中讲到了用instanceof来用做检测类型,让我们来回顾一下: 那么instanceof的这种行为到底是如何实现的呢,现在让我们揭开instanceof背后的迷雾。 instanceof原理照惯例,我们先来看一段代码:1234567
前端精选文摘:BFC 神奇背后的原理 BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用处(如清浮动,防止 margin 重叠等)。虽然我知道如何利用 BFC 解决这些问题,但当别人问我 BFC 是什么,我还是不能很有底气地解释清楚。于是这两天仔细阅读了CSS2.1 spec 和许多文章来全面地理解BFC。一、BFC是什么? 在解释 BFC 是什么之前,需要
详解css盒模型与外边距重叠 盒模型的构成之前写了一篇关于如何解决css的外边距重叠问题,可是后来发现,我有些本末倒置了,对于一个问题的正确的处理流程就应该是先发现问题,分析问题,解决问题,所以我在这篇文章中就对下css的盒模型,什么是外边距重叠,为什么会发生外边距重叠,以及怎样计算外边距重叠一一进行解读,旨在透过现象看本质,达到掌握的目的.文章可能会有点长,为节省时间大家可以根据掌握的情况浏览阅读.1.结构