一、简答题
- Javascript的组成?
ECMAScript DOM BOM
- Javascript可以运行在什么地方?
Node 浏览器
- Javascript基本数据类型有哪些
String Boolean NUll NUmber undefined
- Javascript中的内置对象以及函数有哪些?
Math document Location History
函数:Object Array Date Number String Boolean RegExp
5.Javascript对象、函数、数组的定义
对象:无序属性的集合,其属性可以包含基本值,对象或函数等
函数:封装特定的功能,在需要时调用
数组:存放任何数据类型的数据的集合
1:对象字面量 var obj={} 构造函数 var obj=new Object()
2:函数声明 function name(){},函数表达式 var fn=function(){}
3:var arr=[]; var arr=new Array()
6.obj1={name:‘lisi’}; obj2=obj1; obj3={name:‘lisi’},说明它们三者之间的关系
obj1===obj2 true
obj1==obj3 false
obj2==obj3 fasle //引用数据类型,比较内存地址
-
请写出10个数组实例可以调用的方法
push pop shift unshift slice() splice(begin,deleteCount,…) forEach map every some filter() -
请写出10个字符串实例可以调用的方法
indexOf() lastIndexOf() split(",") trim() substr() substring(begin,end) [1,3) concat() charAt() charCodeAt()
slice() -
请写出Math中常见的5个方法
max() min() floor() ceil() random() round() tan() sin() cos() abs() -
函数的调用方法有几种?
1.test()
2.test.call(this,参数列表)
3.test.apply(this,参数数组) -
解释什么是arguments
类数组对象,存放实参的地方
12.== 与 ===的区别
==是指值相等,===是值和数据类型都想相等
13.typeof的返回值有哪些
typeof检查变量的数据类型
number string boolean undefined Object function
(null返回object)
14.简述事件流与事件冒泡
事件流:描述的是从页面中接受事件的顺序
事件捕获:不太具体的节点更早接受事件,具体节点到最后接受事件(从外到里)
事件冒泡:时间开始有最具体的元素接受,然后逐级向上传播到不具体的节点(从里到外)
15.简述事件绑定方法
普通绑定
事件源.οnclick=funtion(event){
}
addEventListener(‘事件类型’,funtion(){})
attachEvent(‘事件类型’,funtion(){})
16.如何理解DOM对象的事件默认行为?
a form
17.DOM中怎样追加、插入、移除、复制和获取节点(写出方法名即可)
appendChild() insertBefore() removeChild() cloneNode()
TagName() ‘li’
ClassName() ‘one’
Id()
18.我们为一个dom对象绑定了一个事件处理函数,请问谁来调用这个事件处理函数?
dom对象
19.简述事件代理机制?
为父元素绑定事件,由子元素触发
20.目前为止,我们学过html,css,js,jquery,bootstrap简述这些技术的作用和技术之间的关联性?
html搭建页面框架,css修饰页面,js增加事件
21.谈谈你对于原型链的理解?
原型链中的方法,实例都可以调用
22.javascript的迭代方法有哪些
forEach map some every filter
23.举例说明值传递和引用传递的区别
var a={age:12}
var b=a;
b.age++
console.log(a);
-
是否使用过github? 你熟悉的git命令有哪些(至少5个)?
git add /status/commit/push/pull -
是否使用过阿里云,你使用的云服务器的操作系统是?写出10个你用过的linux命令并解释该命令的含义。
例如:
声明 $表示为linux操作系统的终端标识
$ cd [目录]] 切换目录,当目录为空的时候表示进入到家目录
…
mkdir 创建目录
touch 创建文件
cp
mv
rm
rmdir
ls
ls -a
ls -l
ls -h
ls -al
vi
vim
sudo
su
二、编程题 -
数组去重
例如:
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];
function test(arr){
var newArr=[];
for(var i=0;i<arr.length;i++){
if(newArr.indexOf(arr[i])== -1){
newArr.push(arr[i]);
}
}
console.log(newArr);
}
test(arr);
- 有一个数组中保存了多个对象,每个对象表示一个题目的信息(题目名称,提交次数,通过次数),
请你计算出题目难度并且整理数据重新按照题目名称自然排序。难度规则如下:
0=<Y/X<=0.3,题目难度为5,
0.3<Y/X<=0.6,题目难度为4,
0.6<Y/X<=1,题目难度为3,
参数为:
var arr = [{
name:‘math’,
commit_time:100,
pass_time:90
},{
name:‘algorithm’,
commit_time:10,
pass_time:8
},{
name:‘string’,
commit_time:50,
pass_time:1
},{
name:‘dp’,
commit_time:100,
pass_time:50
}]
输出格式参照:
var result = [{
name:‘algorithm’,
level:3
},{
name:‘dp’,
level:4
},{
name:‘math’,
level:3
},{
name:‘string’,
level:5
}]
newArr=[1,2,3,4,5];
var arr = [{
name:'math',
commit_time:100,
pass_time:90
},{
name:'algorithm',
commit_time:10,
pass_time:8
},{
name:'string',
commit_time:50,
pass_time:1
},{
name:'dp',
commit_time:100,
pass_time:50
}]
function test2(arr){
var newArr=[];
arr.forEach(function (item,index){
var obj={
name:item.name
}
var num=item.pass_time/item.commit_time;
if(num>=0&&num<=0.3){
var level=5;
}else if(num>0.3&&num<=0.6){
level=4;
}else if(num>0.6&&num<=1){
level=3;
}
obj.level=level;
newArr.push(obj)
})
newArr.sort(function (a,b){
if(a.name<b.name){
return -1;
}else{
return 1;
}
})
console.log(newArr)
}
test2(arr);
- 编写代码完成数组内元素的反转
var arr=[1,2,3,4,5,3,4,6,8,1];
var result=arr.reverse();
console.log(result);
- 使用你熟悉的排序算法完成数组的升序排列
参数格式:
var arr = [8,19,3,12,5,4,2,3,7,6,9];
var arr=[8,19,3,12,5,4,2,3,7,6,9];
var result=arr.sort(function(a,b){
if(a>b){
return 1;
}else{
return -1;
}
})
console.log(result);
- 现有DOM如下
- first
- second
- third
- fourth
- fifth
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
ul{
display: flex;
flex-direction: row;
justify-content: space-around;
}
li{
text-align: center;
width: 100px;
height: 100px;
background-color: aqua;
}
</style>
</head>
<body>
<ul>
<li>first</li>
<li>second</li>
<li>third</li>
<li>four</li>
<li>fifth</li>
</ul>
<script>
var uls=document.getElementsByTagName("ul")[0];
uls.onclick=function(event){
var a=event.target;
if(a.innerText=="first"){
alert(1)
}else if(a.innerText=="second"){
alert(2)
}
}
var lis=document.getElementsByTagName("li");
lis=Array.prototype.slice.call(lis,0);
console.log(lis)
lis.forEach((item,index)=>{
item.onclick=function(){
alert(index+1)
}
})
</script>
</body>
</html>