这又是一个面试经典问题~/(ㄒoㄒ)/~~也是 ES5中众多坑中的一个,在 ES6 中可能会极大避免 this 产生的错误,但是为了一些老代码的维护,最好还是了解一下 this 的指向和 call、apply、bind 三者的区别。 this 的指向 在 ES5 中,其实 this 的指向,始终坚持一个原理:this 永远指向最后调用它的那个对象,来,跟着我朗读三遍:this 永远指向最后调用它的那个对象,this 永远指向最后调用它的那个对象,this 永远指向最后调用它的那...
本文主要给大家分享了关于javascript作用域面试题的相关内容,分享出来供大家参考学习,下面来一起看看吧。 一、作用域: 在了解作用域之前,首先需要明白一些基础概念:每一个变量、函数都有其作用的范围,超出作用不得使用,这个叫做作用域。 二、全局变量、局部变量: 1.全局变量: (1)在全局范围内声明的变量,如var a=1; (2)只有赋值没有声明的值,如a=2; (注:如果a=2在函数环境中,也是全局变量)2.局部变量: ...
今天在偶然间查看到了一段代码,代码使用了很短的篇幅完成了字符串统计相同字符次数这个经典面试题,其中用到了reduce这个方法,网上查了查,没有查到什么有价值的东西,导致浪费了我一些时间才看懂,现将我的思路整理如下: 原代码: var arr="qweqrq" var info= arr.split().reduce((a,b)=>(a[b]++ || (a[b]=1),a) ,{}) console.log(info)代码思路是这样的,先将字符串arr通过split方法切割成数组,然后使用reduce,这个方法干了什...
问题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)” 方...
我们去面试一般都有笔试,笔试题一般都会涉及到很多算法的东西。 不管你用的多不多,反正就是要会。不然笔试很难过。 就算是直接面试的,有时候也会遇到面试官直接叫你当场写个算法题出来这种情况。 因为笔试时间很有限,不会出很复杂的题目,所以笔试怎么出都不会离开下面这几种题。 废话不多说,下面来列出主要的几个算法题。 1.排序 一般都是给个数组然后排序,有的从小到大,有的从大到小。一定要看清楚。以下都是从小到大的排...
共 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的掌握程度。 让我们开始吧!请注意,我们将在下...
为啥要说这个东西?一道面试题就给我去说它的动机。 题如下: var bool = new Boolean(false); if (bool) {alert(true); } else {alert(false); }运行结果是true!!! 其实啥类型转换啊,操作符优先级啊,这些东西都是最最基本的。犀牛书上有详细的介绍。但我很少去翻犀牛书的前5章。。。 比如说优先级那块儿,很多书都教育我们,“不用去背诵优先级顺序,不确定的话,加括号就行了。“平常我们写代码时也确实这么做的。 但现实是...
JavaScript部分1、谈谈你对Ajax的理解?(概念、特点、作用) AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是指一种创建交互式网页应用的开发技术、改善用户体验,实现无刷新效果。 优点a、不需要插件支持 b、优秀的用户体验 c、提高Web程序的性能 d、减轻服务器和带宽的负担 缺点a、浏览器对XMLHttpRequest对象的支持度不足,几乎所有浏览器现在都支持 b、破坏浏览器“前进”、“后退”按钮的正常功能,...
前言 学习数据结构与算法对于工程师去理解和分析问题都是有帮助的。如果将来当我们面对较为复杂的问题,这些基础知识的积累可以帮助我们更好的优化解决思路。下面罗列在前端面试中经常撞见的几个问题吧。 Q1 判断一个单词是否是回文? 回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环。比如 mamam redivider .很多人拿到这样的题目非常容易想到用for 将字符串颠倒字母顺序然后匹...
本文实例讲述了几道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...