zoukankan      html  css  js  c++  java
  • 9.4做JS的题目

    1.

    var x = new Boolean(false);
    if (x) { alert('hi'); } 
    var y = Boolean(0);
    if (y) { alert('hello'); }

    第一句

    var x = new Boolean(false);

    ifX这里这里期望 x 是一个布尔类型的原始值,而 x 是一个对象,任何对象转为布尔值,都为得到 true,js中只有 0,-0,NaN,"",null,undefined 这六个值转布尔值时,结果为 false

    第二局

    var y = Boolean(0); 

    用 new 调用构造函数会新建一个布尔对象,此处没有加 new,进行的是显示类型转换,正如上述第一条所说,0 转换布尔,结果为 false,所以此时 y 的值就是 false。

    2.

    以下代码执行后,array的结果是?
    var array=[-1,1,3,4,6,10]; 
    array.sort((a,b)=>Math.abs(a-3)-Math.abs(b-3));
    [3,4,1,6,-1,10]
    参数(a,b)=>Math.abs(a-3)-Math.abs(b-3):即数值减3的绝对值[4,2,0,1,3,7]作为参数决定排序。
    根据绝对值减3大小排列[0,1,2,3,4,7],对应的原数组排序后为[3,4,1,6,-1,10]
    3.

    基本概念

    静态语言(强类型语言)

    静态语言是在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。 
    例如:C++、Java、Delphi、C#等。

    动态语言(弱类型语言)

    动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。 
    例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。

    4.以下哪些代码执行后i的值为10:AC

    let i =1 + {
    valueOf() { return 9; }
    };
    
    let i = 0;
    new Array(10).forEach(() => {
    i++;
    });
    
    let i = parseInt('0xA');
    
    
    let i = 5;
    function a(i) {
    i *= 2;
    }
    a(i);
    

      

  • 相关阅读:
    HDU 4221 Greedy?(贪心)
    HDU 3400 Line belt (三分法)
    POJ 1026 Cipher(置换)
    POJ 1166 The Clocks(暴搜)
    HDU 4122 Alice's mooncake shop(RMQ,或者单调队列)
    POJ 1721 CARDS(置换)
    POJ 3270 Cow Sorting(置换)
    高斯消元法(模板)
    http://blog.seirsoft.com
    转载 STL容器的erase用法
  • 原文地址:https://www.cnblogs.com/smhyu/p/13613790.html
Copyright © 2011-2022 走看看