剧本实行体式格局 - 文档加载 - 面向浏览器编程

原文: 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

  • 本文须要补充更多例子
  • 本文存在讲明,但该网站的Markdown编辑器不支持,所以没法一般展现,请到原文参考。

剧本实行体式格局

实行进口

  • script标签
  • eval函数
  • Function组织函数
  • setTimeoutsetInterval函数
  • HTML标签内的事宜绑定相干的内联函数(onclick等)
  • 其他hacks

script标签

最基本,最经常运用的剧本引入体式格局。比方:

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

只管在HTML4和XHTML内里,请求开发者运用type属性来制订剧本的范例。然则主流浏览器都默许以为剧本范例是text/javascript

在HTML5的范例内1script标签的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)
  • Function3组织函数实质是建立一个函数对象;其建立的函数实行也并不能接见其地点建立环境的闭包,只能接见当地作用域(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的其他的角落也有不少其他实行剧本的进口吧。

  1. http://www.w3.org/html/wg/drafts/html/master/scripting-1.html#the-script-element 

  2. https://developer.mozilla.org/en-US/docs/functional-javascript/First-class_citizen 

  3. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function 

  4. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode 

  5. https://github.com/kriskowal/asap/blob/master/asap.js 

    原文作者:RobinQu
    原文地址: https://segmentfault.com/a/1190000000515175
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞