Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

高三精读小组课后作业(01期) #13

Open
VaJoy opened this issue Jan 9, 2016 · 7 comments
Open

高三精读小组课后作业(01期) #13

VaJoy opened this issue Jan 9, 2016 · 7 comments

Comments

@VaJoy
Copy link
Member

VaJoy commented Jan 9, 2016

#1-67页

答案将于一周后更新于本贴,大家可以跟帖写答案看自己对基础知识的掌握程度如何。
跟帖回答案的都应自行思考完成,不然没有任何意义

1. 请随便列举出4个或更多个BOM对象

2. 简单描述下<script>标签中defer属性的作用

3.下面这段代码在XHTML中能顺利运行么?若存在问题,你能想出哪些办法解决它:

<script type="text/javascript">
    var a= 1, b=2;
    if(a<b) alert("a is smaller");
</script>

4.下方代码截取自某个页面的body部分,请问它的脚本执行结果会是什么?

<body>
<!--<div>hello</div>-->
<script>
    var a= 1, b=0;
    <!--
    b=2;
    -->
    if(a<b) alert('a is smaller');
    else slert('b is smaller')
</script>
</body>

5.请说出下方脚本的执行结果,并简述其原因:

    var a;
    if(a==undefined) alert('undefined');
    if(a==null) alert('null')

6.请说出下方脚本的执行结果:

    var a=011, b=0x10, c=1.2e2;
    alert(a + b + c)

7.请完成函数toOctal 的编写,要求能将一个二进制数值转为八进制:

    function toOctal(binary){
        //TODO:完成需求
    }

    var a = 11001111,
        result = toOctal(a);
    alert(result); //317

8.操作符“>>”和“>>>”的区别是什么?

9.请说出下方脚本执行结果:

    var a= 1, b=2;

    function c(){
        alert('c1')
    }

    function test(){
        alert(a);
        alert(b);
        c();

        function b(){
            return 0
        }

        var a= 5, b=6;
        function c(){
            alert('c2')
        }
    }

    test();

10.下述脚本能正确alert出2么?如果不行请写出解决方案:

    for(var i= 0,l=10,obj=[];i<=l;i++){
        obj[i] = function(){
            alert(i);
        };
    }
    obj[2]()

11.请说出下方脚本执行结果:

    var array = [1, 2];
    deal(array, array);

    function deal(arrA, arrB){
        arrA = [3, 4];
        console.log(array[1]);  //打印出什么内容?
        arrB[1] = 9;
        console.log(array[1]);  //打印出什么内容?
    }
@erbing
Copy link
Member

erbing commented Jan 13, 2016

5.请说出下方脚本的执行结果

    var a;
    if(a==undefined) alert('undefined');
    if(a==null) alert('null')

结果就是 先弹出 undefined 再 弹出 null

原因就是 undefined == null

@erbing
Copy link
Member

erbing commented Jan 20, 2016

1、BOM 对象 其中 window 对象为其核心, 有一些我们常用的,navigator 对象(了解浏览器信息)、location 对象了解页面信息、history 对象、screen对象

@erbing
Copy link
Member

erbing commented Jan 20, 2016

2、<script>标签中defer属性的作用 是当 该脚本对文档内容不能改变时候,我们加入 defer 属性,可以加快对文档的处理速度。

@erbing
Copy link
Member

erbing commented Jan 20, 2016

3、在xhtml 这段代码不能 顺利的执行,因为在 xml 中 < > 都会被视为 标签,而不是 大于号、小于号、
修改的方式就是 把 < 转换成 & l t ;

@erbing
Copy link
Member

erbing commented Jan 20, 2016

4、它的脚本执行结果 是 "a is smaller" ,原因是 虽然我们最开始是定义了 a , b 但是后来在 未使用 var 的 b=2 相当于一个全局变量,从而 覆盖掉 之前b=0,所以。。。

@erbing
Copy link
Member

erbing commented Jan 20, 2016

@Depsi 谢谢 提醒

@erbing
Copy link
Member

erbing commented Jan 20, 2016

6、脚本的执行结果 //9 + 16 + 120 = 145

7、

   function toOctal(binary){
       return parseInt(binary,2).toString(8);
    }

8、操作符“>>”和“>>>”的区别 在于,前者是 带正负的位运算,后者是不带正负的位运算.

9、undefined \ function(){return 0} \ c2
undefined (原因:是因为函数作用域,以及变量有声明的话,会提高优先级解析。但是没有值,只有在执行后面的语句中才会赋值)
function(){return 0} (原因:有了这个变量声明以后,就会从上而下的去寻找赋值,最后先找到了function b(){})
c2 (原因:functiond 是预解析,然后又进行了覆盖[覆盖掉了从上而下的‘c1’])

10、不能。
解决办法:

    var help = function(i){
        return function(x){
            alert(i);
        }
    }

    for(var i= 0,l=10,obj=[];i<=l;i++){
        obj[i] = help(i);
    }

    obj[2](); 

11、分别是 2、9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants