(一)JavaScript基本文法

來源:互聯網
上載者:User

【一】   變數

1.     在ECMAScript中,不管什麼類型的變數,聲明都只是用var關鍵字

2.     變數名是區分大小寫

3.     變數名的開頭只能使用字母和“ $”和“_”

4.     特殊情況:

var num=10;

var num=5;

在大多數程式設計語言中都會發生程式錯誤

但在ECMAScript中被解釋為:

var num=10;

num=5;

【二】   資料類型分類

有9中資料類型:未定義(Undefined)、空(Null)、布爾(Boolean)、字串(String)、數值(Number)、對象(Object)、引用(Reference)、列表(List)、完成(Completion)

基本類型:

1)        undefined是未定義型。任何未賦值的變數都有一個undefined值,開發人員也可以把自己的變數賦值為undefined

2)        null是空類型,null是一個預留位置,表示一個變數已經有值,但是值為空白

3)        boolean例子:Javascript:alert(1<2); 結果:true

4)        string注意情況:

區分Null 字元串和空值:

var str=””; //Null 字元串,表示str是一個字串,字串的內容為空白

var str=null; //空值,表示str的值是空

不區分單引號和雙引號,但是要成對出現

5)        number:數實值型別

var num=10; //十進位

var num=1.99; //十進位小數

var num=010; //八進位

var num=0XFD; //十六進位

var num=9.99e+9; //科學計數

不管參與計算的數值時什麼進位的數值,計算結果必定為十進位

Number有三種特殊的常量值,分別是NaN、+Infinity、-Infinity

NaN:非數值常量表示一個值並不是合法的數值形式,通常用來驗證一個變數的值是否是數值。例子:javascript:var str=”abcd”; alert(str==NaN);

        +Infinity:正無窮變數表示一個數值運算式的結果是無窮大,ECMAScript規定2

        的1024次方以上的數位無窮大,例如:alert(Math.Pow(2,1024));結果:Infinity

參考型別:

參考型別通常被認為是類,而它的值是對象,例如:

var a=Object;

var b=a;

a.name=”abcd”;

alert(b.name); //結果為:abcd;

注意:因為被賦值的對象和原變數引用了同一個對象,修改任意一個引用時,另一個也會受影響

【三】   類型轉換

1、轉換成數實值型別

隱藏轉換:

        alert(‘101’-1); //字串轉數字,結果為100

alert(1-null); //null轉數值,結果為1

alert(true+false+1); //布爾值轉數值,結果為2

alert(1-undefined); //undefined轉數值,結果為NaN

顯示轉換:ParseInt()   ParseFloat()

2、轉換成字串類型

    alert(‘abcd’+null+undefined+123+true);結果:abcdnullundefined123true

3、轉換成布爾類型

【四】運算子

===值與資料類型都必須相等

其他運算子:

l         運算子instanceof

執行個體判斷運算子,用於判斷一個對象是否為一個類的執行個體

l         運算子void

取消回值運算子,用於取消一個運算式的結果,例如:

alert(void ParaseInt(‘123’)); 結果為:undefined

l         運算子delete

刪除值運算子,用來刪除對象的屬性或者數值中的元素,如下:

delete obj.a;

//通過方括弧運算子來調用屬性,刪除後再調用這個屬性時會得到undefined

delete obj[‘a’];

//刪除數組中的第一個元素,刪除後再調用array[0]時會得到undefined;

javascript:var a=[1,2,3]; delete a[0]; alert(a[0]);//結果:undefined

l         運算子in

屬性驗證運算子,可以驗證一個對象是否包含某屬性

【五】數組

var a=[1,’2’,true];

多維陣列:

var arr1=[1,2,3];

var arr2=[4,5,6];

var arr3=[arr1,arr2];

記住:

1)        可以存放任何類型的資料

2)        訪問數組中的元素必需通過索引,但試圖訪問不存在的索引時,例如a[-1],並不會報錯,而是返回一個undefined值

3)        如果試圖給一個不存在的索引賦值時,也不會發生程式錯誤,而是自動的拓展數組

【六】函數

文法:

Function 函數名(形式參數1,形式參數2,…,形式參數n)

{

語句

return 傳回值;

}

 

在Javascript定義一個函數一般有如下三種方式:

  1. 函數關鍵字(function)語句
    function fnMethodName(x){alert(x);}
  2. 函數字面量(Function Literals)
    var fnMethodName = function(x){alert(x);}
  3. Function()建構函式
    var fnMethodName = new Function('x','alert(x);')

上面三種方法定義了同一個方法函數fnMethodName,第1種就是最常用的方法,後兩種都是把一個函數複製給變數fnMethodName,而這個函數是沒有名字的,即匿名函數。實際上,相當多的語言都有匿名函數。

 

 

1function sub(a,b)

{

 return a-b;

}

alert(sub(3,5));

2//建立一個匿名函數

var func=new function()

{

   alert(‘func’);

}

func();

3//建立一個內部匿名函數

var func=new function()

{

   return function(){

    alert(‘這是一個內部匿名函數’);

}

}

func()()

 

《Javascript的一種模組模式》中的第一句話就是“全域變數是魔鬼”。配合var關鍵字,匿名函數可以有效保證在頁面上寫入Javascript,而不會造成全域變數的汙染。這在給一個不是很熟悉的頁面增加Javascript時非常有效,也很優美。

 

 

4javascript:(function(){alert('建立後直接運行!');})()

記住:

1)        參數名可以重複,但通過此參數擷取的值為實際傳遞參數值的最後一個,如果實際傳遞的參數值的個數少於重新命名的參數個數,那麼通過此參數名擷取的值為undefined

2)        即使函式宣告了參數,調用時也可以不傳遞參數值

3)        調用函數時可以傳遞若干個參數值給函數,而不用管函式宣告時有幾個參數,並且實際傳遞的參數值還都可以在函數內擷取,例如:

function arg()

{

   var result=’’;

   for(var i=0;i<arguments.length;i++)

{

 result+=arguments[i]+’,’;

 alert(‘調用者傳遞了’+arguments.length+’個參數,分別是:’+result);

}

}

arg(1,2,3,4,.5,6);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.