饮水思源 - 文章阅读  [讨论区: WebDevelop]
[转寄/推荐][转贴][删除][修改][设置可RE属性][上一篇][返回讨论区][下一篇][回文章][同主题列表][同主题阅读][从这里展开]
发信人: MiaoMiao(毛毛|学生信息员9527), 信区: WebDevelop
标  题: JavaScript 十问 (外)
发信站: 饮水思源 (2013年04月22日17:59:01 星期一), 站内信件

不运行下列代码, 目测一下 console.log 会在控制台输出啥结果. 如果觉得哪句语句会
运行失败, 请指出.

注意: 如果没有特殊说明, 兼容最新版的 Firefox 或 Chrome 即可. 注意全文引用!

语言基础篇:

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

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 会在控制台输出啥结果
var a;
(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(++[[[[]]+[[]-[]]]][[[]-[]]]); 
--

※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 211.68.71.66]

※ 修改:·MiaoMiao 于 2013年04月22日18:02:50 修改内容·[FROM: 211.68.71.66]

※ 修改:·MiaoMiao 于 2013年04月22日18:29:25 修改内容·[FROM: 211.68.71.66]

※ 修改:·MiaoMiao 于 2013年05月03日15:39:11 修改内容·[FROM: 211.68.71.66]

[转寄/推荐][转贴][删除][修改][设置可RE属性][上一篇][返回讨论区][下一篇][回文章][同主题列表][同主题阅读][从这里展开]