前端面试常见技术问题Word文件下载.docx
- 文档编号:15795842
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:24
- 大小:39KB
前端面试常见技术问题Word文件下载.docx
《前端面试常见技术问题Word文件下载.docx》由会员分享,可在线阅读,更多相关《前端面试常见技术问题Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
3.bind和live的区别?
live方法其实是bind方法的变种,其基本功能就同bind方法的功能是一样的,都是为一个元素绑定某个事件,但是bind方法只能给当前存在的元素绑定事件,对于事后采用JS等方式新生成的元素无效,而live方法则正好弥补了bind方法的这个缺陷,它可以对后
生成的元素也可以绑定相应的事件.
1.js和jq如何转换?
jQuery对象是通过jQuery包装DOM对象后产生的对象。
jQuery对象是jQuery独有的,其可以使用jQuery里的方法,但是不能使用DOM的方法;
例如:
$("
#img"
).attr("
src"
"
test.jpg"
);
这里的$("
)就是jQuery对象。
DOM对象就是Javascript固有的一些对象操作。
DOM对象能使用Javascript固有的方法,但是不能使用jQuery里的方法。
document.getElementById("
img"
).src=“test.jpg"
;
这里的document.getElementById("
)就是DOM对象。
和document.getElementById("
).src="
;
是等价的,是正确的,但是$("
;
或者document.getElementById("
都是错误的。
1.DOM对象转成jQuery对象
对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了,$(DOM对象)
如:
varv=document.getElementById("
v"
//DOM对象
var$v=$(v);
//jQuery对象
转换后,就可以任意使用jQuery的方法。
2.jQuery对象转成DOM对象
两种转换方式讲一个jQuery对象转换成DOM对象:
[index]和.get(index);
(1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象。
如:
var$v=$("
#v"
varv=$v[0];
//DOM对象
alert(v.checked);
//检测这个checkbox是否被选中
(2)jQuery本身提供,通过.get(index)方法得到相应的DOM对象
var
$v=$("
varv=$v.get(0);
//DOM对象($v.get()[0]也可以)
//检测这个checkbox是否被选中
通过以上方法,可以任意的相互转换jQuery对象和DOM对象,需要再强调的是:
DOM对象才能使用DOM中的方法,jQuery对象是不可以使用DOM中的方法。
----------JS----------
1.给出一个数组如何去掉重复的项?
实现一个把数组里面的重复元素去除的方法:
主要的是Array的prototype的方法。
vararr=[1,3,5,3,6,9,1,2,2]
vararr=['
a'
'
b'
c'
ab'
bc'
]
functionremoveRepeat(arr){
vari,tmpArr=[];
for(iinarr){
if(tmpArr.join('
).indexOf(arr[i])==-1){
tmpArr.push(arr[i]);
}
}
returntmpArr;
varr=removeRepeat(arr);
console.log(r);
二.方法:
Array.prototype.unique=function(){
for(iinthis){
if(typeofthis[i]!
='
function'
){
).indexOf(this[i])==-1){
tmpArr.push(this[i]);
];
varr=arr.unique();
2.js如何实现面向对象?
varname='
ChenHao'
varemail='
haoel(@)'
varwebsite='
'
varchenhao={
name:
'
email:
website:
};
//以成员的方式
chenhao.name;
chenhao.email;
chenhao.website;
//以hashmap的方式
chenhao["
name"
email"
website"
//我们可以看到,其用function来做class。
varPerson=function(name,email,website){
this.name=name;
this.email=email;
this.website=website;
this.sayHello=function(){
varhello="
Hello,I'
m"
+this.name+"
,\n"
+
"
myemailis:
+this.email+"
mywebsiteis:
+this.website;
alert(hello);
};
varchenhao=newPerson("
ChenHao"
"
haoel@"
"
chenhao.sayHello();
1.Javascript的数据和成员封装很简单。
没有类完全是对象操作。
纯动态!
2.Javascriptfunction中的this指针很关键,如果没有的话,那就是局部变量或局部函数。
去找最紧跟的上一个function。
3.Javascript对象成员函数可以在使用时临时声明,并把一个全局函数直接赋过去就好了。
4.Javascript的成员函数可以在实例上进行修改,也就是说不同实例相同函数名的行为不一定一样。
3.js如何实现继承?
定义一个Dog对象,并增加一个name属性,该属性可以在新建对象时通过参数传入
functionDog(name){
//通过原型方式扩展Dog对象
Dog.prototype={
//重新覆盖构造函数让其指向Dog
constructor:
Dog,
Wow:
function(){
console.group();
console.info("
Iam:
+this.name);
WangWang...."
console.groupEnd();
},
yelp:
this.Wow();
}
functionMadDog(name){
Dog.apply(this,[name]);
MadDog.prototype=newDog();
//重新覆盖构造函数,让其指向MadDog
MadDog.prototype.constructor=MadDog;
MadDog.prototype.yelp=function()
{
self=this;
setInterval(function(){
self.Wow();
},5000);
varxiaoXian=newDog("
xiaoXian"
xiaoXian.yelp();
varxiaoMang=newMadDog("
xiaoMang"
xiaoMang.yelp();
console.log(xiaoXian.constructor==xiaoMang.constructor);
4.如果扩展js中原生的String对象?
string的方法?
String.prototype.name=function(){}
Slice从字符串的第一个参数提取第二个参数,也可以截取数组。
返回的结果类型:
string/object
Substring从字符串的第一个参数提取第二个参数,返回的结果类型,string。
Indexof返回短字符串在长字符串出现的位置。
Lastindexof返回最后一个短字符串出现的位置。
Replace字符串的替换方法,
Split字符串分割方法,能转换为数组,数组转换字符串,用jion()方法。
5.document.ready()和window.onload的区别?
Document.ready()是jQuery中准备出发的事件,当加载到当前元素就执行了,
Window.onload是整个页面加载之后才执行。
5.闭包是什么?
闭包是有权访问另一个函数作用域中的变量的函数。
闭包是个函数,而它“记住了周围发生了什么”。
表现为由“一个函数”体中定义了“另一个函数”
“闭包”是一个表达式(一般是函数),它具有自由变量以及绑定这些变量的环境(该环境“封闭了”这个表达式)。
1.闭包有权访问函数内部的所有变量。
2.当函
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 前端 面试 常见 技术 问题