標籤:
1:javascirpt是嚴格區分大小寫。
2:javascript(標識符)命名規則:第一個字元必須是一個字母、底線、貨幣符號,其它字元可以是字母、底線、貨幣符號或數字
3:ECMAScript標識符採用駝峰大小寫格式,也就是第一個字母小寫,剩下的每個單詞的首字母大寫。(但是沒有誰強制要求這個格式)
4:
//單行注釋
/*
*這是多行注釋
*/
5:每條語句最好用一個分號結尾,但是也可以省略分號。
6:
if (test)
alert(test); //有效但容易出錯,最好不要使用
if (test) {
alert(test);//推薦使用
}
7:var obj; 像這樣未經過初始化的變數會儲存一個特殊的值undefined
8:obj=100 這樣雖然有效,但不推薦,這樣相當於聲明了一個全域變數
9:ECMAScript有5種單一資料型別:Undefined,Null,Boolean,Number和String
1種複雜資料類型Object
10:typeof操作符
var message = ‘message‘;
typeof message
typeof(message)
11:Undefined類型只有一個值,即特殊的undefined
12:
var message;
alert(message)//undefined
alert(age);//報錯啦
13:最好顯示的初始設定變數,這樣的話當typeof操作符返回undefined值時,我們就知道被檢測的變數沒有被聲明,而不是尚未初始化
因為沒有聲明的變數用typeof操作符就會直接返回undefined
14要將一個值轉換為其對應的Boolean值,可以調用轉型函數Boolean()
15Number類型:八進位字面值的第一位必須是零,十六進位的字面值的前兩位必須是Ox
浮點婁可以這樣:var floatNum = .1;但是不推薦這樣使用
如果浮點數小數點後面沒有任何數字,那個這個數值就可以被作為整數值來儲存,同樣,如果浮點數本身就表示一個整數(如1.0)那麼該值也會被轉換為整數
14:Number.MAX_VALUE整數的最大值
Number.MIN_VALUE整數的最小值
如果計算得到一個超出javascript數值範圍的值,那麼這個數值自動轉換為特殊的Infinity,如果某次返回正的或負的Infinity值,那麼該值將無法繼續參與下一次計算
要想確定一個數值是不是有窮的,可以使用isFinite()函數
訪問Number.NEGATIVE_INFINITY和Number.POSITIVE_INFINITY可以得到正和負的Infinity的值,所以其實這兩個屬性分別儲存著-Infinity和Infinity
15NaN特點:1任何涉及到NaN的操作都會返回NaN,2NaN與任何值都不相等,其中包括NaN本身 isNaN()這個函數接受一個參數,該參數可以是任何類型,而此函數會幫我們確定這個參數是否“不是數值”
16parseInt能夠各種整數格式
Number(789)//不能轉換789Yun
parseInt("789Yun");
parseInt("0xa313", 16);//有基數設定 也可以轉換八進位
parseInt(""); //NaN
parseFloat只解析十進位值,因此它沒有用第二個參數指定基數的用法
parseFloat解析字串,如果此字串包含一個可解析為整數的數(沒有小數點或者小數點後面全部都是零) parseFloat()會返回整數
parseFloat("32.32")
17用雙引號表示的字串和用單引號表示的字串完全相同,任何字串長度都可以通過其length屬性取得
轉換為字串方法toString(),數值、布爾值、對象和字串都有些方法,但null和undefined值沒有此方法
toString()如果是數值調用的話,還可以傳遞基數 eg:var a = 123; a.toString(16);
在不知道值為null或undefined值時,可以使用轉型函數String(),這個函數能夠將任何類型的值轉換為字串,String()函數遵循轉換規則:1如果值有toString()方法,則調用該方法(沒有參數)返回相應的結果2如果值是null則返回"null"3如果值為undefined則返回"undefined"
18ECMAScript中的對象其實就是一組資料和功能的集合。在ECMAScript中,如果不能建構函式傳遞參數,則可以省略後面的那一對圓括弧
如下所示
var obj = new Object();
var obj = new Object;
19Object的每個執行個體都具有下列屬性和方法
constructor儲存著用於建立當前對象的函數
hasOwnProperty(propertyName)用於檢查給定的屬性在當前對象執行個體中(而不是在執行個體的原型中)是否存在
isPrototypeOf(object)用於檢查傳入的對象是否是另一個對象的原型
propertyIsEnumerable(propertyName)用於檢查給定的屬性是否能夠使用for-in語句
20with語句:
with (location) {
var qs = search.substring(1);
var hostName = hostname;
var url = href;
}
21switch
var num = 25;
switch (true) {
case num < 0: alert(‘less than 0‘); break;
case num >= 0 && num <= 10: alert(‘between 0 and 10‘); break;
case num > 10 && num <= 20: alert(‘between 10 and 20‘); break;
default: alert(‘more than 20‘);
}
switch語句在比較值時使用的是全等操作符,因此不會發生類型轉換
22函數中return語句之後的任何代碼都永遠不會執行
return 語句也可以不帶有任何傳回值,這種情況 下,函數在停止執行後將返回undefined值
23通過arguments對象的length屬性可以獲得有多少個參數傳遞給了函數,沒有傳遞值的具名引數將自動被賦予undefined值(ECMAScript中的所有參數傳遞的都是值,不可能通過引用傳遞參數)
24ECMAScript函數沒有重載
25與其它語言不同,ECMAScript沒有為整數和浮點數值分別定義不同的資料類型,Numer類型可用於表示所有數值
26ECMAScript中無須指定函數的傳回值,因為任何ECMAScript函數都可以在任何時候返回任何值
27ECMAScript函數中函數參數是以一個包含零或多個值的數組的形式傳遞的
28可以向ECMAScript函數傳遞任意數量的參數,並且可以通過arguments對象來訪問這些參數
javascript基本概念