Javascript十问

语言基础篇:

1.

var str = '\u104A0';
console.log(str.length);
console.log(String(str) === String(str));
console.log(RegExp(str) === RegExp(str));

答案:

2

true

false


2.

console.log(typeof null);
console.log(typeof undefined);
var a;
console.log(a === undefined);
var undefined;
undefined = 1;
console.log(a === undefined);

var b = null;
var null;
null = 1;
console.log(b === null);

3.
我们有一个 ES5 兼容的 JS 环境, 请你完成这段代码, 使变量 a 的值为 global object (即浏览器里的 window), 并判断 console.log 会在控制台输出啥结果

(function(){
'strict mode';
/*
* write your code here
*/
console.log(a.a === a);
})();

4.

(function(){
eval('a=1;');
})();
console.log(a);

(function(){
'use strict';
eval('b=2;');
})();
console.log(b);

5.

(function(){
function testA(){
return function(){
var a = 1;
++a;
return a;
}
}
function testB(){
'use strict';
return function(){
var a = 1;
++a;
return a;
}
}
console.log(testA() === testA());
console.log(testB() === testB());
})();

6.

(function(){
console.log(typeof this)
})();

(function(){
'use strict';
console.log(typeof this)
})();

DOM/BOM 篇:

7.
一个容器下有很多子元素, 需要对这些子元素上的事件进行响应. 如果对每一个子元素
进行事件绑定, 代价比较高昂, 故可以将事件绑定到父容器上, 此称为事件代理.

请你分别用 jQuery 和 native dom api 完成一个事件代理的 demo: 当鼠标移到任意 <li> 上时, console.log 它的 .textContent

jQuery: http://jsfiddle.net/PJ6JV/
Native Dom Api: http://jsfiddle.net/GrVVf/

8.
列举你所知道的一切 js 跨域方法, 并稍加解释.

9.
有一个音乐列表页面和一个播放器页面, 要求:
a. 播放器页面正在播放的歌曲名字显示在标题栏, 播放历史显示在页面上.
b. 用户点击播放列表页上的任意项, 如果浏览器已经打开了播放器页面, 则播放器
页面开始播放该项, 否则弹出播放器页面并开始播放.
c. js代码要控制好浏览器, 不能有两个或以上播放器页面.
d. 刷新或关掉重开音乐列表页面, 看功能是否还正常.
d. 刷新或关掉重开播放器页面, 看功能是否还正常.
注: 只要实现窗口控制, 跟 百度音乐 差不多, 不需要真的播放音乐 :)

playlist.html:
<!doctype html>
<html>
<head>
<title>PlayList</title>
</head>
<body>
I'm PlayList;
<ol id="list">
<li>Song #1</li>
<li>Song #2</li>
<li>Song #3</li>
</ol>
<script>
//Write your code here
</script>
</body>
</html>

player.html:
<!doctype html>
<html>
<head>
<title>Now playing: </title>
</head>
<body>
Play history
<ol id="history">
</ol>
<script>
//Write your code here
</script>
</body>
</html>


蛋疼篇:
10. 猜测结果并解释原因.
console.log(++[[[[]]+[[]-[]]]][[[]-[]]]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值