日常整理系列——笔试刷题00007

1)如果一个html文档内含有阿拉伯文,则应该()

答案:使用utf-8

解析:utf-8是一种针对Unicode的可变长度字符编码,又称万国码。utf-8用1-6个字节编码UNICODE字符。用在网页上可以统一页面显示中文、简体、繁体以及其他语言(英语、日文、韩文)
GBK是汉字编码,是双字节码,可表示繁体字和简体字
ISO8859-2字符集,也称Latin-2,收集了东欧字符

2)head标签中必不可少的是()

答案:<title>

解析:按照标准来说,<title>是必须需要的标签,但是浏览器因为很多前端编码不规范,所以在没有的情况下有时并不影响,或者是再删除<title>之后,只是加载之前的缓存界面;但是<meta>是编码说明,删除会有很大的麻烦,但是理论上来说,如果是按照浏览器默认的编码方式的文档,是不会出错的。所以仅仅是理论上来说,<title>是必要的。

3)以下 javascript 代码,在浏览器中运行的结果是()

答案:string

解析:首先,a的取值由||运算符的两边共同决定,左边明显为false,右边为字符串的拼接并返回其类型,4399+“”=>439;因为隐式转换成为字符串,所以类型为string,所以右边为string。即为a的返回值。

4)当表单中包含文件上传控件时,需要将enctype设置为()

答案:multipart/form-data

解析:首先,enctype的属性规定了再发送到服务器之前应该对表单数据进行编码,默认的编码为“application/x-www-form-urlencoded”.就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为"+",特殊符号转换为ASCII HEX值)。它的属性值及其描述如下:

  • application/x-www-form-urlencode        在发送前编码所有字符(默认)
  • multipart/form-data                                 不对字符编码。在使用包含文件上传控件的表单时,必须使用该值
  • text/plain                                                 空格转换为“+”, 但不对特殊字符编码

5)下列代码,返回的值应该是()

(function() {
    var x=foo();
    var foo=function foo() {
        return “foobar”
    };
    return x;
})();

答案:类型错误

语句汇总变量的声明会提升,但是定义(函数表达式)不会提升。上述代码等同于:

扫描二维码关注公众号,回复: 3579032 查看本文章
var foo;
var x = foo();
foo = function foo() { ... };

当执行到x = foo()时,由于foo未定义为函数,所以返回 foo is not a function...

6)下列代码存在几个变量没有被回收?( )

var i = 1;
var i = 2;
var add = function() {
    var i = 0;
    return function(){
        i++;
        console.log(i);
    }
}();
add();

答案: 3个

解析:代码回收规则如下:

  1. 全局变量不会被回收
  2. 局部变量会被回收,也就是函数一旦运行完以后,函数内部的东西都会被销毁
  3. 只要被另外一个作用域引用就不会被回收

所以,本题中有3个变量没有被回收,首先是全局变量中的I,第二行会覆盖第一行,因此算一个。第二个是var add(),这个是全局的,也没有回收,它定义了一个匿名函数,并将它赋给了add.第三个是闭包中的变量,闭包中的局部变量时不会被回收的。

7)常见的浏览器端的存储技术有哪些?

有时,需要将页面中的一些数据保存在浏览器端,这样做的好处是,当下次访问的时候,不需要再次向服务器请求数据,直接就可以从本地读取数据。目前常用的有以下几种方法:

cookie
cookie会随着每次HTTP请求头信息一起发送,无形中增加了网络流量,另外,cookie能存储的数据容量有限,根据浏览器类型不同而不同。IE6大约只能存储2K

Flash ShareObject
这种方式能解决上面提到的cookie存储的两个弊端,而且能够跨浏览器。应该说是目前最好的本地存储方案。不过需要在页面上插入Flash,当浏览器没有安装Flash空间时,就不能用了。所幸的是,没有安装flash的用户很少

Google Gear
Google开发的一种本地存储技术,缺点是:需要安装gear组件

userData
IE浏览器可以使用userData来存储数据,容量可达到640kb,这种方案是很可靠的,不需要安装额外的插件。缺点是:它仅在IE下支持

sessionStorage
使用于Firefox2+的火狐浏览器,用这种方式存储的数据仅窗口级别有效。同一个窗口(或者tab)页面刷新或者跳转,都能获取到本地存储的数据,当新开窗口或者页面时,原来的数据就失效了。缺点:IE不支持,不能实现数据的持久保存

globalStorage
使用于Firefox2+的火狐浏览器,类似于userdata。缺点是IE不支持

localStorage
localStorage是web storage互联网存储规范中的一部分,现在Firefox3.5  Safari 4 和IE8都能支持。缺点是、;低版本不支持

总结:
flash shareobject是不错的选择,如果不想在页面上嵌入flash,可以结合使用userData(IE6+)和globalstorage(firefox2+)和localstorage(chrome3+)实现跨浏览器。

猜你喜欢

转载自blog.csdn.net/PINGER0077/article/details/83034325