javascript – 學習筆記1

來源:互聯網
上載者:User

<註:>此筆記並不是對javascript的詳細記錄,它記錄的是我在《javascript權威指南第三版》看到的並認為比較有意思的javascript的特徵。(javascript1.2)

1。 javascript與java特性集合不相交。javascript可以控制瀏覽器行為和內容,java可以進行繪圖、連網、多線程。javascript可以與嵌入在網頁中的Applet進行互動,並且能對Applet進行控制,從這一意義上說javascript可以指令碼話java。
2。 在掌握了javascript語言的核心後,在網頁中有效使用js的關鍵就是,學會使用瀏覽器顯示出來的文檔。
3。 許多js中的對象和屬性與所代表的HTML的標籤和屬性同名,但是js中他們通常都是小寫。
4。 js中的八位元值以0開頭,十六進位數值以0X或0x開頭。
5。 非數字值NaN  isNaN(),正無窮Infinity,負無窮-Infinity。
6。 函數直接量:var square = function(x){ return x*x; }
7。 函數的調用過程:使用"."文法將函數值從對象中提取出來,再使用"()"文法調用那個函數。
8。 對象的關聯陣列用法: image["width"] 。
9。 建立對象:

var point = new Object();
point.x = 2.3;
point.y = -1.2;

10。對象直接量:var point = {x : 2.3, y : -1.2};
11。數組和對象都是數值的集合,不同的是對象中每個數值都有一個名字,而數組中每個數值都有一個下標。
12。數組的建立:

var a = new Array();
a[0] = 1.2;
a[1] = "JavaScript";
a[2] = true;
a[3] = {x:1, y:3};

13。數組直接量:var a = [1.2, "JavaScript", true, {x:1, y:3}];
14。undefined 代表一個不存在的或者還沒有負值的變數或者屬性。
15。再給一個沒有聲明的變數負值時,會自動用那個變數名建立一個全域變數。
16。對於js來說把所有的變數聲明集中起來放在函數的開頭是個好的程式設計習慣。如果在函數末尾聲明,那末這個變數在整個函數中都是undefined,不管這個變數是不是負值後的全域變數。
17。原始類型:數值、布爾值、null、未定義的值。
18。參考型別:對象、數組、函數。
19。字串具有這兩種類型的性質。
20。window對象是所有javascript代碼的全域對象。全域變數是這個全域對象的屬性。
21。值的等同性(==)隱式類型轉換規則見"運算式和運算子"。
22。全同運算子(===)比較不做類型轉換。undefined不等於null。
23。typeof value; 返回運算子的類型。
24。constructor屬性是對建立對象的建構函式的引用。可以用於檢測對象的類型。
25。if(form.greeting === (void 0))可以用void 0 代表undefined來做比較。
26。for/in用於遍曆對象的所有可能的屬性。但是只包括使用者定義的類型,不能枚舉出某些預定義的屬性和方法。For(prop in myObject)
27。break lablename; 跳出到標籤處。
28。function語句。function f(a,b){return 1;}定義了一個新的函數對象,並把這個對象負給變數f。
29。Function建構函式。var f = new Function{"x", "y", "return 1;"}Function()建構函式允許動態建立和編譯一個函數,每次調用時都要對它們進行重新編譯。這種方法建立的函數被當作頂級函數來編譯。在函數體內部定義時,不遵循靜態範圍規則。Function()建構函式能將函數定義為js運算式的一部分,而不是一個語句。
30。函數直接量。var f = function(x,y){return 1;}匿名函數,名字是"anonymous"。
31。函數的用法:

a[0] = function(x){return x*x;};//定義一個函數,並儲存
b.sort(function(x){return x*x;});//定義一個函數,並把它當作參數
var tens = (function(x){return x*x;})(10);//定義並調用一個函數。

32。Function()建構函式建立的函數主體是一個字串,而函數直接量的主體是標準的javascript文法。
33。arguments函數的實際參數對象。
arguments.callee當前正在執行的函數。在匿名函數中調用自身。
arguments.caller當前函數的調用函數的實際參數對象。
34。定義函數的屬性:docheck.counter=0; function docheck(){retrun docheck.counter++;}(函數自己的全域變數,對於建構函式就是類變數、類方法)類方法只對它的參數進行操作,不能使用this關鍵字。
35。Object.prototype.toString.apply(obj, [1,2]);該方法可以在obj對象調用其它任何的對象的方法。call()方法與apply()方法相似,只不過傳遞給函數參數時使用的是參數列表而不是參數數組。
36。delete book.chapter2; delete可以真正的刪除對象的屬性。
37。book.chapter2 = book.No_such_property;把一個不存在的屬性負給它,從而使它的值變為未定義的。
38。建構函式:它是由new運算子調用的。用this引用新建立的Null 物件,並且要對新對象的屬性及方法進行適當的初始化。
39。this是對調用這個方法的對象的引用。
40。函數和方法的區別是,方法用來對this對象進行操作,而函數通常獨立運行,不使用this。
41。建構函式的prototype屬性設定對象的原型對象(不是"原型類",設定的是一個對象)。新對象繼承原型對象的所有屬性。
42。Function Circel(x){this.x =x;} Circel.prototype.pi = 3.14;通過這中方法添加Circle類的執行個體方法屬性,這些將被這個類的所有執行個體繼承。
43。原型對象的屬性是被類的所有對象共用的,所以通常只用它來定義對類的所有的對象都相同的屬性。這個屬性的繼承只發生在讀取屬性時,而在寫屬性時新對象建立這個屬性值,不會寫原型對象的屬性。
45。Object對象的toStirng()、valueOf()方法提供了可覆蓋的自訂實現方式。
46。自訂類的子類化:MoreComplex.prototype = new Complex(0,0); MoreComplex.prototype.constructor = MoreComplex;新類是繼承了Complex的對象的所有屬性的。同時要設定新類的prototype.constructor屬性,使它可以正確找到prototype的建構函式。
47。對象的watch、unwatch方法用於設定某個屬性的觀察點。
48。執行這些代碼:a = new Array(); a[0] = 1; a[10000] = "element 10,000"; 數組的length為10001。但是不給下標在0到10000之間的9999個元素分配記憶體。數組是稀疏的。
49。設定數組的length屬性是真正刪除數組元素的唯一方法。Delete不會改變數組的length屬性。
50。Regex直接量:var pattern = /s$/;
51。RegExp()建構函式:var pattern = new RegExp("s$");
52。js的函數是在定義他們的作用預中執行的,而不是在執行他們的作用預中執行的。例外的是RegExp對象的靜態屬性的作用預是動態。
53。顯示的類型轉換:String(x)、Number(x)、Boolean(x)、Object(x)。parseFloat()、parseInt()。
54。css隸屬於documnet對象,而<script>屬於window對象。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.