美文网首页让前端飞前端全栈开发
面试中常见JS开发测试题

面试中常见JS开发测试题

作者: a333661d6d6e | 来源:发表于2018-10-02 19:45 被阅读2次

    在前端很少有机会接触到算法,大多都交互性的操作,然而从各大公司面试来看,算法依旧是考察的一方面。下面这篇文章就给大家总结了在前端JS面试中常见的测试题问题,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    前言
    学习数据结构与算法对于工程师去理解和分析问题都是有帮助的。如果将来当我们面对较为复杂的问题,这些基础知识的积累可以帮助我们更好的优化解决思路。下面罗列在前端面试中经常撞见的几个问题吧。


    image.png

    1、介绍js的基本数据类型

    Undefined、Null、Boolean、Number、String

    2、s有哪些内置对象?

    数据封装类对象:Object、Array、Boolean、Number 和 String

    其他对象:Function、Arguments、Math、Date、RegExp、Error

    3.this对象的理解

    this总是指向函数的直接调用者(而非间接调用者);

    如果有new关键字,this指向new出来的那个对象;

    在事件中,this指向触发这个事件的对象,特殊的是,IE中的attachEvent中的this总是指向全局对象Window;

    4.eval是做什么的?

    它的功能是把对应的字符串解析成JS代码并运行;

    应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行)。

    由JSON字符串转换为JSON对象的时候可以用eval,var obj =eval(‘(‘+ str +’)’);

    5.DOM怎样添加、移除、移动、复制、创建和查找节点

    // 创建新节点

    createDocumentFragment() //创建一个DOM片段

    createElement() //创建一个具体的元素

    createTextNode() //创建一个文本节点

    // 添加、移除、替换、插入

    appendChild()

    removeChild()

    replaceChild()

    insertBefore() //在已有的子节点前插入一个新的子节点

    // 查找

    getElementsByTagName() //通过标签名称

    getElementsByName() //通过元素的Name属性的值(IE容错能力较强,会得到一个数组,其中包括id等于name值的)

    getElementById() //通过元素Id,唯一性

    6.null和undefined的区别?

    null是一个表示”无”的对象,转为数值时为0;undefined是一个表示”无”的原始值,转为数值时为NaN。

    undefined:

    (1)变量被声明了,但没有赋值时,就等于undefined。

    (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

    (3)对象没有赋值的属性,该属性的值为undefined。

    (4)函数没有返回值时,默认返回undefined。

    null:

    (1) 作为函数的参数,表示该函数的参数不是对象。

    (2) 作为对象原型链的终点。

    7.new操作符具体干了什么呢?

    (1)创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。

    (2)属性和方法被加入到 this 引用的对象中。

    (3)新创建的对象由 this 所引用,并且后隐式的返回 this 。

    8.JSON 的了解?

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript的一个子集。数据格式简单, 易于读写, 占用带宽小。

    格式:采用键值对,例如:{‘age’:’12’, ‘name’:’back’}

    9.call() 和 apply() 的区别和作用?

    apply()函数有两个参数:第一个参数是上下文,第二个参数是参数组成的数组。如果上下文是null,则使用全局对象代替。

    如:function.apply(this,[1,2,3]);

    call()的第一个参数是上下文,后续是实例传入的参数序列。

    如:function.call(this,1,2,3);

    10.如何获取UA?

    function whatBrowser() {

    document.Browser.Name.value=navigator.appName;

    document.Browser.Version.value=navigator.appVersion;

    document.Browser.Code.value=navigator.appCodeName;

    document.Browser.Agent.value=navigator.userAgent;

    }
    本次给大家推荐一个最后给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
    对web开发技术感兴趣的同学,欢迎加入Q群:864305860,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。
    最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

    相关文章

      网友评论

        本文标题:面试中常见JS开发测试题

        本文链接:https://www.haomeiwen.com/subject/rosaoftx.html