而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正确,如有错误或有更好的解法,还请斧正。 附上第二篇:BAT及各大互联网公司2014前端笔试面试题--Html,Css篇 前面几题是会很基础,越下越有深度。 初级Javascript:1.JavaScript是一门什么样的语言,它有哪些特点?没有标准答案。 2.JavaScript的数据类型都有什么?基本数据类型:String,boolean,Number,Undefined, Null引用数据类型:Object(Array,Date,RegEx...
面试题目 一、代码如下:请定义这样一个函数 function repeat (func, times, wait) { } 这个函数能返回一个新函数,比如这样用 var repeatedFun = repeat(alert, 10, 5000) 调用这个 repeatedFun ("hellworld") 会alert十次 helloworld, 每次间隔5秒二、代码如下: 写一个函数stringconcat, 要求能 var result1 = stringconcat("a", "b") result1 = "a+b" var stringconcatWithPrefix = stringconcat.prefix("hellworld"); var res...
由工作中演变而来的面试题 这是一个我工作当中的遇到的一个问题,似乎很有趣,就当做了一道题去面试,发现几乎没人能全部答对并说出原因,遂拿出来聊一聊吧。 先看题目代码:function fun(n,o) {console.log(o)return {fun:function(m){return fun(m,n);}}; } var a = fun(0); a.fun(1); a.fun(2); a.fun(3);//undefined,,, var b = fun(0).fun(1).fun(2).fun(3);//undefined,,, var c = fun(0).fun(1); c.fun(2); c.fun(3);//unde...
问题 代码Afunction fun(n,o){console.log(o);return {fun:function(m){//[2]return fun(m,n);//[1]}} }var a=fun(0); a.fun(1); a.fun(2); a.fun(3); var b=fun(0).fun(1).fun(2).fun(3); var c=fun(0).fun(1); c.fun(2); c.fun(3);求出程序输出 这是一个闭包测试题 转换为等价代码 return返回的对象的fun属性对应一个新建的函数对象,这个函数对象将形成一个闭包作用域,使其能够访问外层函数的变量n及外层函数fun,为了不将fun函...
1、使用 typeof bar === "object" 判断 bar 是不是一个对象有神马潜在的弊端?如何避免这种弊端? 使用 typeof 的弊端是显而易见的(这种弊端同使用 instanceof):let obj = {}; let arr = [];console.log(typeof obj === 'object'); //true console.log(typeof arr === 'object'); //true console.log(typeof null === 'object'); //true从上面的输出结果可知,typeof bar === "object" 并不能准确判断 bar 就是一个 Object。可以通...
下面这7个JavaScript面试问题是你应该在面试前先问的。否则,很有可能会浪费你的时间。 1.创建JavaScript对象的两种方法是什么? 这是一个非常简单的问题,如果你用过JavaScript的话。你至少得知道一种方法。但是,尽管如此,根据我的经验,也有很多自称是JavaScript程序员的人说不知道如何回答这个问题。使用“new”关键字来调用函数。open/close花括号。var o = {}; 你也可以继续提问,“使用new关键字,什么情况下创建对象?”但...
本文实例讲述了JS常见面试试题。分享给大家供大家参考,具体如下: JavaScript面试题总结 1,首先是数组去重算法:给一个数组,去掉重复值 (function() {var arr = [1, 2, 3, 3, 4, ];function unique() {var result = [];var tem = {};for (var i = 0; i < arr.length; i++) {if (!tem[arr[i]]) {result.push(arr[i]);tem[arr[i]] = 1;}}return result;} })();2,多维数组,至少3层的遍历,将数组整合一维数组,网上给出的方案 //...
JavaScript 是一种有趣的语言,我们都喜欢它,因为它的性质。浏览器是JavaScript的主要运行的地方,两者在我们的服务中协同工作。JS有一些概念,人们往往会对它掉以轻心,有时可能会忽略不计。原型、闭包和事件循环等概念仍然是大多数JS开发人员绕道而行的晦涩领域之一。正如我们所知,无知是一件危险的事情,它可能会导致错误。 接下来,来看看几个问题,你也可以试试想想,然后作答。 问题1:浏览器控制台上会打印什么? var a =...
前言本文针对目前常见的面试题,仅提供了相应的核心原理及思路,部分边界细节未处理。后续会持续更新,希望对你有所帮助。1. 实现一个call函数// 思路:将要改变this指向的方法挂到目标this上执行并返回 Function.prototype.mycall = function (context) {if (typeof this !== function) {throw new TypeError(not funciton)}context = context || windowcontext.fn = thislet arg = [...arguments].slice(1)let result = context....
问题1:JavaScript 中 undefined 和 not defined 的区别JavaScript 未声明变量直接使用会抛出异常:var name is not defined,如果没有处理异常,代码就停止运行了。 但是,使用typeof undeclared_variable并不会产生异常,会直接返回 undefined。 var x; // 声明 x console.log(x); //output: undefined console.log(typeof y); //output: undefined console.log(z); // 抛出异常: ReferenceError: z is not defined问题2:下面的代...
导读这两天的GitHub Trending repositories被一个名叫 javascript-questions的项目霸榜了,项目中记录了一些JavaScript题目。我大概从头到尾看了一遍,都是一些基础的题目,我大概花了半个小时(有些题很简单,可以一扫而过)把这些题做完了,虽然题目很简单,但是每道题都对应一个知识点,如果这个知识点你没有接触过,那肯定会做错,如果你接触过这些知识点,那么这些题对你来说就很容易。 建议大家也花半个小时来做一做,以便查...
1. 实现一个new操作符 new操作符做了这些事: 它创建了一个全新的对象。它会被执行[[Prototype]](也就是__proto__)链接。它使this指向新创建的对象。。通过new创建的每个对象将最终被[[Prototype]]链接到这个函数的prototype对象上。如果函数没有返回对象类型Object(包含Functoin, Array, Date, RegExg, Error),那么new表达式中的函数调用将返回该对象引用。function New(func) {var res = {};if (func.prototype !== null) {re...
前言我本来是打算写一篇co源码精读(为啥读co,因为它短),然鹅发现自己存在一系列基础问题没有搞透彻,打算写一个js基础系列文章,总结自己的理解(copy),希望与你在学习路上一同进步。首先问问自己当面试官问到js中的同步和异步,这个问题该怎么回答?理解一个问题无非是what-why-howjs同步和异步问题是什么-->为什么会产生异步问题-->如何解决。 一、JavaScript起源技术的出现,和应用场景密切相关的。JavaScript诞生于1995年。当...
前言本文主要从应用来讲数组api的一些骚操作;如一行代码扁平化n维数组、数组去重、求数组最大值、数组求和、排序、对象和数组的转化等;上面这些应用场景你可以用一行代码实现?1.扁平化n维数组1.终极篇[1,[2,3]].flat(2) //[1,2,3] [1,[2,3,[4,5]].flat(3) //[1,2,3,4,5] [1,[2,3,[4,5]]].toString() //1,2,3,4,5 [1[2,3,[4,5[...]].flat(Infinity) //[1,2,3,4...n] Array.flat(n)是ES10扁平数组的api,n表示维度,n值为Infinity时维...
1.1-隐式转换介绍 在js中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算 这种无需程序员手动转换,而由编译器自动转换的方式就称为隐式转换 例如1 > "0"这行代码在js中并不会报错,编译器在运算符时会先把右边的"0"转成数字0`然后在比较大小 1.2-隐式转换规则 转成string类型: +(字符串连接符) 2..转成number类型:++/--(自增自...