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