HTML5常见面试题及答案(二)

1、HTML5的新特性

   (1) 绘画canvas

   (2) 用于媒介回放的video和audio元素

   (3) 本地离线存储localStorage长期存储数据,浏览器关闭后数据不丢失

   (4) sessionStorage的数据在浏览器关闭后自动删除

   (5) 语义化更好的内容元素,比如article,footer,header,nav,section

   (6) 表单控件,calendar,date,time,email,url等

   (7) 新的技术webworker,websockt,Geolocation

   (8) 移出的元素

        a.纯表现的元素:basefont,big,center,font等

        b.产生负面影响的元素:frame frameset等

   (9) ie8 7 6 支持通过document.createElemet 方法产生新的标签,可以利用这 一特性让这些浏览器支持html5新标签

2、语义化的理解

    *HTML语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析;

    *在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的;

    *搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于SEO。

    *使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

3、 jQueryjQuery UI有啥区别?

  (1)jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等。

  (2)jQuery UI则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为等等。

4、垃圾回收机制(GC)

    我们一般说的垃圾回收是针对内存而言的。内存在计算机中是很宝贵的一种资源,任何程序的运行都离不开它。由于内存可以被程序操控,为了防止内存被程序滥用,对内存空间进行管理是十分必要的。说到内存管理,自然离不开JS中的垃圾回收机制,有两种策略来实现垃圾回收:【标记清除 和 引用计数;】

    函数运行的时候,浏览器自动开辟一块内存 把浏览器内部的各种变量,存放在此内存中运行结束后,用不到的变量,把它自动回收

5、闭包

    由于函数内部定义变量作用域问题,如果外部想用这个内部函数创建的一个变量;那就需要在这个函数内部在创建一个函数,创建的这个函数相当于一个桥梁把内部外部函数的变量抛出,这样就解决了不能访问这个变量的问题,那这个内部函数就称为闭包。

闭包的特性:

    a.函数内再嵌套函数

    b.内部函数可以引用外层的参数和变量

    c.参数和变量不会被垃圾回收机制回收

 概括的说,闭包就是能够读取其他函数内部变量的函数,在本质上,它是将函数内部和函数外部连接起来的一座桥梁。

6、缓存版本更新

原理:修改资源的地址名,对浏览器来说,就是一个全新的请求

传统方式:在【静态资源】后面加版本号

script(src="indexPage.js?V=20160227")

    优点:可以解决缓存造成的问题,能及时更新缓存,让用户访问最新的内容

    缺点:在中型,大型项目中,版本号一般是统一加的一个变量,当只是一个小的修改时候,比如说只有一个js脚本发生了变化,这时候所有资源的版本号都更新,造成资源     流量浪费,用户体验不好

解决方式:按需变化

增量式发布: 依赖文本的内容  内容变了,加密的串就变化

   优点:提交资源服务器时候,只会把新的文件提交上去,没有变化的文件依然是老的资源,也就是只增加了修改的文件

   缺点:文件提交之后,更新的那个文件,可能存在多个版本,造成服务器的空间浪费, 需要定时清理不用的资源      

   原理:利用md5加密技术

 (把需要生成md5串的资源读取过来,利用md5对内容进行加密编译,生成相应的加密串,这个加密串是唯一的,如果资源的内容没有变化,再次进行md5处理,生成的加密串不变化)

7、Typeof的作用

    一、对于数字类型的操作数而言, typeof 返回的值是 number。比如说:typeof(1),返回的值就是number。

         上面是举的常规数字,对于非常规的数字类型而言,其结果返回的也是number。比如typeof(NaN),NaN在JavaScript中代表的是特殊非数字值,虽然它本身是一个数字类型。JavaScript中,特殊的数字类型还有几种:Infinity 表示无穷大特殊值

    二、对于字符串类型, typeof 返回的值是 string。比如typeof("123")返回的值是string。

    三、对于布尔类型, typeof 返回的值是 boolean 。比如typeof(true)返回的值是boolean。

    四、对于对象、数组、null 返回的值是 object 。比如typeof(window),typeof(document),typeof(null)返回的值都是object。

    五、 对于函数类型,返回的值是 function。比如:typeof(eval),typeof(Date)返回的值都是function。

   六、如 果运算数是没有定义的(比如说不存在的变量、函数或者undefined),将返回undefined。比如:typeof(sss)、typeof(undefined)都返回undefined

8、常见的状态码分别表示什么

  1**(信息类):接受到请求并且继续处理
  2**(响应成功):表示动作被成功接受,理解和接受
      200 -表示请求被成功完成,请求的资源发送回客户端
      202 -接受和处理,但处理未完成  
      203 -返回信息不确定或不完整
      204 -请求收到,但返回信息为空
  3**(重定向):为了完成指定的动作,必须接受进一步处理
      300 -请求的资源可在多处得到
      301 -本页面被永久性转移到另一个URL

      304 -自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容,代表上次的文档已经被缓存了,还可以继续使用 
      305 -请求的资源必须从服务器指定的地址得到
  4**(客户端错误类)
      400 -客户端请求语法错误,不能被服务器所理解
      403 -禁止访问,服务器收到请求,但是拒绝提供服务
      404 -服务器无法取得所请求的网页,请求资源不存在。

9、JavaScript异步加载方案

创建script,插入到DOM中,加载完毕后callBack,代码如下:

function loadScript(url, callback){
   var script = document.createElement("script")
   script.type = "text/javascript";
   if (script.readyState){ //IE
      script.onreadystatechange = function(){
         if (script.readyState == "loaded" || script.readyState == "complete"){
            script.onreadystatechange = null;
            callback();
         }
      };
   } else { //Others: Firefox, Safari, Chrome, and Opera
      script.onload = function(){
          callback();
      };
   }
   script.src = url;
   document.body.appendChild(script);
}

10、 JavaScript中实现类似PHPprint_r函数

function print_r(theObj) {
    var retStr = '';
    if (typeof theObj == 'object') {
        retStr += '<div style="font-family:Tahoma; font-size:7pt;">';
        for (var p in theObj) {
            if (typeof theObj[p] == 'object') {
                retStr += '<div><b>['+p+'] => ' + typeof(theObj) + '</b></div>';
                retStr += '<div style="padding-left:25px;">' + print_r(theObj[p]) + '</div>';
            } else {
                retStr += '<div>['+p+'] => <b>' + theObj[p] + '</b></div>';
            }
        }
        retStr += '</div>';
    }
    return retStr;
}


  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值