美文网首页
面试宝典3

面试宝典3

作者: 逍遥g | 来源:发表于2017-07-11 22:27 被阅读0次
    面试宝典3

    1、说说你对作用域链的理解

    作用域链的作用是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到 window 对象即被终止,作用域链向下访问变量是不被允许的。

    2、创建ajax过程

    (1)创建XMLHttpRequest对象,也就是创建一个异步调用对象.

    (2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.

    (3)设置响应HTTP请求状态变化的函数.

    (4)发送HTTP请求.

    (5)获取异步调用返回的数据.

    (6)使用JavaScript和DOM实现局部刷新.

    3、渐进增强和优雅降级

    渐进增强 :针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。

    优雅降级 :一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。

    4、Javascript垃圾回收方法

    标记清除(mark and sweep)

    这是JavaScript最常见的垃圾回收方式,当变量进入执行环境的时候,比如函数中声明一个变量,垃圾回收器将其标记为“进入环境”,当变量离开环境的时候(函数执行结束)将其标记为“离开环境”。

    垃圾回收器会在运行的时候给存储在内存中的所有变量加上标记,然后去掉环境中的变量以及被环境中变量所引用的变量(闭包),在这些完成之后仍存在标记的就是要删除的变量了

    引用计数(reference counting)

    在低版本IE中经常会出现内存泄露,很多时候就是因为其采用引用计数方式进行垃圾回收。引用计数的策略是跟踪记录每个值被使用的次数,当声明了一个 变量并将一个引用类型赋值给该变量的时候这个值的引用次数就加1,如果该变量的值变成了另外一个,则这个值得引用次数减1,当这个值的引用次数变为0的时 候,说明没有变量在使用,这个值没法被访问了,因此可以将其占用的空间回收,这样垃圾回收器会在运行的时候清理掉引用次数为0的值占用的空间。

    在IE中虽然 JavaScript 对象通过标记清除的方式进行垃圾回收,但BOM与DOM对象却是通过引用计数回收垃圾的, 也就是说只要涉及 BOM 及DOM就会出现循环引用问题。

    5、es6的了解

    新增模板字符串(为JavaScript提供了简单的字符串插值功能)、箭头函数(操作符左边为输入的参数,而右边则是进行的操作以及返回的值 Inputs=>outputs 。)、 for-of (用来遍历数据—例如数组中的值。) arguments 对象可被不定参数和默认参数完美代替。 ES6 将 promise 对象纳入规范,提供了原生的 Promise 对象。增加了 let 和 const 命令,用来声明变量。增加了块级作用域。let命令实际上就增加了块级作用域。ES6规定, var 命令和 function 命令声明的全局变量,属于全局对象的属性; let 命令、 const 命令、 class 命令声明的全局变量,不属于全局对象的属性。。还有就是引入 module 模块的概念

    6、js继承方式及其优缺点

    原型链继承的缺点

    一是字面量重写原型会中断关系,使用引用类型的原型,并且子类型还无法给超类型传递参数。

    借用构造函数(类式继承)

    借用构造函数虽然解决了刚才两种问题,但没有原型,则复用无从谈起。所以我们需要原型链+借用构造函数的模式,这种模式称为组合继承

    组合式继承

    组合式继承是比较常用的一种继承方法,其背后的思路是 使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承。这样,既通过在原型上定义方法实现了函数复用,又保证每个实例都有它自己的属性。

    7、jquery和javascript中网页常用计算宽高的方法

    jquery:

    获取浏览器显示区域的高度 : $(window).height();

    获取浏览器显示区域的宽度 :$(window).width();

    获取页面的文档高度 :$(document).height();

    获取页面的文档宽度 :$(document).width();

    获取滚动条到顶部的垂直高度 :$(document).scrollTop();

    获取滚动条到左边的垂直宽度 :$(document).scrollLeft();

    javascript:

    网页可见区域宽: document.body.clientWidth

    网页可见区域高: document.body.clientHeight

    网页可见区域宽: document.body.offsetWidth (包括边线的宽)

    网页可见区域高: document.body.offsetHeight (包括边线的高)

    网页正文全文宽: document.body.scrollWidth

    网页正文全文高: document.body.scrollHeight

    网页被卷去的高: document.body.scrollTop

    网页被卷去的左: document.body.scrollLeft

    网页正文部分上: window.screenTop

    网页正文部分左: window.screenLeft

    屏幕分辨率的高: window.screen.height

    屏幕分辨率的宽: window.screen.width

    屏幕可用工作区高度: window.screen.availHeight

    屏幕可用工作区宽度: window.screen.availWidth

    相关文章

      网友评论

          本文标题:面试宝典3

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