前端试题

1.bind(), live(), delegate()的区别
bind: 绑定事件,对新添加的事件不起作用,方法用于将一个处理程序附加
到每个匹配元素的事件上并返回 jQuery 对象。
live: 方法将一个事件处理程序附加到与当前选择器匹配的所有元素(包含
现有的或将来添加的)的指定事件上并返回 jQuery 对象。
delegate: 方法基于一组特定的根元素将处理程序附加到匹配选择器的所有
元素(现有的或将来的)的一个或多个事件上。

2.JavaScript 的数据类型都有什么?
基本数据类型:String,boolean,Number,Undefined, Null
引用数据类型:Object(Array,Date,RegExp,Function)

3.var numberArray=[3,6,2,4,1,5]; (考察基础 API)?
//实现数组的倒排
console.log("倒排后的数组为:"+numberArray.reverse());
//实现数组的降序
console.log("数组降序为:"+numberArray.sort().reverse());

var arr=[1,2,3,4,5,6];
var newArr=arr.slice(0,arr.length-2);
console.log(newArr);

4.用 js 实现随机选取 10–100 之间的 10 个数字,存入一个数组,并排序?

//用 js 实现随机选取 10–100 之间的 10 个数字,存入一个数组,并排序.
//random() 方法可返回介于 0 ~ 1 之间的一个随机数。
var numArr=[];
for(var k=0;k<10;k++){
    numArr.push(parseInt(10+Math.random(k)*(100-10)));
}
console.log(555,numArr.sort());

5.把两个数组合并,并删除第二个元素。
var array1 = ['a','b','c'];
var bArray = ['d','e','f'];
var getNewArr = array1.concat(bArray);
getNewArr.splice(1,1);//删除第二个元素
console.log(111,getNewArr);

6.如何消除一个数组里面重复的元素?
var stratArr=[1,2,3,3,4,4,5,5,6,1,9,3,25,4];
var filterArr=stratArr.filter(function(element,index,self){
    return self.indexOf(element) === index;
});
console.log("去重后的数组为:"+filterArr);

7.左边容器无论宽度如何变动,右边容器都能自适应填满父容器剩余的宽度,用css样式实现?
/*左边容器无论宽度如何变动,右边容器都能自适应填满父容器剩余的宽度*/
.left{display: block;background-color: red;float: left;}
.right{display: block;width:100%;background-color: #3A8EE6;}
<div class="left"></div>
<div class="right"></div>

8.js 可否实现面向对象编程,如果可以如何实现 js 对象的继承?
//定义一个动物类
function animal(name){
    this.name=name||"tom";
    this.play=function(){//实例方法
    console.log(this.name+"正在浪浪浪");
    }
}
//继承该类的原型方法
animal.prototype.run=function(ball){
    console.log(this.name+"正在"+ball);
}
$(function(){
    var anm=new animal("huangbinbin"); 
    anm.play();
    anm.run("跑步健身");
});

9.split()和join() 的区别?
前者是切割成数组的形式,后者是将数组转换成字符串。

10.specify(‘hello,world’)//=>’h,e,l,l,o,w,o,r,l,d’实现 specify函数?
var df="hello,world";
var dd=df.replace(/,/g, "").split("");
var ddf=dd.join(",");
console.log(ddf);

11.js实现map方法
<script>
            $(function() {
                var map=new Map();  
                map.put("num1",1);  
                map.put("num2","wss");  
//                 alert(map.size());  
//                 alert(map.get("num"));  
                //paraArr.remove("num");  
                console.log(map.size());  
                console.log(map,map.get("num1"),map.get("num2"));    
            });
            
            
            /** 
             *  
             * 描述:js实现的map方法 
             * @returns {Map} 
             */
            function Map() {
                var struct = function(key, value) {
                    this.key = key;
                    this.value = value;
                };
                // 添加map键值对  
                var put = function(key, value) {
                    for (var i = 0; i < this.arr.length; i++) {
                        if (this.arr[i].key === key) {
                            this.arr[i].value = value;
                            return;
                        }
                    };
                    this.arr[this.arr.length] = new struct(key, value);
                };
                //  根据key获取value   
                var get = function(key) {
                    for (var i = 0; i < this.arr.length; i++) {
                        if (this.arr[i].key === key) {
                            return this.arr[i].value;
                        }
                    }
                    return null;
                };
                //   根据key删除  
                var remove = function(key) {
                    var v;
                    for (var i = 0; i < this.arr.length; i++) {
                        v = this.arr.pop();
                        if (v.key === key) {
                            continue;
                        }
                        this.arr.unshift(v);
                    }
                };
                //   获取map键值对个数  
                var size = function() {
                    return this.arr.length;
                };
                // 判断map是否为空    
                var isEmpty = function() {
                    return this.arr.length <= 0;
                };
                this.arr = new Array();
                this.get = get;
                this.put = put;
                this.remove = remove;
                this.size = size;
                this.isEmpty = isEmpty;
            }
        </script>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值