web前端面试系列 一 js闭包】的更多相关文章

一.什么是闭包? JavaScript高级程序设计第三版: 闭包是指有权访问另一个函数作用域中的变量的函数. 在js中定义在函数内部的子函数能够访问外部函数定义的变量,因此js内部函数就是一个闭包. 二.闭包的组成? 闭包由函数以及创建该函数的环境(创建该函数时所在作用域任何局部变量)所组成. 三. 闭包的作用是什么? 1. 允许函数与其操作的一些数据进行关联.(偏函数应用,函数柯里化) 2. 模拟私有方法.(模块模式) var Counter = (function() { var priva…
js中一切皆为对象,其中函数也是一种对象, 而每个函数都有一个prototype属性,其值也是一个对象. 一.prototype的作用 1. 在多个实例对象之间共享数据和方法. 2. 通过原型链实现继承. 二.原型链: 1. 关系到构造函数,原型对象,实例对象. 2. 每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而构造函数的实例对象都有一个指向原型对象的内部指针. 3. 如果让原型对象等于另一个构造函数的实例对象,则此时原型对象内部也包含一个指向另一个构造函数的原型对象的…
题目大概是这种: function outer(){ return inner; var inner = "a"; function inner(){}; inner = 9; } alert(typeof outer()); 当时的回答是结果是--function (回来測试结果也是一样) 本来的想法是,inner 在outer 运行的过程中,以下有一个函数声明,而函数声明会提升,也就是 JS 解析器会领先读取函数声明,假设不是声明函数而是定义一个变量,那结果就会是 undefine…
1. 思路:设置一个临时数组temp,然后遍历要去重的数组arr,如果arr中的元素能够在temp中找到,则跳过此元素,否则将此元素存入temp,最后返回temp. 实现一 function unique(arr){ var temp = []; var len = arr.length; for(var i = 0; i < len; i++){ if(temp.indexOf(arr[i]) === -1) temp.push(arr[i]); } return temp; } 实现二 fu…
一. 用两个栈模拟一个队列 思路一: 1. 一个栈s1作为数据存储,另一个栈s2,作为临时数据存储. 2. 入队时将数据压人s1 3. 出队时将s1弹出,并压人s2,然后弹出s2中的顶部数据,最后再将剩余数据弹出s2,并压人s1. 思路二: 1. 一个栈s1作为数据存储,另一个栈s2,作为临时数据存储. 2. 入队时,判断s1, 是否为空,如果不为空,则将数据直接压入s1, 如果为空,则将s2中的数据全部倒入s1,在将数据压人s1. 3. 出队时,判断s2, 是否为空,如果不为空,则直接弹出s2…
判断 js 类型的方式 1. typeof 可以判断出'string','number','boolean','undefined','symbol' 但判断 typeof(null) 时值为 'object'; 判断数组和对象时值均为 'object' 2. instanceof 原理是 构造函数的 prototype 属性是否出现在对象的原型链中的任何位置 function A() {} let a = new A(); a instanceof A //true,因为 Object.get…
实现 new 方法 /* * 1.创建一个空对象 * 2.链接到原型 * 3.绑定this值 * 4.返回新对象 */ // 第一种实现 function createNew() { let obj = {} // 1.创建一个空对象 let constructor = [].shift.call(arguments) // let [constructor,...args] = [...arguments] obj.__proto__ = constructor.prototype // 2.…
最近一段时间要毕业了,忙着找工作,见过不少笔试面试题,自己总结了一些加上网上找的一些整合了一下.答案暂时都东拼西凑出来了,但是还是先不发出来,一方面是答案并不是唯一的并且自己的答案不能保证对,另一方面希望看到本文的伙伴能自己去找答案,毕竟,技术只有自己真正理解了才是自己的东西,共勉. 小白第一次发文,恭请指点.PS(答案在这里) Web前端面试笔试题 Html+css 1.对WEB标准以及w3c的理解与认识. 2.Xhtml和html有什么区别. 3.css的引入方式有哪些?link和@impo…
JavaScript 介绍js的基本数据类型. Undefined.Null.Boolean.Number.String. ECMAScript 2015 新增:Symbol(创建后独一无二且不可变的数据类型 ) 介绍js有哪些内置对象? Object 是 JavaScript 中所有对象的父对象 数据封装类对象:Object.Array.Boolean.Number 和 String 其他对象:Function.Arguments.Math.Date.RegExp.Error 参考:http:…
今天面了百度的前端实习职位.一面.时间大概是50分钟.面试官是位很帅气的小伙子,非常友好的一个人.进门的时候他让我等一会,我瞄了一眼他的电脑屏幕,发现他在coding…… 9点50开始的面试. 面试官:自我介绍一下. 我:blablabla. 面试官:javascript的类型转换(比如"2"*1, "a"*1). 我:javascript会调用valueOf来转换为一个基本数据类型,在这种情况下,如果javascript不能通过valueOf转成一个number,…