原文: http://pij.robinqu.me/Browser_Scripting/Document_Loading/ScriptExecution.html
- 本文须要补充更多例子
- 本文存在讲明,但该网站的Markdown编辑器不支持,所以没法一般展现,请到原文参考。
剧本实行体式格局
实行进口
- script标签
-
eval
函数 -
Function
组织函数 -
setTimeout
和setInterval
函数 - HTML标签内的事宜绑定相干的内联函数(
onclick
等) - 其他hacks
script标签
最基本,最经常运用的剧本引入体式格局。比方:
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
只管在HTML4和XHTML内里,请求开发者运用type
属性来制订剧本的范例。然则主流浏览器都默许以为剧本范例是text/javascript
。
在HTML5的范例内1,script
标签的type属性是完整可选的。
eval函数
-
eval
is evil -
eval
有接见当地scope的权益
var a = 1;
eval("a=2");
a === 2; // ==> true
Function组织函数
- function是“first-class citizen”2;天然有响应的组织函数
new Function(arg1, arg2, ..., fnStr)
-
Function
3组织函数实质是建立一个函数对象;其建立的函数实行也并不能接见其地点建立环境的闭包,只能接见当地作用域(local scope)和全局作用域(global scope) -
Function()
和new Function()
结果一样
(function() {
var a = 1;
var func = new Function("a=2");
func();
a === 2; // ==> false
}());
a === 2; // ==> true
setTimeout和setInterval
setTimeout("alert('haha')", 0);
这个和eval有异曲同工之妙,对作用域的接见也是相似的。
别的要说名,以上几点,除了script标签的要领以外,其他要领都在strict
形式4下不可用。
HTML内联事宜回调
<a href='#hello' onclick="alert(this.href)">Say hello</a>
如许如同在click事宜的Target Phase
运行了一个回调。this
指向目的元素自身。
其他Hack
应用MessageChannel等新特征能够触发一些函数的实行5。或许Javascript的其他的角落也有不少其他实行剧本的进口吧。
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 ↩