摘要:廖雪峰老師的教程學習筆記錯誤處理提供了像一樣的錯誤處理機制,即例如其中不是必須的,也不是必須的,但二者必須有其一,其中是必定會被執(zhí)行的。其中其中函數(shù)將在超時后執(zhí)行。
廖雪峰老師的javascript教程學習筆記
1. 錯誤處理JavaScript 提供了像Java一樣的錯誤處理機制,即try catch finally.
例如:
try{ var s = null; s.length; // TypeError: Cannot read property "lenght" of null }catch(err){ console.log("null pointer" + err); }finally{ // clear resource. }
其中catch不是必須的,finally也不是必須的,但二者必須有其一,其中finally是必定會被執(zhí)行的。
錯誤類型,TypeError繼承于Error,還有ReferenceError等錯誤處理對象,可以通過捕獲到的e,通過instance判斷出的具體的Error類型。
它還允許拋出異常,關鍵字throw,像java一樣。
var n = "ss"; if(isNaN(n)){ throw new Error("input error"); }
實際上,JavaScript允許拋出任意對象,包括數(shù)字、字符串。但是,最好還是拋出一個Error對象。
2. 錯誤傳播向上一層傳遞,就像Java的Exception一樣,Java會把整個調用棧都會打出來,JS也同樣。
3. 異步錯誤處理JavaScript引擎是一個事件驅動的執(zhí)行引擎,代碼總是以單線程執(zhí)行,而回調函數(shù)的執(zhí)行需要等到下一個滿足條件的事件出現(xiàn)后,才會被執(zhí)行。
function printTime() { throw new Error(); } try { setTimeout(printTime, 1000); console.log("done"); } catch (e) { alert("error"); }
其中window.setTimeout(func, delay, pars...)其中func函數(shù)將在超時后執(zhí)行。由于是異步,所以setTimeout會立即執(zhí)行完成,并執(zhí)行下一句打印log,然后等到超時后,被觸發(fā)執(zhí)行,然后throw error,而這時并不會被catch。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/86511.html
摘要:函數(shù)的作用域也可被分為全局作用域和局部作用域函數(shù)作用域被定義在指定函數(shù)內(nèi)部的函數(shù)被稱為局部函數(shù)或內(nèi)部函數(shù)。局部變量在函數(shù)內(nèi)部聲明的變量被成為局部變量,它只能在函數(shù)的內(nèi)部進行訪問。 作用域 概述 變量和函數(shù)都具有作用域 作用域就是變量和函數(shù)的可被訪問的范圍 控制著變量和函數(shù)的可見性和生命周期。變量的作用域可被分為全局作用域和局部作用域(函數(shù)作用域) 如果變量是被定義在全局作用域的話 在J...
摘要:實參函數(shù)調用時實際傳入的參數(shù)是函數(shù)的實際參數(shù),簡稱實參。簡單來說,就是調用函數(shù)時使用的參數(shù)就是實參。函數(shù)用于執(zhí)行以字符串形式出現(xiàn)的代碼。創(chuàng)建的一個的源代碼的字符串表示。對已編碼的統(tǒng)一資源標識符進行解碼,并返回其非編碼形式。 函數(shù) 概述 函數(shù)是這樣一段JavaScript代碼,它只定義一次,但是可能被執(zhí)行或調用多次。簡單來說,函數(shù)就是一組可重復使用的代碼。 定義函數(shù) 定義函數(shù)有兩種方式...
摘要:網(wǎng)上有很多前端的學習路徑文章,大多是知識點羅列為主或是資料的匯總,數(shù)據(jù)量讓新人望而卻步。天了解一個前端框架。也可以關注微信公眾號曉舟報告,發(fā)送獲取資料,就能收到下載密碼,網(wǎng)盤地址在最下方,獲取教程和案例的資料。 前言 好的學習方法可以事半功倍,好的學習路徑可以指明前進方向。這篇文章不僅要寫學習路徑,還要寫學習方法,還要發(fā)資料,干貨滿滿,準備接招。 網(wǎng)上有很多前端的學習路徑文章,大多是知...
摘要:目前,中關村黑馬程序員訓練營已成長為行業(yè)學員質量好課程內(nèi)容深企業(yè)滿意的移動開發(fā)高端訓練基地,并被評為中關村軟件園重點扶持人才企業(yè)。黑馬程序員的學員篩選制度,遠比現(xiàn)在以上的企業(yè)招聘流程更為嚴格。系統(tǒng)的學習可以參考w3c的教程 web概念概述 * JavaWeb: * 使用Java語言開發(fā)基于互聯(lián)網(wǎng)的項目 * 軟件架構: 1. C/S: Client/Server 客戶端/服務...
摘要:若以多線程的方式操作這些,則可能出現(xiàn)操作的沖突。另外,因為是單線程的,在某一時刻內(nèi)只能執(zhí)行特定的一個任務,并且會阻塞其它任務執(zhí)行。瀏覽器事件觸發(fā)線程事件觸發(fā)線程,當一個事件被觸發(fā)時該線程會把事件添加到任務隊列的隊尾,等待引擎的處理。 首先,說下為什么 JavaScript 是單線程? 總所周知,JavaScript是以單線程的方式運行的。說到線程就自然聯(lián)想到進程。那它們有什么聯(lián)系呢? ...
閱讀 3049·2021-11-24 09:39
閱讀 2305·2021-10-08 10:05
閱讀 2830·2021-09-24 13:52
閱讀 1608·2021-09-22 15:07
閱讀 622·2019-08-30 15:55
閱讀 1838·2019-08-30 15:53
閱讀 719·2019-08-30 15:44
閱讀 3154·2019-08-30 11:20