1.JavaScript的数据类型都有什么?

基本数据类型:number、string、boolean、undefined、null 
复杂数据类型:Object(Array,Date,RegExp,Function)


    2.已知ID的Input输入框,希望获取这个输入框的输入值,怎么做?(不使用第三方框架)

    document.getElementById(“ID”).value


    • 用户: Dreams 时间: 2019-01-10 17:07

      2

    3.希望获取到页面中所有的checkbox怎么做?(不使用第三方框架)

    var domList = document.getElementsByTagName("input");
    var ckList = [];//返回的所有的checkbox
    var len = domList.length;
    for (var i = 0; i < len; i++) {
        if (domList[i].type == "checkbox") {
            ckList.push(domList[len]);
        }
    }


    • 用户: 指间沙 时间: 2019-01-22 16:57

      ckList.push(domList[len]) 这里len应该是 i 吧?? ckList.push(domList[i])
    • 用户: ???????? 健 时间: 2019-03-16 22:18

      是的,应该是i,否则这个添加没有意义
    • 用户: 迁就。 时间: 2019-03-22 08:08

      对,应该是i

    4.设置一个已知ID的DIV的html内容为xxxx,字体颜色设置为黑色(不使用第三方框架)

    var dom = document.getElementById(“ID”);
    dom.innerHTML = “xxxx”
    dom.style.color = “#000”;//”black”


      5.当一个DOM节点被点击时候,我们希望能够执行一个函数,应该怎么做?

      HTML事件绑定:
      DOM0事件绑定:xxx.onclick = test 
      DOM2事件绑定:addEventListener(div1, ‘click’, test) 
      扩展:Javascript的事件流模型都有什么? 
      事件流: 
      从最不确定的元素(最外层容器)到目标元素,再由目标元素到最不确定的元素(最外层容器); 
      也就是说先经历事件捕获,到目标元素,再经历事件冒泡 
      “事件冒泡”:事件开始由最具体的元素接受,然后逐级向上传播 
      “事件捕捉”:事件由最不具体的节点先接收,然后逐级向下,一直到最具体的


        6.看下列代码输出为何?解释原因。

        var a;
        alert(typeof a); // “undefined”
        //alert(b); // 报错 
        b=10;
        alert(typeof b);//”number”
        答案:undefined、number 
        undefined产生情况: 
        1、一个变量定义了却没有被赋值 
        2、想要获取一个对象上不存在的属性或者方法: 
        3、一个数组中没有被赋值的元素 
        4、调用函数,参数未传 
        扩展:not defined语法错误


        • 用户: Look at me now 时间: 2018-12-27 17:41

          00

        7.看下列代码,输出什么?解释原因。

        var a = null;
        alert(typeof a); //object


        • 用户: ???????? 健 时间: 2019-03-16 22:22

          null本来就是Object.prototype.__proto__,基类型自然就是Object

        8.看下列代码,输出什么?解释原因。

        var undefined;//此时undefined这个变量的值是undefined
        undefined == null; // true
        1 == true;   // true
        此时会把布尔类型的值转换为数字类型 true=1 false=0
        2 == true;   // false
        0 == false;  // true
        0 == '';     // true
        NaN == NaN;  // false isNaN
        [] == false; // true   解释:会把[]和false都通过Number()转换为数字类型
        [] == ![];   // true   解释:![]:false
        []==[];//false
        一个是number一个是string时,会尝试将string转换为number 
        一个是number一个是boolean,将boolean转换为number,结果:true:1 false:0 
        一个是object 另一个是string或number,将Object转换成number或string 
        所以,对于0、空字符串的判断,建议使用 “===” 。“===”会先判断两边的值类型,类型不匹配时为false。


        • 用户: 岳静阁 时间: 2019-04-08 18:27

          []==[];//false 这个没有给出解释啊

        9.看下列代码会有什么样的输出?

        var foo = "11"+2-"1";  
        console.log(foo);//112-1=111
        console.log(typeof foo);//”number”
        考点: 
        1、数字和字符串都可以用加法运算符,数字和字符串相加,结果就是一个字符串 
        2、但是减法运算符只能用于两个数字之间,想要执行减法运算,必须把两边数字都变成数字类型的 
        答案:”111”、”number”


          10.已知数组var stringArray = [“This”, “is”, “Baidu”, “Campus”],alert出”This is Baidu Campus”。

          考点:数组的join方法的使用 
          答案:alert(stringArray.join(“ ”))


            11.var numberArray = [3,6,2,4,1,5];

            1) 实现对该数组的倒排,输出[5,1,4,2,6,3]
            
            function reverseArray(arr){
                var result=[];
                //方法1:
                /*for (var i = arr.length - 1; i >= 0; i--) {
                    result.push(arr[i]);
                }*/
                //方法2:
                for (var i = 0, len = arr.length; i < len; i++) {
                    result.unshift(arr[i]);
                }
                return result;
            }
            2) 实现对该数组的降序排列,输出[6,5,4,3,2,1] 
            冒泡排序过程演示
            
            function sortDesc(arr) {
                for (var i = 0, len = arr.length; i < len; i++) {
                    for (var j = i + 1, len2 = arr.length; j < len2; j++) {
                        //>就是降序 <就是升序
                        if (arr[j] > arr[i]) {
                            var temp = arr[j];
                            arr[j] = arr[i];
                            arr[i] = temp;
                        }
                    }
                }
                return arr;
            }


              12.输出今天的日期,以YYYY-MM-DD的方式,比如今天是2014年9月26日,则输出2014-09-26

              考点:日期对象Date相关API的使用
              var d = new Date();
              // 获取年,getFullYear()返回4位的数字 
              var year = d.getFullYear(); 
              // 获取月,月份比较特殊,0是1月,11是12月 
              var month = d.getMonth() + 1; 
              // 变成两位 
              month = month < 10 ? ‘0’ + month : month; 
              // 获取日 
              var day = d.getDate(); 
              day = day < 10 ? ‘0’ + day : day; 
              alert(year + ‘-’ + month + ‘-’ + day);


                13.foo = foo||bar ,这行代码是什么意思?为什么要这样写?

                这种写法称之为短路表达式 
                相当于:
                var foo;
                if(foo){
                    foo=foo;
                }else{
                    foo=bar;
                }
                答案:常用于函数参数的空判断 
                短路表达式:作为”&&”和”||”操作符的操作数表达式,这些表达式在进行求值时,只要最终的结果已经可以确定是真或假,求值过程便告终止,这称之为短路求值。 
                考点:if条件的真假判定 
                记住以下是false的情况:空字符串、false、undefined、null、0


                  14.看下列代码,将会输出什么?

                  考点:1、变量作用域 2、变量声明提升
                  var foo = 1;
                  function f(){
                      console.log(foo);
                      var foo = 2;
                      console.log(foo);
                  }
                  f();
                  答案:输出undefined 和 2。


                    15.用js实现随机选取10–100之间的10个数字,存入一个数组,并排序。

                    var iArray = []; 
                    function getRandom(istart, iend){
                            var iChoice = iend - istart +1;
                            return Math.floor(Math.random() * iChoice+ istart);
                    }
                    Math.random()就是获取0-1之间的随机数(永远获取不到1)
                    for(var i=0; i<10; i++){
                    var result= getRandom(10,100);
                            iArray.push(result);
                    }
                    iArray.sort();