1、异步和回调
- 异步:不等任务执行完,直接执行下一个任务。
function taskAsync = function(){
var result = setTimeout(function(){
console.log('异步任务的结果')
},3000)
return result
}
var result = taskAsync() //result不是异步任务的结果,而是一个timer id
otherTask() //立即执行其他任务,不等异步任务结束
回调就是一种特殊的函数调用方式。
例如
functon fn(fn2){
fn2.call()
}
fn 将别人传给它的 fn2 调用了,这种调用就是回调。
2、js中window.location.search的用法和作用
3、call、apply、bind 的用法分别是什么?
bind与apply、call最大的区别就是:bind不会立即调用,其他两个会立即调用例子: 如果多次调用bind,那么多出来的次数都是无效的, 三个的使用区别:都是用来改变函数的this对象的指向的;第一个参数都是this要指向的对象;都可以利用后续参数传参;bind是返回对应函数,便于稍后调用,apply、call是立即调用;
4、innerHTML和innerText
innerText是以文本的方式 在写入页面的时候也是文本
innerHTML在写入的时候可以让用户者写入标签,会出问题
5、DOM对象和js对象以及jQuery对象的区别
DOM对象和js对象以及jQuery对象的区别
一、DOM对象
文档对象模型简称DOM,是W3C组织推荐的处理可扩展置标语言的标准编程接口。
DOM实际上是以面向对象方式描述的文档模型。DOM定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。
通过DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。 HTML
DOM 独立于平台和编程语言。它可被任何编程语言诸如 Java、JavaScript 和 VBScript 使用。
DOM对象,即是我们用传统的方法(javascript)获得的对象。
DOM准确说是对文档对象的一种规范标准(文档对象模型),标准只定义了属性和方法行为。
二、JavaScript 对象
JavaScript 提供多个内建对象,比如 String、Date、Array 等等。
对象只是带有属性和方法的特殊数据类型。
通过js获取的DOM对象就是js对象
当浏览器支持js的dom接口(api)时,这里狭义的dom对象是以js对象的形式出现的,也就是一个js对象
jQuery对象其实是一个JavaScript的数组,这个数组对象包含125个方法和4个属性
4个属性分别是
jquery 当前的jquery框架版本号
length 指示该数组对象的元素个数 .
context 一般情况下都是指向HtmlDocument对象 .
selector 传递进来的选择器内容
jquery对象就是通过jQuery包装DOM对象后产生的对象。jQuery对象是jQuery独有的,其可以使用jQuery里的方法,但是不能使用DOM的方法;反过来Dom对象也不能使用jquery的方法
jQuery对象和js对象区别:
1.jQuery对象属于js的数组;
2.jQuery对象是通过jQuery包装的DOM对象后产生的;
3.jQuery对象不能使用DOM对象的方法和属性
4.DOM对象不能使用jQuery对象的方法和属性
jQuery对象和js对象之间的相互转换
1) js转jQuery对象:
$(js对象)
2)jQuery对象转js对象
示例:
var doc2=$("#idDoc2")[0];
//转换jQuery对象为DOM对象
doc2.innerHTML="这是jQuery的第一个DOM对象"
//使用jQuery对象本身提供的get函数来返回指定集合位置的DOM对象
var doc2=$("#idDoc2").get(0);
doc2.innerHTML="这是jQuery的第二个DOM对象"
6、function与Function的区别
1、function 是关键字,如if else var let function;
2、Function 全局对象;
var 声明的是一个变量,function声明的是一个函数。
7、$(".a").eq(0) 和 $(”.a“)[0]的区别
$('.a') // 选择了3个a,都是jq对象(可以用jq的属性、方法)
$('.a').eq(1) // 选择了第二个a,是jq对象(不可以使用dom属性方法,可以用jq的属性、方法)
$('.a')[1] // 选择了第二个a,是dom对象(可以使用dom属性,方法,不可以使用jq属性方法)
$('.a').eq(1)[0] // 选择了第二个a,并且转化成都是dom对象(可以使用dom属性,方法,不可以使用jq属性方法)
$('.a')[0].eq(1) // 错误,因为dom对象用不了jq方法,eq()是jq方法。
getBoundingClientRect用于获取某个元素相对于视窗的位置集合。集合中有top, right, bottom, left等属性。
1.语法:这个方法没有参数。
rectObject=object.getBoundingClientRect();
2.返回值类型:TextRectangle对象,每个矩形具有四个整数性质( 上, 右 , 下,和左 )表示的坐标的矩形,以像素为单位。
rectObject.top:元素上边到视窗上边的距离;
rectObject.right:元素右边到视窗左边的距离;
rectObject.bottom:元素下边到视窗上边的距离;
rectObject.left:元素左边到视窗左边的距离;
示图:
3. 兼容性:我用ie11的Document Mode模式测试,ie5以上都能支持。
网友评论