摘要:一錯誤與異常概述錯誤,指程序中的非正常運行狀態,在其它語言中稱為異常或錯誤將每個錯誤中創建個對象,描述包含的錯誤信息通過使用提供異常的處理語句,可以用結構化方式捕捉發生錯誤,異常處理代碼與核心代碼實現分離語句語句是指中處理異常一種標準方式,
JS(JavaScript)
一.錯誤與異常
1.概述
錯誤,指程序中的非正常運行狀態,在其它語言中稱為異常或錯誤將每個錯誤中創建個Error對象,描述包含的錯誤信息
通過使用JavaScript提供異常的處理語句,可以用結構化方式捕捉發生錯誤,異常處理代碼與核心代碼實現分離
2.try...catch語句
try...catch語句
是指JavaScript中處理異常一種標準方式,try語句是為嘗試,如出現錯誤,則以catch語句進行捕獲
try{ //用于捕獲指定語句中錯誤與異常 console.log(v); // 調用未定義變量-語法報錯 } catch(error) { //e-表示try語句中出現錯誤信息 console.log(error); } finally { console.log(error); }
3.錯誤類型
throw語句
用來拋出一個用戶自定義的異常,throw后的語句將不會被執行,且控制被傳遞到調用第一個catch塊,如沒有catch塊,將終止程序
function fn(v) { if (v) { } else { throw { name : "犬夜叉"}; } } // console.log(fn(10));//10 // console.log(fn()); var result; try { result = fn(); } catch (e) { result = "unkown"; console.log(e.name); } console.log(result);
二.this關鍵字
1.概述
定義個函數并一定要返回個對象,通過調用定義對象的位置
this基本用法
//定義一個全局變量 var v = 100; //this經常定義在函數的作用域中 function fn() { //this總是要返回一個對象 console.log(this.v); // this指向哪個對象不取決于函數定義位置 } //this指向哪個對象,取決于調用的位置 //fn();//函數的調用 // 定義個對象,將fn函數作為obj對象的方法 var obj = { v : 200, f : fn } console.log(this.v);
2.綁定規則
隱式綁定丟失
是指被隱式綁定函數丟失綁定對象,則為默認綁定,從而把this綁定到全局對象
var v = 100; //定義哥全局變量 function fn() { //定義個函數 console.log(this.v); } var obj = { v : 200, f : fn //對象的f()方法指向fn()函數 } //定義個全局變量,并被賦值為對象obj的f()方法 var fun = obj.f; //將fun作為個函數進行調用 fun();
顯式綁定
明確在調用時,this綁定對象,JS提供這apply()和call()兩個方法實現,第一個參數接收是個對象,把這對象綁定this,接著調用函數是這個this
var v = 100; //定義哥全局變量 function fn() { //定義個函數 console.log(this.v); } var obj = { v : 200, f : fn //對象的f()方法指向fn()函數 } //定義個全局變量,并被賦值為對象obj的f()方法 var fun = obj.f; //將fun作為個函數進行調用 fun.apply(obj);
new綁定
在JS中構造函數使用new操作符調用函數,內置包括對象函數所有函數都可以調用函數
1新創建個全新對象
2新對象綁定到函數調用this
3該函數如沒有返回其它對象,則new表達式的函數會返回到新的對象
function Hero(name) { this.name = name; } var hero1 = new Hero("犬夜叉"); var hero2 = new Hero("戈薇");
3.綁定例外
被忽略的this
null和undefined綁定在this對象,以call,apply或bind調用會被忽略
function fn(){ //定義個函數 console.log(this.v); } var v = 100; //定個全局變量 fn.call(null);//undefined //用call來調用函數 var result = Math.max.apply(null, [1,2,3,4,5,2,3]); console.log(result);
間接引用
有意無意的創建個函數,并調用這個函數為默認綁定
function foo() { console.log( this.a ); } var a = 2; var o = { a: 3, foo: foo }; o.foo(); // 3 var p = { a: 4 }; // p.foo = o.foo; // p.foo();// 4 (p.foo = o.foo)(); // 2
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96937.html
摘要:汪汪汪哈士奇大黃狗輸出結果為這樣寫依然存在問題全局變量增多,會增加引入框架命名沖突的風險代碼結構混亂,會變得難以維護想要解決上面的問題就需要用到構造函數的原型概念 showImg(https://segmentfault.com/img/remote/1460000017534338?w=1440&h=900); JS高級 前言 經過前面幾篇文章的學習,相信大家已經對js有了大部分的理...
摘要:一嚴格模式概述嚴格模式是什么在中是種限制性更強變種方式,不是個子集,在語義上與正常代碼有明顯得差異嚴格模式和非嚴格模式可共存,可選擇性的加入嚴格模式嚴格模式的目的將把陷阱直接變為明顯錯誤修正一些引擎難以優化錯誤,代碼有些時候嚴格模式會比非嚴 JS(JavaScript)一.嚴格模式1.概述 嚴格模式是什么 在JS中是種限制性更強變種方式,不是個子集,在語義上與正常代碼有明顯得差異嚴格模...
摘要:錯誤與異常描述表示代碼在運行時出現的不正常顯示解釋器會對每個錯誤創建一個對象對象中包含了錯誤的具體描述信息語句用于捕獲和處理代碼中的錯誤語句表示用于捕獲語句的錯誤語句表示用于處理語句中的錯誤語句語句表示終結塊當語句無法處理錯誤時,會執行語句 錯誤與異常 描述 表示JavaScript代碼在運行時出現的不正常顯示 解釋器會對每個錯誤創建一個Error對象 Error對象中包含了錯誤的...
摘要:嚴格模式描述嚴格模式可以分別作用在全局作用域中和函數作用域中嚴格模式是對代碼的一種限制方式嚴格模式可以將不明確顯示的錯誤轉變成明確顯示嚴格模式可以修正一些解釋器難以優化的錯誤嚴格模式下的變量禁止意外創建變量沒有開啟嚴格模式時在調用該變量時, 嚴格模式 描述 嚴格模式可以分別作用在全局作用域中和函數作用域中 嚴格模式是對JavaScript代碼的一種限制方式 嚴格模式可以將不明確顯...
摘要:函數式編程最后介紹一下函數式編程。函數式編程是一種歷史悠久,而又在最近頗為熱門的話題。函數式編程在面向對象一詞誕生以前就已經存在,不過它在很長一段時間里都被隱藏于過程式編程面向對象也是過程式編程的一種的概念之下。 2.1 JavaScript特點 總結以下幾個特點: 解釋型語言 類似與C和Java的語法結構 動態語言 基于原型的面向對象 字面量的表現能力 函數式編程 解釋型語言:...
閱讀 3674·2021-11-23 09:51
閱讀 1036·2021-11-19 11:30
閱讀 3360·2019-08-29 14:16
閱讀 3370·2019-08-29 12:12
閱讀 2363·2019-08-26 13:40
閱讀 3471·2019-08-26 12:21
閱讀 3073·2019-08-26 11:55
閱讀 2221·2019-08-26 11:35