js题目

一、简答题

  1. Javascript的组成?

ECMAScript DOM BOM

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

Node 浏览器

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

String Boolean NUll NUmber undefined

  1. 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   //引用数据类型,比较内存地址
  1. 请写出10个数组实例可以调用的方法
    push pop shift unshift slice() splice(begin,deleteCount,…) forEach map every some filter()

  2. 请写出10个字符串实例可以调用的方法
    indexOf() lastIndexOf() split(",") trim() substr() substring(begin,end) [1,3) concat() charAt() charCodeAt()
    slice()

  3. 请写出Math中常见的5个方法
    max() min() floor() ceil() random() round() tan() sin() cos() abs()

  4. 函数的调用方法有几种?
    1.test()
    2.test.call(this,参数列表)
    3.test.apply(this,参数数组)

  5. 解释什么是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);

  1. 是否使用过github? 你熟悉的git命令有哪些(至少5个)?
    git add /status/commit/push/pull

  2. 是否使用过阿里云,你使用的云服务器的操作系统是?写出10个你用过的linux命令并解释该命令的含义。
    例如:
    声明 $表示为linux操作系统的终端标识
    $ cd [目录]] 切换目录,当目录为空的时候表示进入到家目录

    mkdir 创建目录
    touch 创建文件
    cp
    mv
    rm
    rmdir
    ls
    ls -a
    ls -l
    ls -h
    ls -al
    vi
    vim
    sudo
    su
    二、编程题

  3. 数组去重
    例如:
    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);
  1. 有一个数组中保存了多个对象,每个对象表示一个题目的信息(题目名称,提交次数,通过次数),
    请你计算出题目难度并且整理数据重新按照题目名称自然排序。难度规则如下:
    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);
  1. 编写代码完成数组内元素的反转
        var arr=[1,2,3,4,5,3,4,6,8,1];
		var result=arr.reverse();
		console.log(result);
  1. 使用你熟悉的排序算法完成数组的升序排列
    参数格式:
    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);
  1. 现有DOM如下
    • first
    • second
    • third
    • fourth
    • fifth
    为每个li使用原生DOM API绑定点击事件,要求点击first的时候弹出1,点击second的使用弹出2
<!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>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值