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>