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。