`
xdlliutao
  • 浏览: 38871 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Javascript面试题解析

阅读更多

Javascript的一些面试题让很多同学感到头疼,下面就根据兄弟连教育(www.lampbrother.net

)毕业学员面试遇到的面试题,给大家做一个简单的分享,希望对初入职场的你们有一些帮助:Javascript面试题解析。



第一题

/*

   解析:

     + 优先级大于 ?

   此题等价于: 'Value is true' ? 'Something' : 'Nothing'

   所以结果是:'Something'

*/

var val = 'smtg';

console.log('Value is ' + (val === 'smtg') ?'Something' : 'Nothing');



第二题

/*

*解析:

*    typeof 返回一个表示类型的字符串

typeof的结果请看下面:

**type**         **result**

Undefined   "undefined"

Null        "object"

Boolean     "boolean"

Number      "number"

Symbol      "symbol"

Hostobject Implementation-dependent

Function    "function"

Object      "object"



instanceof运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上

           

所以输出["object",false]

*/

functiontwo(){

console.info([typeofnull, null instanceof Object]); //["object", false]



第三题

/*

   [JavaScript中的稀疏数组与密集数组][1]

  

    解析:

      一般来说,JavaScript中的数组是稀疏的,也就是说,数组中的元素之间可以有空隙

      其实在javascript中并没有常规的数组,所有的数组其实就是一个对象。

     javascript的数组根本没有索引,因为索引是数字,而js中数组的索引是string,

      arr[1]其实就是arr["1"],给arr["1000"] =1,arr.length也会自动变为1001.

      这些表现的根本原因就是,JavaScript中的对象就是字符串到任意值的键值对.注意键只能是字符串.

  

    看一下 Array.prototype.filter 的部分代码:

  

    var t =Object(this);

    var len =t.length >>> 0;

    if (typeoffun !== 'function') {

      thrownew TypeError();

    }

    var res =[];

    varthisArg = arguments.length >= 2 ? arguments[1] : void 0;

    for (var i= 0; i < len; i++) {

      if (i int) { // 注意这里!!!

        varval = t[i];

        if(fun.call(thisArg, val, i, t)) {

         res.push(val);

        }

      }

    }

    从上面可知filter对数组进行遍历时,会首先检查这个索引值是不是数组的一个属性.测试一下:

   console.info(0 in ary); //true

   console.info(1 in ary); //true

   console.info(4 in ary); //false

   console.info(10 in ary); // false

    也就是说3~9的索引根本没有是初始化

  

    所以答案:[];

*/

var ary = [0,1,2];

ary[10] = 10;

console.info(ary.filter(function(x) { return x ===undefined;}));



第四题

/*

    解析:

        y 被赋值到全局. x 是局部变量. 所以打印 x 的时候会报 ReferenceError

  

*/

(function(){

  var x = y =1;

})();

console.log(y); // 1

console.log(x); // error



第五题

/*

    解析:

        当函数参数涉及到 any rest parameters,

        anydefault parameters or any destructured parameters 的时候,

        这个 arguments 就不在是一个 mapped arguments object 了.....,

        所以答案是12,这个需要好好体会一下

*/

function sidEffecting(ary) {

  ary[0] =ary[2];

}

function bar(a,b,c=3) {

  c = 10

sidEffecting(arguments);

  return a + b+ c;

}

bar(1,1,1);


分享到:
评论

相关推荐

    JavaScript面试题阿里巴巴JavaScript面试题 阿里巴巴

    ### JavaScript面试题解析 #### 一、ES6的新语法 ES6(ECMAScript 6)是JavaScript语言标准的一个重要版本,它引入了许多新的特性和语法改进,旨在提高开发效率和代码可读性。以下是一些重要的新特性: 1. **let ...

    JavaScript面试题集锦

    "JavaScript面试题集锦详解" 这篇文章涵盖了JavaScript的多个方面,包括eval函数、window和document对象、null和undefined的区别、数组的map方法、事件机制、use strict模式等。 eval函数 eval函数可以将字符串...

    腾讯面试题解析.pdf

    腾讯面试题解析.pdf 本资源是一份详细的腾讯面试题解析文档,涵盖了 Android 面试题、网络基础、常用三方库、算法基础等多个方面的知识点。下面是对该文档的详细解析: 计算机基础面试题 在计算机基础面试题部分...

    javascript 的面试题

    ### JavaScript面试题解析 #### 一、单选题解析 **1. 以下哪条语句会产生运行错误** - **选项分析**: - A. `var obj=( );` 正确答案。圆括号 `()` 通常用于函数调用或者创建对象字面量时的包裹,此处使用空的圆...

    前端工程师javascript面试题

    ### 前端工程师JavaScript面试题解析 #### 题目一:客户端Web应用程序生命周期的两个阶段是什么? **解析:**客户端Web应用程序的生命周期主要分为两个阶段:加载阶段(Loading Phase)与运行阶段(Execution ...

    CSS+JavaScript面试题.docx

    【CSS+JavaScript面试题解析】 1. HTML 中定义表格的宽度用 `80px` 与 `80%` 的区别在于,`80px` 定义的是一个固定宽度,表示表格的宽度为80个像素;而 `80%` 是相对宽度,表示表格的宽度占其父元素宽度的80%,会...

    javascript的经典面试题汇总

    根据给定的信息,我们将深入分析并提取出与JavaScript面试题相关的知识点。 ### 一、单选题 #### 1.... - **选项A**: `var obj = ();...以上是根据题目要求整理的JavaScript面试题知识点及解析。希望对准备面试...

    2022年最新(腾讯)前端面试题真题解析

    本资源“2022年最新(腾讯)前端面试题真题解析”汇聚了最新的腾讯前端面试题,旨在帮助求职者更好地准备面试,提升成功入职的可能性。 面试题的解析通常会涵盖以下几个关键领域: 1. **基础概念**:面试题会涉及...

    JavaScript 43 道面试题及答案.docx

    JavaScript 面试题解析 本文将对 JavaScript 43 道面试题及答案进行详细解析,涵盖变量提升、暂时死区、块作用域、事件执行机制、this 关键字等多个方面。 1. 变量提升与暂时死区 在 JavaScript 中,变量的赋值...

    javaScript面试题

    JavaScript 是一种广泛应用于网页和网络应用的脚本...以上内容涵盖了JavaScript面试中常见的知识点,这些基础和进阶知识是每个前端开发者都需要掌握的。理解并熟练运用它们,对于解决实际问题和提升开发效率至关重要。

    一套完整的javascript面试题(含有答案)

    JavaScript是一种广泛应用于Web开发的...以上是对这套JavaScript面试题的解析,涵盖的知识点全面,适合准备JavaScript面试的开发者进行自我检测和学习。理解并掌握这些知识点,对于提升JavaScript编程能力大有裨益。

    javascript面试题

    ### JavaScript面试题解析 #### 1. 求y和z的值是多少? 代码中定义了两个函数`add`,但是第二个函数覆盖了第一个函数。在JavaScript中,函数的声明会被提升到作用域的顶部,因此实际上执行的是第二个`add`函数。...

    2024高频前端面试题 JavaScript

    通过阅读,读者将能够理解JavaScript的核心概念,学会如何回答常见的JavaScript面试题。目标是帮助读者建立对JavaScript面试的基本理解,为后续的面试准备和实际面试打下坚实的基础。 【其他说明】 文章采用通俗易懂...

    JavaScript面试题汇总,内含答案

    ### JavaScript面试题知识点详解 #### 一、单选题知识点 **1. 语句运行错误** - **选项解析:** - A. `var obj = ( );`:这是一个空的函数调用,但在没有定义具体函数的情况下直接使用括号会引发语法错误。 - B...

    2022年最新(阿里)前端面试题真题解析

    这份"2022年最新(阿里)前端面试题真题解析"资源旨在为应聘者提供最新的面试准备指南,帮助他们更好地理解面试官可能提出的问题以及期望的答案。以下是对这些面试题目的详细解析,涵盖了多个核心的前端知识点。 一、...

    JavaScript最新2021年面试题,高级面试题及附答案解析.md

    JavaScript最新2021年面试题,高级面试题及附答案解析.md

    javascript面试题、练习题

    ### JavaScript核心概念与面试题详解 #### 一、基础语法与数据类型 - **知识点**: - **基本数据类型**:了解JavaScript的基本数据类型对于理解变量存储和使用至关重要。JavaScript中有六种基本数据类型:Number...

Global site tag (gtag.js) - Google Analytics