Html5+js测试题

==============================================

1.谈谈你对js闭包的理解:

闭包是一个比较抽象的概念,尤其是对js新手来说.书上的解释实在是比较晦涩,对我来说也是一样.

但是他也是js能力提升中无法绕过的一环,几乎每次面试必问的问题,因为在回答的时候.你的答案的深度,对术语的理解以及js内部解释器的运作方式的描述,都是可以看出你js实际水平的.即使你没答对,也能让考官对你的水平有个评估.那么我先来说说我对js中的闭包的理解.

闭包是很多语言都具备的特性,在js中,闭包主要涉及到js的几个其他的特性:作用域链,垃圾(内存)回收机制,函数嵌套,等等.

在理解闭包以前.最好能先理解一下作用域链的含义,简单来说,作用域链就是函数在定义的时候创建的,用于寻找使用到的变量的值的一个索引,而他内部的规则是,把函数自身的本地变量放在最前面,把自身的父级函数中的变量放在其次,把再高一级函数中的变量放在更后面,以此类推直至全局对象为止.当函数中需要查询一个变量的值的时候,js解释器会去作用域链去查找,从最前面的本地变量中先找,如果没有找到对应的变量,则到下一级的链上找,一旦找到了变量,则不再继续.如果找到最后也没找到需要的变量,则解释器返回undefined.

了解了作用域链,我们再来看看js的内存回收机制,一般来说,一个函数在执行开始的时候,会给其中定义的变量划分内存空间保存,以备后面的语句所用,等到函数执行完毕返回了,这些变量就被认为是无用的了.对应的内存空间也就被回收了.下次再执行此函数的时候,所有的变量又回到最初的状态,重新赋值使用.但是如果这个函数内部又嵌套了另一个函数,而这个函数是有可能在外部被调用到的.并且这个内部函数又使用了外部函数的某些变量的话.这种内存回收机制就会出现问题.如果在外部函数返回后,又直接调用了内部函数,那么内部函数就无法读取到他所需要的外部函数中变量的值了.所以js解释器在遇到函数定义的时候,会自动把函数和他可能使用的变量(包括本地变量和父级和祖先级函数的变量(自由变量))一起保存起来.也就是构建一个闭包,这些变量将不会被内存回收器所回收,只有当内部的函数不可能被调用以后(例如被删除了,或者没有了指针),才会销毁这个闭包,而没有任何一个闭包引用的变量才会被下一次内存回收启动时所回收.

也就是说,有了闭包,嵌套的函数结构才可以运作,这也是符合我们的预期的.然后,闭包还有一些特性,却往往让程序员觉得很难理解.

看看下面一段代码.

var result=[];

function foo(){

var i= 0;

for (;i<3;i=i+1){

result[i]=function(){

alert(i)

}

}

};

foo();

result[0](); // 3

result[1](); // 3

result[2](); // 3

这段代码中,程序员希望foo函数中的变量i被内部循环的函数使用,并且能分别获得他们的索引,而实际上,只能获得该变量最后保留的值,也就是说.闭包中所记录的自由变量,只是对这个变量的一个引用,而非变量的值,当这个变量被改变了,闭包里获取到的变量值,也会被改变.

解决的方法之一,是让内部函数在循环创建的时候立即执行,并且捕捉当前的索引值,然后记录在自己的一个本地变量里.然后利用返回函数的方法,重写内部函数,让下一次调用的时候,返回本地变量的值,改进后的代码:

var result=[];

function foo(){

var i= 0;

for (;i<3;i=i+1){

result[i]=(function(j){

return function(){

alert(j);

};

})(i);

}

};

foo();

result[0](); // 0

result[1](); // 1

result[2](); // 2

在这里我再解释一下.这里用到了另外2个技术,立即调用的匿名函数和返回函数.也是初学者比较难以理解的部分.

-----------------------------------------------------------

2.谈谈你对Cookie的理解和优缺点:

3.html5浏览器本地存储有哪些?

4.web storage和cookie的区别?

5.cookie 和session 的区别:

6.display:none和visibility:hidden的区别?

7.position:absolute和float属性的异同

8.介绍一下box-sizing属性?

9.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?CSS3新增伪类有那些?

10.position的值, relative和absolute分别是相对于谁进行定位的?

11.CSS3有哪些新特性?

12.XML和JSON的区别?

13.说说你对语义化标签的理解?

14.网页设计常见兼容性问题有哪些,如何解决?

15.解释下浮动和它的工作原理?清除浮动的技巧

16.浮动元素引起的问题和解决办法?

17.DOM操作——怎样添加、移除、移动、复制、创建和查找节点

18.html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?

19.iframe的优缺点?

20.如何实现浏览器内多个标签页之间的通信?

21.请说出三种减少页面加载时间的方法

22.documen.write和 innerHTML的区别

23.sql注入原理

24.XSS原理及防范

25.XSS与CSRF有什么区别吗?

26.CSRF的防御

27.Flash、Ajax各自的优缺点,在使用中如何取舍?

28.GET和POST的区别,何时使用POST?

29.HTTP状态码

30.谈谈网页性能优化问题

html5动画测试题,Html5+js测试题相关推荐

  1. 如何实现HTML5动画页面?

    HTML5动画实现 HTML5动画实现可以通过以下两种方式. CSS3动画 ​ 动画是使元素从一种样式逐渐变化为另一种样式的效果,可以改变任意样式任意次数.通过百分比来规定变化发生的时间,或用关键词& ...

  2. 效果奇特的HTML5动画,12个效果奇特的HTML5动画赏析

    本文将为大家分享12个效果奇特的HTML5动画,HTML5强大的动画特性可以让你的网页变得更加生动和富有活力,交互性也会进一步得到提高.一起来看看下面的这些HTML5动画案例,每个案例都提供源代码下载 ...

  3. html5作品源码,码农网:12个效果奇特的HTML5动画赏析 | 附:源码演示

    本文由码农网 – 小峰原创,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将为大家分享12个效果奇特的HTML5动画,HTML5强大的动画特性可以让你的网页变得更加生动和富有活力,交互性 ...

  4. html测试大题代码,Html5+js测试题(示例代码)

    Html5+js测试题 ============================================== 1.谈谈你对js闭包的理解: 闭包是一个比较抽象的概念,尤其是对js新手来说.书上 ...

  5. Html5+js测试题(开发版)

    ------------------------------------------------ 1. 谈谈你对js闭包的理解: 使用闭包主要是为了设计私有的方法和变量.闭包的优点是可以避免全局变量的 ...

  6. Html5+js测试题【完整版】

    一.闭包的理解: 使用闭包主要是为了设计私有的方法和变量.闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露. 闭包三个特性: 1.函数嵌套函数 ; ...

  7. 数学方程式记录html5动画js特效

    下载地址数学方程式记录html5动画特效,基于canvas画布实现的特效. dd:

  8. animate cc开发html5游戏,使用Create.js与Adobe Animate CC制作H5落地页动画

    一.背景 在移动端,利用H5技术,可实现微杂志,微信邀请函,H5小游戏等营销互动等应用开发,本文将介绍一种Create.js与Adobe Animate CC结合来制作H5落地页的方法. 通过两者结合 ...

  9. html5 地图效果,html5 echarts图表插件炫光的分布地图动画特效

    特效描述:图表插件 炫光的动画 分布地图动画 动画特效.html5地图动画,html5 echarts图表插件 代码结构 1. 引入JS 2. HTML代码  ECharts $('#documen ...

最新文章

  1. 华为上半年手机销量_十月京东手机销量!华为mate40火爆,苹果11近百万销量
  2. 单刹车信号不合理故障_关于汽车制动系统有哪些故障?该如何解决?
  3. 诺基亚7原生android,【诺基亚7Plus评测】系统:简洁原生安卓功能却不简单_诺基亚 7 Plus(4GB RAM/全网通)_手机评测-中关村在线...
  4. LeetCode 1655. 分配重复整数(回溯)
  5. 最近公司遇到了APR攻击,顺便了解一下知识
  6. 清理日志文件尝试有效哦
  7. 文化的作用与本质是什么
  8. 开源的WebKit 浏览器引擎受多个漏洞影响,可导致 RCE 后果
  9. javascript去除空格回车符
  10. 3Dmax哪个版本最好用?3dmax哪个版本稳定一点?
  11. 用photoshop给gif批量加水印
  12. 如何进行信息化项目需求调研
  13. 联通光猫 - KD-YUN-811E - 管理员密码破解
  14. scanf与空白字符
  15. android 移除子view,android-从父视图中移除视图与隐藏视图
  16. 算法刷题打卡第43天:Dota2 参议院
  17. html5 拉窗帘 效果,jQuery和CSS3超酷3D拉窗帘式滚动导航特效
  18. Web安全常见漏洞原理、危害及其修复建议
  19. 联想小新设置指纹登录
  20. 漫话电子配线架的定义

热门文章

  1. 矩阵分析相关证明(一) —— 正交与投影
  2. 方阵的迹(trace)及其微分(导数)
  3. 矩阵手册(五)—— 内积
  4. 熟悉 CMake(二)—— 以一个实例说明 CMakeLists.txt 文件的编写
  5. 机器学习基础(十九)—— Trick
  6. java五子棋人机对战_实现简单的人机对战五子棋(实践)
  7. vue 心跳监控_Vue中WebSocket加入心跳机制
  8. 在哪里学python-学Python从哪里开始?
  9. 30岁学python有前途吗-30岁新手入门python!尝试人生另一种可能
  10. 语音识别哪个软件好,教你三种不同的识别方法