javascript基礎編程の變數、對象、資料類型及函數

來源:互聯網
上載者:User

javascript基礎編程の變數、對象、資料類型及函數

在web標準中,網頁由結構、表現形式和行為三個部分組成。

結構標準---->XHTML;

表現形式標準----->CSS;

行為標準----->javascript;

javascript是一種專門設計用來給網頁增加互動性的程式設計語言,最初由Netscape公司開發,最後提交給了歐洲電腦製造商協會(ECMA)。

一、javascript特點:

1、javascript是一門解釋型語言,這意味著javascript代碼不需要預先編譯就可以執行。

2、javascript不能瀏覽器外用獨立運行

3、javascript不允許讀寫使用者的檔案(cookie除外),採用同源策略,只允許來自相同域的互動。

二、javascript能做什麼

1、給程式員一種全面控制HTML網頁中所有元素的能力;

2、可以在HTML網頁中放入動態文本;

3、響應使用者在使用網頁中產生的事件

4、校正用於輸入的資料

5、檢測訪問者的瀏覽器

6、建立cookie

三、javascript添加到XHTML網頁中的方式

1、內嵌

2、外聯

3、事件引入

事件引入,簡單樣本:

             Document     
四、變數

javascript是弱類型的,定義變數時無需明確的資料類型聲明,而且變數並一定要初始化

var test1 = 'hi',test2='hi';var sex = 'male',age=12;var test;
五、資料類型

分數字型和非數字型

非數字型:undefined、null、NaN、boolean、string

數字型:number

1、類型特徵:

(1)、undefined不是報錯,它也是一種類型,並且這種類型的值就是undefined,如

var temp;
temp的類型為undefined,值也為undefined;

(2)、當變數未聲明後者函數無返回值的時候,都會體現為undefined;

(3)、使用一個未聲明的變數將會報錯;

(4)、typeof不區分未賦值的變數和未聲明的變數;

var temp1;alert(typeof temp1);//undefinedalert(typeof temp2);//undefinedalert(temp2==undefined);//報錯

(5)、undefined是由null派生出來,因此javascript把它們定義為相等;

alert(null==undefined);//true

(6)、NaN不能用於算術計算,並且它與自身不相等
2、資料類型轉換

javascript中一切資料其實都是一個偽對象,這意味著實際上它們具有屬性和方法。

(1)、將boolean值、數字值轉換為字串最簡單的方法toString()。

var bFound = false;alert(bFound.toString());//'false'var iNum = 10;var gNum = 10.0;alert(iNum.toString());//'10'alert(gNum.toString());//'10'
(2)對於非數位原始值,javascript提供了parseInt()和parseFloat()方法轉換為數位方法。

只有對包含數位string類型調用這些方法,它們才能正確運行;對其他類型或純字元類型返回的都是NaN。

parseInt('1234blue');//1234parseInt('0xA');//10parseInt('22.5');//22parseInt('blue');//NaNparseFloat('1234blue');//1234.0parseFloat('0xA');//0parseFloat('22.5');//22.5parseFloat('22.345');//22.345parseFloat('0908');//908parseFloat('blue');//NaN
(3)強制轉換

使用強制轉換可以訪問特定類型的值,即使它是另一種類型的。

Boolean(value);

Number(value);

String(value);

當要轉換的值是至少有一個字元的字串、非零數字或對象時,Boolean()函數將返回true。如果該值是Null 字元串、數字0、undefined或null,它將返回false。可以用下面的程式碼片段測試Boolean型的強制類型轉換。

Boolean('');//falseBoolean('hi');//trueBoolean(100);/trueBoolean(null);//falseBoolean(0);//falseBoolean(new Object());/true
Number()的強制類型轉換與parseInt()和parseFloat()方法處理方式相似,只是它轉換的是整個值,而不是部分值。例如:

parseInt('4.2.6');//4parseFloat('4.2.6');//4.2Number('4.2.6');//NaN
因為整個字串值不能轉換為數字,所以為非數(NaN)。

如果字串的值能被完整的轉化,Number()將判斷調用parseInt()還是調用parseFloat()方法。

Number(false);//0Number(true);//1Number(undefined);//NaNNumber(null);//0Number('2.5');//2.5Number('56');//56Number('2.2.7');//NaNNumber(new Object());//NaNNumber(100);//100
String()是最簡單的,因為它可以把任何值轉換為字串。要執行這種強制類型轉換,只需要調用作為參數傳遞進來的值得toString()方法。

String(null);//'null'String(1);//'1'String(false);//'fasle'String(undefined);//'undefined'
3、引用資料類型

原生對象:由javascript提供的,獨立於宿主環境的對象,簡單點說,就是在ECMA-262標準中定義的對象。它包括Object、Function、Boolean、Date、Number、Error....

內建對象:內建對象實際上也是原生對象的一種,但是與原生對象不同的是,內建對象不需要顯式地初始化,因為它已經初始化了。ECMA-262隻定義了兩個內建對象:Globle和Math;

宿主對象:與瀏覽器有關的對象。所有BOM和DOM對象都屬於宿主對象。

4、javascript類
(1)object類

object類具有以下屬性:

constructor-----對建立對象的函數的引用。對於Object類,該引用指向原生的object()函數;

prototype-----對該對象的對象原型的引用。對於所有的類,它預設返回Object類的一個執行個體。

Object還有以下方法:

hasOwnProperty(property)------判斷對象是否具有某個特定的屬性。必須用字串指定該屬性。

isPrototypeOf(boject)------判斷該對象是否為另一個對象的原型。

propertyIsEnumerable(property)------判斷給定的屬性是否可以用for...in語句進行枚舉。

toString()------返回對象的原始字串表示。

valueOf()------返回最適合該對象的原始值。

(2)未經處理資料類型封裝器類

javascript中的Boolean、Number、String類分別是javascript未經處理資料類型Boolean、Number、String的封裝器類。

(3)Array類

var colors = new Array('red','blue','yellow');colors[25]='black';alert(colors.length);//26
其中下為3----24的值為null。

(4)Global類

Global類是javascript中最特別的對象,它不需要聲明和初始化。

eval()方法是javascript中最強大的方法,該方法就像整個javascript的解釋程式,接受一個參數,即要執行的javascript字串;

eval(alert('hello'));等價於alert('hello');//hello;var msg = 'hello world';eval('alert(msg)');//msgeval("function go(){'say hi'}");go();//say hi
(5)instanceof運算子

在使用typeof運算子時採用參考型別儲存值會出現一個問題,無論引用的是什麼類型的對象,它都返回“object”。而與typeof不同,instanceof方法要求開發人員明確地確認對象為某個特定的類型。

var o = new String('hello world');alert(o instanceof String);//true
六、函數

如果函數無明確的返回值,或調用了沒有參數的return語句,那麼它真正返回的值是undefined。







聯繫我們

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