1.求y和z的值是多少?<script type="text/javascript"> var x = 1; var y = 0; var z = 0; function add(n){n=n+1;} y = add(x); function add(n){n=n+3;} z = add(x); </script>都为undefined,因为没有返回值。 2.javascript是面向对象的,怎么体现javascript的继承关系?使用prototype来实现。 3.javascript怎样选中一个checkbox,怎样设置它无效?document.all.cb1[0].disabled = true;4.form中的input可以设置为readonly和dis...
今天遇到关于javascript原型的一道面试题,现分析下: 原题如下: function A(){ } function B(a){this.a = a; } function C(a){if(a){ this.a = a;} } A.prototype.a = 1; B.prototype.a = 1; C.prototype.a = 1;console.log(new A().a); console.log(new B().a); console.log(new C(2).a);分析: console.log(new A().a); //new A()为构造函数创建的对象,本身没有a属性,所以向它的原型去找,发现原型的a属性的属性值为1,故...
Part1 手写代码 现场手写代码是现在面试中很常见的一类面试题,考察基础的数据结构与算法能力。 1 数组去重的实现 基本数组去重Array.prototype.unique = function(){var result = [];this.forEach(function(v){if(result.indexOf(v) < 0){result.push(v);}});return result; }?利用hash表去重,这是一种空间换时间的方法 Array.prototype.unique = function(){var result = [],hash = {};this.forEach(function(v){if(!hash[v]){h...
翻到了这篇解释Javascript quiz的文章quiz-legend,反正没事儿,就想搬过来供大家学习、理解、背诵、批判。 问题一 (function(){return typeof arguments;//"object" })(); arguments是一个Array-like对象,对应的就是传入函数的参数列表。你可以在任何函数中直接使用该变量。 typeof操作符只会返回string类型的结果。参照如下列表可知对应不同数据,typeof返回的值都是什么:由此我们推断出,typeof arguments是object 问题二 va...
No1.语法和类型 1.声明定义 变量类型:var,定义变量;let,定义块域(scope)本地变量;const,定义只读常量。 变量格式:以字母、下划线“_”或者$符号开头,大小写敏感。 变量赋值:声明但未赋值的变量在使用时值为undefined,未声明的变量直接使用会抛异常。 未赋值变量作计算:结果为NaN。例如: var x, y = 1; console.log(x + y); //结果为NaN,因为x没有赋值。 2.作用域 变量作用域:在ES6之前没有块声明域,变量作用...
有100格台阶,可以跨1步可以跨2步,那么一个有多少种走法; 今天电话面试。遇到一道算法问题,然后瞬间一脸懵逼; 然后机智的我,自作聪明的想到如果一个人每次都走1步,那么最多100步,每次走2步最少50步;然后明显跑题了。。。还好对方及时把我打断了。。。不然我估计要对着这玩意一直死脑经。。。一路走到黑。。 然后回到家了。拿着偶的mac,然后静静的思考,终于写出来了 var Stairs = new step(); function step(){this.n1=1;...
在js中,经常会遇到在函数里调用其它函数的情况,这时候会有 fn() 这种调用方式,还有一种是 return fn() 这种调用方式,一些初学者经常会被这两种方式给绕晕了。这里用一个优雅的面试题来分析一下两种方式的不同之处。 var i = 0; function fn(){i++;if(i < 10){fn();}else{return i;} }var result = fn(); console.log(result); 这是一道隐藏了坑的面试题,看似很简单,大部分人可能想都不想就答出了10。而实际上运行可知打印出...
小编觉得这道题对理解JavaScript 作用域还是很有帮助的,特此又把自己的解题思路梳理了一遍,希望对其它人有所帮助。 首先看下面试题:var arr = [1, 2, 3];for (var i = 0, j; j = arr[i++];) {console.log(j);}console.log(---------);console.log(i);console.log(---------);console.log(j);console.log(---------);在解题前,我们先回顾下 JavaScript 中,变量域相关的知识。 全局变量(Global) 全局变量是指在任何地方都可以访...
此题是我出的一套前端面试题中的最后一题,用来考核面试者的JavaScript的综合能力,很可惜到目前为止的将近两年中,几乎没有人能够完全答对,并非多难只是因为大多面试者过于轻视他。 题目如下: function Foo() {getName = function () { alert (1); };return this; } Foo.getName = function () { alert (2);}; Foo.prototype.getName = function () { alert (3);}; var getName = function () { alert (4);}; function getName(...
面试题是招聘公司和开发者都非常关心的话题,公司希望通过它了解开发者的真实水平和细节处理能力,而开发者希望能够最大程度地展示自己的水平(甚至超常发挥)。本文提供了众多前端开发面试题,无论是招聘方还是应聘方都值得一看! 前言年前刚刚离职了,分享下我曾经出过的一道面试题,此题是我出的一套前端面试题中的最后一题,用来考核面试者的JavaScript的综合能力,很可惜到目前为止的将近两年中,几乎没有人能够完全答对,并非...
下面这7个JavaScript面试问题是你应该在面试前先问的。否则,很有可能会浪费你的时间。 1.创建JavaScript对象的两种方法是什么? 这是一个非常简单的问题,如果你用过JavaScript的话。你至少得知道一种方法。但是,尽管如此,根据我的经验,也有很多自称是JavaScript程序员的人说不知道如何回答这个问题。使用“new”关键字来调用函数。open/close花括号。var o = {}; 你也可以继续提问,“使用new关键字,什么情况下创建对象?”但...
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。可以通过 O...
问题 代码A function 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...
由工作中演变而来的面试题 这是一个我工作当中的遇到的一个问题,似乎很有趣,就当做了一道题去面试,发现几乎没人能全部答对并说出原因,遂拿出来聊一聊吧。 先看题目代码: 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)...
面试题目 一、代码如下: 请定义这样一个函数 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 r...