jQuery

$(document).ready() 和window.onload()的區(qū)別是什么?

window.onload是一個(gè)事件,當(dāng)文檔加載完成之后就會(huì)觸發(fā)該事件,可以為此事件注冊(cè)事件處理函數(shù),并將要執(zhí)行的腳本代碼放在事件處理函數(shù)中,于是就可以避免獲取不到對(duì)象的情況。

$(document).ready(function() { })的作用也是等相應(yīng)的DOM結(jié)構(gòu)加載完成之后再執(zhí)行相應(yīng)的腳本

?兩者的區(qū)別:

1、執(zhí)行時(shí)間的不同:

window.onload是等頁面所有的資源包括圖片、文檔等等加載完畢之后才執(zhí)行相應(yīng)的代碼。

$(document).ready(function() { })就是等文本的DOM結(jié)構(gòu)繪制完畢之后,并不一定加載完后執(zhí)行。

2、編寫的個(gè)數(shù)不同

在同一個(gè)頁面中使用 以下格式代碼來綁定多個(gè)事件是不生效。

window.onload = function a() { };

window.onload = function b() { };

只能通過這種的方式達(dá)到綁定多個(gè)事件處理函數(shù)的效果。

window.onload = function () {

function a() { };

function b() { };

}

$(document).ready(function() { }) 可以同時(shí)編寫多個(gè)。

3、簡化方法的不同

window.onload沒有簡化的方法

$(document).ready(function() { })可以簡化成:$.(function() { })

$.extend深拷貝怎么做?

$.extend的淺拷貝:

var a = {

name : 'zhangshan',

age : 28,

company : {

name : '騰訊',

address : '深圳',

size : 10000

}

};

var b = {

name : 'lisi',

age : 30,

company : {

name : '阿里巴巴',

address : '杭州'

},

stature : '172cm'

};

var c = $.extend(a,b);

console.log('a:' + JSON.stringify(a));

console.log('b:' + JSON.stringify(b));

console.log('c:' + JSON.stringify(c));

輸出結(jié)果:

?a:{"name":"zhangshan","age":28,"company":{"name":"騰訊","address":"深圳","size":10000}}

?b:{"name":"lisi","age":30,"company":{"name":"阿里巴巴","address":"杭州"},"stature":"172cm"}

?c:{"name":"lisi","age":30,"company":{"name":"阿里巴巴","address":"杭州"},"stature":"172cm"}

淺拷貝:當(dāng)b里面是基本類型的數(shù)據(jù)的時(shí)候就直接復(fù)制對(duì)應(yīng)的值,當(dāng)b里面是一個(gè)引用類型,就把該該指針指向的的堆內(nèi)存的地址復(fù)制給a.? 如果b中指向堆內(nèi)存的地址改變了,那么a中的指向該堆內(nèi)存的指針也變了。

var a = {

name : 'zhangshan',

age : 28,

company : {

name : '騰訊',

address : '深圳',

size : 10000

}

};

var b = {

name : 'lisi',

age : 30,

company : {

name : '阿里巴巴',

address : '杭州'

},

stature : '172cm'

};

var c = $.extend(true,a,b);

console.log('a:' + JSON.stringify(a));

console.log('b:' + JSON.stringify(b));

console.log('c:' + JSON.stringify(c));

a:{"name":"lisi","age":30,"company":{"name":"阿里巴巴","address":"杭州","size":10000},"stature":"172cm"}

b:{"name":"lisi","age":30,"company":{"name":"阿里巴巴","address":"杭州"},"stature":"172cm"}

c:{"name":"lisi","age":30,"company":{"name":"阿里巴巴","address":"杭州","size":10000},"stature":"172cm"}

深拷貝后修改任何一個(gè)拷貝對(duì)象所指向的內(nèi)存地址,都不會(huì)影響到目標(biāo)對(duì)象的值。

jQuery的鏈?zhǔn)秸{(diào)用的原理是什么?

調(diào)用jQuery對(duì)象上的API時(shí)返回的都是本對(duì)象——this,因?yàn)榉祷氐亩际峭粋€(gè)對(duì)象,所以可以使用鏈?zhǔn)秸{(diào)用的方式,減少代碼量,提高代碼效率。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • jQuery基礎(chǔ) 什么是JQ?一個(gè)優(yōu)秀的JS庫,大型開發(fā)必備JQ的好處?一簡化JS的復(fù)雜操作二不再需要關(guān)心兼容性三...
    幺七閱讀 1,006評(píng)論 0 2
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計(jì)者無需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性。 1....
    LaBaby_閱讀 1,498評(píng)論 0 2
  • Q&A: 1. Jquery 中, $(document).ready()是什么意思?和window.onload...
    進(jìn)擊的阿群閱讀 393評(píng)論 0 0
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式。設(shè)計(jì)者無需花費(fèi)時(shí)間糾纏JS復(fù)雜的高級(jí)特性。 1....
    LaBaby_閱讀 1,271評(píng)論 0 1
  • 一)jQuery九類選擇器【參見jQueryAPI.chm手冊(cè)】 目的:通過九類選擇器,能定位web頁面(HTML...
    奮斗的老王閱讀 1,082評(píng)論 0 51

友情鏈接更多精彩內(nèi)容