javascript
JS 基础 —— JavaScript 关键字(keyword)与保留字
轉載于: JavaScript 關鍵字(keyword)與保留字
一、JavaScript 所有關鍵字:
break case catch continue default delete do else finally for function if in instanceof new return switch this throw try typeof var void while with
主要想整理下幾個自己不怎么了解的關鍵字:
?
1、delete:刪除對象(而非構造方法或原型)的某個屬性
function obj(id,name){this.id = id;this.name = name;this.getName = function(){return this.name;} } var objOne = new obj(1,"objOneName"); var objTwo = new obj(2,"objTwoName"); alert("objOne名字為:"+objOne.getName());//提示objOneName delete objTwo.name; alert("objOne名字為:"+objOne.getName());//提示objOneName注意:只能刪除自身定義的公有屬性,即"this.屬性名"定義的屬性,而不能刪除私有屬性或通過proptotype定義的公有屬性(已實踐)。此外可刪除直接在對象上添加的屬性,如var a = new Object();a.name = "name";delete a.name;
?
2、throw 與 try...catch...finally:操作異常
JS 的幾種具體異常類型(都繼承自Error 異常類):
(1)、SyntaxError:語法錯誤,如代碼中不小心按了個特殊符號;
(2)、ReferenceError:引用錯誤,常見提示:Uncaught ReferenceError: a is not defined;
(3)、RangeError:范圍錯誤,常見對數組的操作等;
(4)、TypeError:類型錯誤,如:xxx is not a function;
(5)、.URLError:與url相關參數不正確,主要是encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()這六個函數;
(6)、EvalError:全局函數eval 執行錯誤(注:eval() 函數可計算某個字符串,并執行其中的的 JavaScript 代碼)。
throw 可拋出自定義對象,并可通過catch捕獲:
<script> function CommonException(message, code) { this.message = message; this.code = code; } try { var exception = new CommonException('您的代碼出錯啦', 1); throw exception; alert('這地方的代碼將不會執行到'); } catch (e) { alert(e.message); alert(e.code) } </script>(參考:http://blog.csdn.net/zhang197093/article/details/52055850)
?
3、in:與for 一起使用用于遍歷對象的屬性名
(1)、使用點一:在js中,for……in用于遍歷一個對象的屬性,把對象的屬性名和屬性值都提出來
var obj = {"key1":"value1","key2":"value2","key3":"value3" };//屬性名 function EnumaKey(){for(var key in obj ){alert(key);} }//屬性值 function EnumaVal(){for(var key in obj ){alert(obj[key]);} }重點:在使用for in遍歷對象時候,對象有一個重要的方法:hasOwnProperty()。該方法可以在遍歷對象屬性的時候可以過濾掉從原型鏈上下來的屬性。
?
?
(2)、使用點二:判斷某個對象是否具有某個屬性
對于一般的對象屬性需要用字符串指定屬性的名稱 ??如:
var mycar = {make: "Honda", model: "Accord", year: 1998}; "make" in mycar // returns true "model" in mycar // returns true對于數組對象,元素值對應的屬性名為數字類型,如:
// Arrays var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); 0 in trees // returns true 3 in trees // returns true 6 in trees // returns false "bay" in trees // returns false (you must specify the index number,// not the value at that index) "length" in trees // returns true (length is an Array property)注意:in 的右邊必須是一個對象,如:你可以指定一個用String構造器生成的,但是不能指定字符串直接量的形式:
var color1 = new String("green"); "length" in color1 // returns true var color2 = "coral"; "length" in color2 // generates an error (color is not a String object)此外,如果你使用delete操作符刪除了一個屬性,再次用in檢查時,會返回false;
如果你把一個屬性值設為undefined,但是沒有使用delete操作符,使用in檢查,會返回true。
(參考:http://www.cnblogs.com/renxiaoren/p/5942767.html)
4、instanceof :返回的是布爾值,而typeof 返回的是幾種數據類型的字符串值。
?
5、with:引用一個對象,使訪問屬性與方法更加方便(只能訪問與修改屬性,不能增加屬性與方法)
function obj(id,name){this.id = id;this.name = name;this.getName = function(){return this.name;} } var myObj = new obj(3,"three"); with(myObj){alert(id);//提示3alert(name);//提示threealert(getName());//提示threeid = 4;alert(id);//提示4 } alert(myObj.id);//提示4,說明with中是通過引用方式訪問的,而不是復制值的方式二、JavaScript 所有保留字
保留字是為以后js的擴展用的,不能作為普通變量名。列表:
abstract boolean byte char class const debugger double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile?
總結
以上是生活随笔為你收集整理的JS 基础 —— JavaScript 关键字(keyword)与保留字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nike如何抽签买鞋(耐克Nike)
- 下一篇: dnf智慧结晶有什么用 地下城与勇士