编程语言
首页 > 编程语言> > JavaScript基础练习试卷--答案

JavaScript基础练习试卷--答案

作者:互联网

JavaScript试卷答案

一、简答题(每题3分)

1. Javascript的组成?

    ECMAScript  DOM  BOM

2. Javascript可以运行在什么地方?

    Node  浏览器

3. Javascript基本数据类型有哪些

    undefined null number string boolean

    //Object--->null 

    //var obj = null;

4. Javascript中的内置对象以及函数有哪些?

    对象:Math Location History document

    函数:Array Object Date String Number Boolean ... RegExp

5.Javascript对象、函数、数组的定义

  对象的定义:

    对象字面量 var obj = {}

    构造函数 var obj = new Object()

  函数的定义:

    函数表达式 var foo = function(){}

    函数声明 function foo(){}

  数组的定义

    数组字面量  var arr = new Array()

    构造函数 var arr = []

6.obj1={name:'lisi'}; obj2=obj1; obj3={name:'lisi'},说明它们三者之间的关系

  obj1 == obj2  true

  obj1 == obj3  false

  obj2 == obj3  false

7. 请写出10个数组实例可以调用的方法

    slice() splice()  join()  toString()  sort() concat() reverse() push()pop() shift() unshift() forEach() some() every() filter() map()

8. 请写出10个字符串实例可以调用的方法

    split() toLowerCase()  toUpperCase() indexOf() lastIndexOf() replace() charAt() trim() match() substr() substring()

9. 请写出Math中常见的5个方法

    ceil() floor() random() max() min()

10. 函数的调用方法有几种?

    test()

    test.call(this,参数列表)

    test.apply(this,参数数组)

11. 解释什么是arguments

    每个函数的内部都有一个局部变量arguments,是用来存放实参的类数组对象

    function test(a,b,c,d){

      //a,b,c,d都是test内的局部变量

      //var a,b,c,d;

      console.log(d);//4

      arguments-->{[1,2,3,4,5,6]}

    }

    test(1,2,3,4,5,6)

12.== 与 ===的区别

    == 比较值

    === 比较类型和值 如果类型不一致,直接返回false

13.typeof的返回值有哪些

  number string boolean undefined function object NaN

14.简述事件流与事件冒泡

    事件流:指从页面中接收事件的顺序,有冒泡流和捕获流。

    事件流是事件执行的顺序,在IE底下是事件冒泡,在非IE底下是事件捕获。

    事件冒泡是:当子元素与父元素都绑定了同一个事件的时候,触发了子元素的事件之后,先执行子元素的事件处理程序,再冒泡执行父元素的事件处理程序

15.为什么要使用阿里云?它在我们开发中扮演什么角色?

    阿里云可以提供一个远程服务器,可以使用它进行linux学习,js学习,也可以用于搭建个人网站。

阿里云等云服务器一般作为项目的部署服务器,需要在阿里云上安装一些项目部署的环境,需要掌握基本的命令操作和vim操作。

16.如何理解DOM对象的事件默认行为?

    有的DOM对象有默认的行为,比如点击a标签跳转,这就是a标签在点击之后的默认行为

17.DOM中怎样追加、插入、移除、复制和获取节点(写出方法名即可)

  appendChild()

  insertBefore()

  removeChild()

  cloneNode()

  document.getElementById()

  document.getElementsByClassName()[0]

  document.getElementsByTagName()[0]

18.我们为一个dom对象绑定了一个事件处理函数,请问谁来调用这个事件处理函数?

    这个dom对象

    div.onclick = function(){

 

    }

    ul.onclick = function(event){

      if(event.target.nodeName=="LI"){

        alert(1);

      }

    }

19.简述事件代理机制?

    给父元素绑定事件,在相应子元素点击的时候触发。

    父元素代理了子元素上的事件, 或者说是子元素委托父元素来触发它上面的事件

20.目前为止,我们学过html,css,js简述这些技术的作用和技术之间的关联性?

    html页面结构

    css 页面样式

    js  页面动作行为

    jQuery 封装了js中的DOM操作和Ajax技术

    bootstrap  封装了 html css js jQuery

21.谈谈你对于原型链的理解?

    js通过原型链来继承,在原型链中的方法,实例可以调用。

22.javascript的迭代方法有哪些

  forEach、every、some、filter、map

23.举例说明值传递和引用传递的区别

  //b 为3    值拷贝

  var a = 3;

  var b = a;   

  b++;

  console.log(a); //3

 

  // a为指针,b为指针  引用拷贝

  var a = {name:"terry",age:12};

  var b = a;   

  b.age++;

  console.log(a.age);  //13

24. 是否使用过github? 你熟悉的git命令有哪些?

    git init   在当前目录新建一个Git代码库

    git clone [url]  下载一个项目和它的整个代码历史

    git add    添加文件到暂存区

    git commit -m [message]  提交暂存区到仓库区

    git status 显示有变更的文件

25. 你使用的服务器的操作系统是?写出20个你用过的linux命令并解释该命令的含义。

  例如:

    声明 $表示为linux操作系统的终端标识

    $ cd [目录]]  切换目录,当目录为空的时候表示进入到家目录

    ...

    ls      展示目录内的内容

    cd ..   打开上一级

    mkdir   创建目录

    rm      删除文件

    cat     查看内部内容

    more    查看内部内容

    vi      打开vi编辑器

    vim     打开vim编辑器

    cp      复制

    ftp     文件传输

    dirs   显示目录记录

    httpd  Apache HTTP服务器程序

    apachectl  控制Apache HTTP服务器的程序

    exit   关闭控制台

    su     用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码

    sudo   以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。

    who    显示系统中有哪些使用者正在上面

    whoami 用于显示自身用户名称

    whois  用于查找并显示用户信息

    clear  清屏

 

二、编程题 (每题5分)

1. 数组去重

  例如:

    var arr = [1,2,3,4,5,3,4,6,8,1];

    编写程序去除数组内重复的值得到如下结果

    arr = [1,2,3,4,5,6,8]

  答:

   

var arr = [1,2,3,4,5,3,4,6,8,1];
            Array.prototype.myfunction= function(){
                var newArr = [];
                for(var i=0;i<this.length;i++){
                    if(this.indexOf(this[i])==i){
                        newArr[newArr.length]=this[i];
                    }
                }
                return newArr;
            }
            console.log(arr.myfunction());

2. ajax是什么?你在开发中如何使用ajax?(使用原生js语法)

    ajax是异步的JavaScript和XML。用来进行异步请求。浏览器可以向服务器发送一个ajax请求,进行页面的局部刷新。

原生ajax:

//1.创建XMLHttpRequest对象

var httpRequest = new XMLHttpRequest();

//2.配置请求信息,建立连接

httpRequest.open('get', 'http://47.106.244.1:8099/manager/category/findAllCategory');

//3.发送请求

httpRequest.send();

//4.接受响应

httpRequest.onreadystatechange = function () {

// http请求完成,并且状态是200的时候,代表请求成功

if (httpRequest.readyState === 4 && httpRequest.status === 200) {

//获取响应数据

console.log(httpRequest.responseText);

}

if (httpRequest.readyState === 4 && httpRequest.status === 500) {

console.log('错误:' + httpRequest.responseText);

}

}

 

3. 编写代码完成数组内元素的反转

    答:

var arr = [8,19,3,12,5,4];
            Array.prototype.myfunction = function(){
                for(var i = 0;i<this.length/2;i++){
                    var temp = this[i];
                    this[i] = this[this.length-i-1];
                    this[this.length-i-1] = temp;
                }
                return this;
            }  
            console.log(arr.myfunction());

 

4. 使用你熟悉的排序算法完成数组的升序排列

  参数格式:

    var arr = [8,19,3,12,5,4];

  答:

    function test4(arr){

      // 冒泡排序

      for(var i=0;i<arr.length;i++){

        for(var j=0;j<arr.length-1;j++){

          if(arr[j]>arr[j+1]){

            // 交换位置

            var temp = arr[j];

            arr[j] = arr[j+1];

            arr[j+1] = temp;

          }

        }

      }

      console.log(arr);

    }

    test4(arr);

 

5. 现有DOM如下

    <ul>

      <li>first</li>

      <li>second</li>

      <li>third</li>

      <li>fourth</li>

      <li>fifth</li>

    </ul>

 

    为每个li使用原生DOM API绑定点击事件,要求点击first的时候弹出1,点击second的使用弹出2

 

    答:

      window.onload =  function(){

        //事件代理

        var ul = document.getElementsByTagName('ul')[0];

        ul.onclick = function(event){

          var li = event.target;

          if(li.nodeName=="LI"){

            if(li.innerText=="first"){

              alert(1);

            }else if(li.innerText=="second"){

              alert(2);

            }else{

              alert('其他');

            }

          }

        }

      }

 

 

标签:function,httpRequest,arr,DOM,--,试卷,JavaScript,事件,var
来源: https://blog.csdn.net/qq_45486259/article/details/116946011