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语义化就是让页面的内容结构化,便于对浏览器、[搜索引擎](http://lib.csdn.net/base/searchengine)解析;
*在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的;
*搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于SEO。
*使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

3、jQuery与jQuery 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的作用

  1. 对于数字类型的操作数而言, typeof 返回的值是 number。比如说:typeof(1),返回的值就是number。上面是举的常规数字,对于非常规的数字类型而言,其结果返回的也是number。比如typeof(NaN),NaN在JavaScript中代表的是特殊非数字值,虽然它本身是一个数字类型。在javascript中,特殊的数字类型还有几种:Infinity 表示无穷大特殊值
  2. 对于字符串类型, typeof 返回的值是 string。比如typeof("123")返回的值是string。
  3. 对于布尔类型, typeof 返回的值是 boolean 。比如typeof(true)返回的值是boolean。
  4. 对于对象、数组、null 返回的值是 object 。比如typeof(window),typeof(document),typeof(null)返回的值都是object。
  5. 对于函数类型,返回的值是 function。比如:typeof(eval),typeof(Date)返回的值都是function。
  6. 如 果运算数是没有定义的(比如说不存在的变量、函数或者undefined),将返回undefined。比如:typeof(sss)、typeof(undefined)都返回undefined

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

  1. 1** (信息类):接受到请求并且继续处理
  2. 2** (响应成功):表示动作被成功接受,理解和接受
    200 -表示请求被成功完成,请求的资源发送回客户端
    202 -接受和处理,但处理未完成
    203 -返回信息不确定或不完整
    204 -请求收到,但返回信息为空
  3. 3** (重定向):为了完成指定的动作,必须接受进一步处理
    300 -请求的资源可在多处得到
    301 -本页面被永久性转移到另一个URL
    304 -自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容,代表上次的文档已经被缓存了,还可以继续使用
    305 -请求的资源必须从服务器指定的地址得到
  4. 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中实现类似PHP的print_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;  
}  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容