本文主要给大家分享了关于javascript作用域面试题的相关内容,分享出来供大家参考学习,下面来一起看看吧。 一、作用域: 在了解作用域之前,首先需要明白一些基础概念:每一个变量、函数都有其作用的范围,超出作用不得使用,这个叫做作用域。 二、全局变量、局部变量: 1.全局变量: (1)在全局范围内声明的变量,如var a=1; (2)只有赋值没有声明的值,如a=2; (注:如果a=2在函数环境中,也是全局变量)2.局部变量: ...
问题1: 作用域(Scope) 考虑以下代码: (function() {var a = b = 5; })(); console.log(b);控制台(console)会打印出什么? 答案:5 如果 严格模式开启,那么代码就会报错 ” Uncaught ReferenceError: b is not defined” 。请记住,如果这是预期的行为,严格模式要求你显式地引用全局作用域。所以,你需要像下面这么写: (function() {use strict;var a = window.b = 5; })(); console.log(b);问题2: 创建 “原生(native)” 方...
共 5024 字,读完需 6 分钟,速读需 2 分钟,本文首发于知乎专栏前端周刊。写在前面,笔者在做面试官这 2 年多的时间内,面试了数百个前端工程师,惊讶的发现,超过 80% 的候选人对下面这道题的回答情况连及格都达不到。这究竟是怎样神奇的一道面试题?他考察了候选人的哪些能力?对正在读本文的你有什么启示?且听我慢慢道来 不起眼的开始 招聘前端工程师,尤其是中高级前端工程师,扎实的 JS 基础绝对是必要条件,基础不扎实的工...
前言 如果面试题按类型来分,主要涉及到“技术”与“非技术”两大类,技术类别下涉及到的子类别有: 移动 & PC端布局类JavaScript 核心基础类衍生框架类项目应用类这四大类别的面试题若按出现频率来划分,则面试时 100% 会问到的题型有:“移动端&PC端布局类、JavaScript 核心基础类”。本次选择这两类中难度更高一些的 “JavaScript 核心基础类” 面试题,进行了分析和解答,供面试前准备。 特别说明: 假如你在面试时被这些题型卡...
最近群里有人发了下面这题: 实现一个函数,运算结果可以满足如下预期结果: add(1)(2) // 3 add(1, 2, 3)(10) // 16 add(1)(2)(3)(4)(5) // 15对于一个好奇的切图仔来说,忍不住动手尝试了一下,看到题目首先想到的是会用到高阶函数以及 Array.prototype.reduce() 高阶函数(Higher-order function):高阶函数的意思是它接收另一个函数作为参数。在 javascript 中,函数是一等公民,允许函数作为参数或者返回值传递。 得到了下面这...
前言 本文不是讲述最新的JavaScript库,日常的开发实践或任何新的 ES6 函数。 相反,在讨论JavaScript时,经常会在面试中出现这3个问题。 我自己被问到过这些问题,我的朋友告诉我他们也被到问过。 当然,你在JavaScript面试前不应该只学习这3个问题 – 这里有很多 方法 可以让你更好地准备即将到来的面试 – 但面试官可能会问到下面是3个问题,来判断你对JavaScript语言的理解和DOM的掌握程度。 让我们开始吧!请注意,我们将在下...
本文实例讲述了几道JS搜狐面试题。分享给大家供大家参考,具体如下: 一、实现一个遍历数组或对象里所有成员的迭代器。 var each = function(obj, fn){//+++++++++++答题区域+++++++++++//+++++++++++答题结束+++++++++++ }; try{var data1 = [4,5,6,7,8,9,10,11,12];var data2 = {"a": 4,"b": 5,"c": 6};console.group(data1);each(data1, function(o){if( 6 == this )return true;else if( 8 == this )return false;console.log(...
首先,事情开始于一道面试题 <script> function A(){ this.name=""; this.age=18; } var a1=new A(); a1.name="尼古拉斯屌"; var a2=a1; a2.name="blue"; console.log(a1.name); //变成blue了 var str1="尼古拉斯屌"; var str2=str1; str2="blue"; console.log(str1); //没变,还是尼古拉斯屌 </script> 简单来说 a2=a1; a2.name=xxx; //a1.name会变 str2=str1; str2=xxx; //str1不会变欢迎觉得废话太多的同学直接翻到最后看“技术...
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...
有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) 全局变量是指在任何地方都可以访...