摘要:腳本執(zhí)行方式執(zhí)行入口標(biāo)簽函數(shù)構(gòu)造函數(shù)和函數(shù)標(biāo)簽內(nèi)的事件綁定相關(guān)的內(nèi)聯(lián)函數(shù)等其他標(biāo)簽最基本,最常用的腳本引入方式。
原文: http://pij.robinqu.me/Browser_Scripting/Document_Loading/ScriptExecution.html
源代碼: https://github.com/RobinQu/Programing-In-Javascript/blob/master/chapters/Browser_Scripting/Document_Loading/ScriptExecution.md
本文需要補(bǔ)充更多例子
本文存在批注,但該網(wǎng)站的Markdown編輯器不支持,所以無(wú)法正常展示,請(qǐng)到原文參考。
腳本執(zhí)行方式 執(zhí)行入口script標(biāo)簽
eval函數(shù)
Function構(gòu)造函數(shù)
setTimeout和setInterval函數(shù)
HTML標(biāo)簽內(nèi)的事件綁定相關(guān)的內(nèi)聯(lián)函數(shù)(onclick等)
其他hacks
script標(biāo)簽最基本,最常用的腳本引入方式。例如:
盡管在HTML4和XHTML里面,要求開(kāi)發(fā)者使用type屬性來(lái)制定腳本的類型。但是主流瀏覽器都默認(rèn)認(rèn)為腳本類型是text/javascript。
在HTML5的規(guī)范內(nèi)1,script標(biāo)簽的type屬性是完全可選的。
eval函數(shù)eval is evil
eval有訪問(wèn)本地scope的權(quán)利
var a = 1; eval("a=2"); a === 2; // ==> trueFunction構(gòu)造函數(shù)
function是“first-class citizen”2;自然有相應(yīng)的構(gòu)造函數(shù)
new Function(arg1, arg2, ..., fnStr)
Function3構(gòu)造函數(shù)本質(zhì)是創(chuàng)建一個(gè)函數(shù)對(duì)象;其創(chuàng)建的函數(shù)執(zhí)行也并不能訪問(wèn)其所在創(chuàng)建環(huán)境的閉包,只能訪問(wèn)本地作用域(local scope)和全局作用域(global scope)
Function()和new Function()效果一樣
(function() { var a = 1; var func = new Function("a=2"); func(); a === 2; // ==> false }()); a === 2; // ==> truesetTimeout和setInterval
setTimeout("alert("haha")", 0);
這個(gè)和eval有異曲同工之妙,對(duì)作用域的訪問(wèn)也是類似的。
另外要說(shuō)名,以上幾點(diǎn),除了script標(biāo)簽的方法之外,其他方法都在strict模式4下不可用。
HTML內(nèi)聯(lián)事件回調(diào)Say hello
這樣如同在click事件的Target Phase運(yùn)行了一個(gè)回調(diào)。this指向目標(biāo)元素本身。
其他Hack利用MessageChannel等新特性可以觸發(fā)一些函數(shù)的執(zhí)行5。也許Javascript的其他的角落也有不少其他執(zhí)行腳本的入口吧。
http://www.w3.org/html/wg/drafts/html/master/scripting-1.html#the-script-element??
https://developer.mozilla.org/en-US/docs/functional-javascript/First-class_citizen??
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function??
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode??
https://github.com/kriskowal/asap/blob/master/asap.js??
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/78130.html
摘要:相關(guān)腳本會(huì)立即下載并執(zhí)行。從上面兩個(gè)例子,可以充分了解到標(biāo)簽的柱塞式執(zhí)行。表示該標(biāo)簽并不柱塞,也不同步執(zhí)行。屬性帶有屬性的腳本,同樣會(huì)推遲腳本的執(zhí)行,并且不會(huì)阻止文檔解析。同時(shí),帶有的腳本彼此之間,能保證其執(zhí)行順序。 原文: http://pij.robinqu.me/Browser_Scripting/Document_Loading/ScriptTag.html 源...
摘要:保持與和的相似性,以便開(kāi)發(fā)人員能很快學(xué)會(huì)。年,網(wǎng)景公司的布蘭登與公司聯(lián)手開(kāi)發(fā)一個(gè)稱為的腳本語(yǔ)言。當(dāng)時(shí)微軟決定進(jìn)軍瀏覽器,發(fā)布了并搭載了一個(gè)的克隆版,叫做。在微軟進(jìn)入后,有種不同的版本同時(shí)存在以及。 一、JavaScript簡(jiǎn)介 JavaScript 是一種具有面向?qū)ο竽芰Φ?、解釋型的程序設(shè)計(jì)語(yǔ)言。更具體一點(diǎn),它是基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性的客戶端腳本語(yǔ)言。它的主要目的是,驗(yàn)證發(fā)...
摘要:是一種輕量級(jí)的編程語(yǔ)言,可插入頁(yè)面,由瀏覽器解釋并執(zhí)行。是一種弱類型的語(yǔ)言。采用事件驅(qū)動(dòng)方式,能隨時(shí)響應(yīng)鍵盤事件鼠標(biāo)事件及瀏覽器窗口事件等,并執(zhí)行指定的操作。是相對(duì)安全的。 ??百度網(wǎng)盤??提取碼:u6C4?Javas cript是世界上最流行的腳本編程語(yǔ)言,主要用于Web開(kāi)發(fā),也可用于服務(wù)器、PC、筆記本電腦、平板電腦和...
摘要:簡(jiǎn)介原文鏈接簡(jiǎn)稱是一種輕量級(jí),解釋型的編程語(yǔ)言,其函數(shù)是一等公民。標(biāo)準(zhǔn)的目標(biāo)是讓任何一種程序設(shè)計(jì)語(yǔ)言能操控使用任何一種標(biāo)記語(yǔ)言編寫出的任何一份文檔。核心規(guī)定了如何映射基于的文檔結(jié)構(gòu),以便簡(jiǎn)化對(duì)文檔的任意部分的訪問(wèn)和操作。 JavaScript 簡(jiǎn)介 原文鏈接 JavaScript ( 簡(jiǎn)稱:JS ) 是一種 輕量級(jí),解釋型 的編程語(yǔ)言,其函數(shù)是一等公民。眾所周知,它是用于網(wǎng)頁(yè)開(kāi)發(fā)的腳...
摘要:瀏覽器只是實(shí)現(xiàn)的宿主環(huán)境之一,其他宿主環(huán)境包括和。年月,版發(fā)布,成為國(guó)際標(biāo)準(zhǔn)。事件定義了事件和事件處理的接口。對(duì)于已經(jīng)正式納入標(biāo)準(zhǔn)的來(lái)說(shuō),盡管各瀏覽器都實(shí)現(xiàn)了某些眾所周知的共同特性,但其他特性還是會(huì)因?yàn)g覽器而異。 JavaScript 是面向 Web 的編程語(yǔ)言,絕大多數(shù)現(xiàn)代網(wǎng)站都使用了 JavaScript,并且所有的現(xiàn)代 Web 瀏覽器(電腦,手機(jī),平板)均包含了 JavaScri...
閱讀 2125·2023-04-26 00:41
閱讀 1159·2021-09-24 10:34
閱讀 3585·2021-09-23 11:21
閱讀 4135·2021-09-22 15:06
閱讀 1569·2019-08-30 15:55
閱讀 909·2019-08-30 15:54
閱讀 1837·2019-08-30 15:48
閱讀 564·2019-08-29 13:58