阿里巴巴易错题型

阿里巴巴

1、将数组 var a=[1,2,3] 变成数组 [4,3,2,1] 下面的方式正确的是?A C
A. a.reverse().unshift(4)
B. a.push(4).reverse()
C. a.push(4); a.reverse()
D. a.splice(3,1,4).reverse()
JS数组方法

2、目前 HTTP2 协议已经逐渐普及到日常服务器中,以下对于 HTTP2 协议描述正确的是: A B C D
A. 所有http请求都建立在一个TCP请求上,实现多路复用
B. 可以给请求添加优先级
C. 服务器主动推送 server push
D. HTTP2的头部会减小,从而减少流量传输
HTTP2

3、请问下面哪种方式可以在不改变原来数组的情况下,拷贝出数组 b ,且满足 b!=a 。例如数组 a 为 [1,2,3] 。BD
A. let b=a;
B. let b=a.slice();
C. let b=a.splice(0,0);
D. let b=a.concat();
JS数组方法

4、浏览器在一次 HTTP 请求中,需要传输一个 4097 字节的文本数据给服务端,可以采用那些方式?E
A. 存入 IndexdDB
B. 写入 COOKIE
C. 放在 URL 参数
D. 写入 Session
E. 使用 POST
F. 放在 Local Storage
HTTP传输数据

5、填写内容让下面代码支持a.name = “name1”; b.name = “name2”;
function obj(name){
(1)
}
obj. (2)= “name2”;
var a = obj(“name1”);
var b = new obj;

参考答案
(1) if(name){ this.name = name;} return this;
(2) prototype.name
原型对象的属性及实例属性

6、输出对象中值大于2的key的数组
var data = {a: 1, b: 2, c: 3, d: 4};
Object.keys(data).filter(function(x) { return (1) ;})
期待输出:[“c”,”d”]

参考答案(1) data[x]>2
JS数组方法

7、请列举7种以上常用的HTML标签,说明其语义。
1.div标签,是一个块元素,就像一个大盒子,可以放各式各样的东西,如:图片….
2.p标签,也是一个块元素,它通常是用来放一段话的….
3. h1,h2….h6标签,也是一个块元素,常用来放标题
4.span标签,是一个行内元素,常用来处理一段话中的某几个字符
5.img标签,用来加载图片的标签
6.table标签,用来创建表格的标签
7.br标签,用来换行的标签
8.hr标签,用来画线的标签
9.a一个点击跳转的超链接标签
10.ul一个用来做列表的标签
HTML标签及其语义

9、尝试实现注释部分的Javascript代码,可在其他任何地方添加更多代码(如不能实现,说明一下不能实现的原因):

var Obj = function(msg){
    this.msg = msg;
    this.shout = function(){
        alert(this.msg);
    }    
    this.waitAndShout = function(){
        //隔五秒钟后执行上面的shout方法
        //新添加的代码
        var that = this; 
        setTimeOut(that.shout,5000);

    }
    //新添加的代码
    return this;
}
Obj("shouting").waitAndShout();

setTimeOut函数的this对象

9、校验输入的字符串是否是一个有效的电子邮件地址。要求: a) 使用正则表达式。 b) 如果有效返回true ,反之为false。

var checkEmail  = function(email){
var preg = 
        "(^[a-zA-Z]|^[\\w-_\\.]*[a-zA-Z0-9])@(\\w+\\.)+\\w+$";
    pregObj  =new RegExp(preg);
    return pregObj.test(email);
}

正则表达式

9、请分别列出HTML、JavaScript、CSS、Java、php、python的注释代码形式。

<!-- HTML 注释 -->

// JavaScript 注释

/*
 *   JavaScript 多行注释
 */

/* CSS 注释 */

// Java 注释

/**
 * Java 多行注释
 */

// php 单行注释

# php 单行注释

/**
 * php多行注释
 */

代码注释格式

10、请用CSS定义p标签,要求实现以下效果: 字体颜色在IE6下为黑色(#000000);IE7下为红色(#ff0000);而其他浏览器下为绿色(#00ff00)。

p{
    color:#0f0;
    _color:#000; /*ie6*/   
}
/*ie7*/ 
*+html p{
    color:#f00;
}

CSS hack

11、请编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象,如:
var url = "http://www.taobao.com/index.php?key0=0&key1=1&key2=2.....";
var obj = parseQueryString(url);
alert(obj.key0); // 输出0

var url = "http://www.taobao.com/index.php?key0=0&key1=1&key2=2.............";
var obj = parseQueryString(url);

function parseQueryString(argu){
  var str = argu.split('?')[1];
  var result = {};
  var temp = str.split('&');
  for(var i=0; i<temp.length; i++)
  {
     var temp2 = temp[i].split('=');
     result[temp2[0]] = temp2[1];
  }
  return result;
}

String的分隔和拼接

12、请指出下面代码中不符合xHTML 1.0规范的地方,说明理由,并写出改善后的代码:

<h1><p>小明的表白</p></h1>
<dl>
        <dt><p><div>小明说:</div></p></dt>
        <dd>”淘宝网,<i>天天上</i>。”</dd>
        <dd><b>”淘我喜欢!” </b></dd>
</dl>

不合理的地方:
1、 h1元素包含p元素,理由:h1元素内不能包含其他块级元素;
2、 dt元素包含p元素和div元素,理由:dt元素内不能包含其他块级元素;
3、 p元素包含div元素,理由:p元素内不能包含其他块级元素;
4、 i元素,理由:i表样式斜体,不符合语义化。
5、 b元素,理由:b表样式粗体,不符合语义化。
HTML标签的嵌套以及语义化

13、请根据下面的描述,用JSON语法编写一个对象: “小明今年22岁,来自杭州。兴趣是看电影和旅游。他有两个姐姐,一个叫小芬,今年25岁,职业是护士。还有一个叫小芳,今年23岁,是一名小学老师。”
var person = ?

var person = {
"name":"小明",
"age":"22",
"form":"杭州",
"interest":["电影","旅游"],
"sister":[
{"name":"小芬","age":"25","job":"护士"},
{"name":"小芳","age":"23","job":"小学老师"}
]};

JSON语法

14、下列哪个操作是W3C标准定义的阻止事件向父容器传递:C
A. e.preventDefault()
B. e.cancelBubble=true
C. e.stopPropagation()
D. e.stopImmediatePropagation()
事件对象

15、关于HTTP协议,下面哪个说法是正确的?C
A. HTTP协议是有状态协议。
B. 以下是一个Http链接的response 的响应头: GET /xxx/xxx/js/lib/test.js HTTP/1.1 Host: 127.0.0.1 Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Accept: /
C. RESTful 接口中,利用HTTP协议的method字段来描述要对资源操作的方式,比如GET表示获取资源,POST表示新增一个资源,PUT表示更新资源,DELETE 表示删除资源等等。
D. 一个HTTP请求返回的HTTP状态码中,304表示临时重定向。
HTTP协议

16、使用 for in 循环数组中的元素会枚举原型链上的所有属性,过滤这些属性的方式是使用 hasOwnProperty函数
原型方法

17、写一个求和的函数sum,达到下面的效果
sum(1, 2, 3, 4, 5);// Should equal 15
sum(5, null, -5);// Should equal 0
sum(‘1.0’, false, 1, true, 1, ‘A’, 1, ‘B’, 1, ‘C’, 1, ‘D’, 1,
‘E’, 1, ‘F’, 1, ‘G’, 1);// Should equal 10
sum(0.1, 0.2);// Should equal 0.3, not 0.30000000000000004

function sum() {
    var nResult = 0;
    for (var i = 0, l = arguments.length; i < l; i++) {
    nResult +=  (!isNaN(arguments[i]) && window.parseFloat(arguments[i]))||0;
    }
    return nResult.toFixed(3) * 1000 / 1000;
}

Number对象的方法

18、写一个traverse函数,输出所有页面宽度和高度大于50像素的节点。
function traverse(){
return Array.prototype.filter.call(document.querySelectorAll(‘body *’), function(node){
return node.offsetWidth > 50 && node.offsetHeight > 50;
});
}
JS数组方法

猜你喜欢

转载自blog.csdn.net/qq_41401130/article/details/81914498