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])

    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


          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。


            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();