javascript 基礎(chǔ)篇2 數(shù)據(jù)類型,語句,函數(shù)
<script type="text/javascript">
<!-- (注意,這里必須換行)
xxxxxx;
--> (這一行也不可以寫東西。)
</script>
注意: 經(jīng)過測(cè)試發(fā)現(xiàn),js語句不可以跟注釋符號(hào)寫在同一行,不然的話就在新版的瀏覽器里也會(huì)失效。
javascript 的數(shù)據(jù)類型:
數(shù)值類型:包括所有的數(shù)字。
字符串類型 string 用“” 或‘'括起來表示
布爾類型 boolean =true 或 false。
變量:用來存儲(chǔ)數(shù)據(jù)的容器,在程序里存儲(chǔ)的數(shù)值時(shí)可以變化的。
變量的聲明: var 變量名[= 值];
如果變量在函數(shù)內(nèi)部聲明,那么它是局部的,如果在函數(shù)外,那就是全局的,意思你們懂的。
也就是說,不管聲明哪種類型的變量,都是用var, 具體是哪一種數(shù)據(jù)類型,則是在初始化之后確定的。如果沒有初始化的話,那么它就是個(gè)未定義類型的變量。
我們就利用上篇js里提到的小工程來玩兒一下它的數(shù)值類型好了。
在main.html里寫入:
<html>
<head>
<title>O.O</title>
<script type="text/javascript" src="js/output.js"></script>
<script type="text/javascript">
var a=456;
var b="Hello~";
var c=true;
var d;
document.write(a+""+ typeof a+"<br/>");
document.write(b+""+ typeof b+"<br/>");
document.write(c+""+ typeof c+"<br/>");
document.write(d+""+ typeof d+"<br/>");
</script>
</head>
<body>
This is my JSP page. <br/>
</body>
</html>
然后我們看輸出:
這里我們可以看到,typeof這個(gè)保留字,可以返回基本數(shù)據(jù)類型的名稱,除了這三種之外,還可以返回object的類型。
但是如果是特殊類型,就需要instanceof 來返回類型名稱了。
比如如果定義一個(gè) var obj=new Object(); 或者var date=new Date(); 使用typeof來返回它的類型( typeof obj ),輸出的是 object
數(shù)據(jù)類型的轉(zhuǎn)換:
從String轉(zhuǎn)換為int/float使用函數(shù): parseInt(String) / parseFloat(String) 例如:parseFloat("3.14159");
從數(shù)字類型轉(zhuǎn)換為string,使用 toString()函數(shù):比如:
var iNum=30; 30.toString(2);// 后面的括號(hào)里加個(gè)2,意思是轉(zhuǎn)換為二進(jìn)制字符串。
//同樣還可以有8進(jìn)制和十六進(jìn)制,如果沒有數(shù)字,那就是直接轉(zhuǎn)換了。
接下來就是做個(gè)小實(shí)驗(yàn)了,把剛才那個(gè)文件里script結(jié)點(diǎn)下的內(nèi)容換換:
<script type="text/javascript">
var a=456;
var b="789";
var c=a.toString()
var d=parseInt(b);
document.write(a+""+ typeof a+"<br/>");
document.write(c+""+ typeof c+"<br/>");
document.write(b+""+ typeof b+"<br/>");
document.write(d+""+ typeof d+"<br/>");
</script>
然后,運(yùn)行一下吧~
運(yùn)算:
運(yùn)算其實(shí)跟c java都一樣,都是加減乘數(shù)啊and啊,or啊的,其實(shí)沒什么差別。
這里就重申明一次i++和++i的差別吧。
i++是執(zhí)行一次i+1,但是返回i,比如我寫一句
var i=50;
if(i++<=50)
document.write(i);
那么運(yùn)行時(shí)的順序其實(shí)是:賦值:i=50, 判斷:if(i<=50), 執(zhí)行i=i+1 ,執(zhí)行判斷后的語句:xxxx。所以最后輸出的是51,我就不截圖了。
如果那里使用的是++i,那么返回的是加1后的值,也就是說不會(huì)有輸出了。
--------------------------------------------------------------------------------
語句部分
條件語句:if 和 switch
其實(shí)和c是一樣的,這部分并不需要多講,就是條件語句中也要注意一點(diǎn)小細(xì)節(jié):
js的if語句中,在下列情況下返回為false: null \ undefined \ 空字符串"" \ 0 \ false
關(guān)于空字符串還要注意下:var s=""和 var s=new String("")是不一樣的,后者開辟了內(nèi)存空間,所以返回true。
下面我們來驗(yàn)證一下吧~,javascript節(jié)點(diǎn)下:
<script type="text/javascript">
var a;
var b=new String("");
if(null) document.write("null");
if(0) document.write("0");
if(a) document.write("a undefined");
if(false) document.write("false");
if("") document.write("empty string");
if(b) document.write("new String()");
document.write("<br/>");
</script>
然后保存,刷新main頁面:
swith語句也試試好了:
<script type="text/javascript">
var date=new Date();
var day=date.getDay();
document.write(day+"<br/>")
switch(day){
case 6,7: document.write("weekend \(^o^)/");
break;
case 5: document.write("hold on~! last day!");
break;
default: document.write("work days.");
}
document.write("<br/>");
</script>
查看輸出:
前兩個(gè)唯一的差別就是循環(huán)和判斷的順序不同,do-while比while多循環(huán)一次,我就不舉例了。
for循環(huán)相信大家也熟的不能再熟了,我們就看for-in這一句。
這個(gè)其實(shí)是針對(duì)數(shù)組的,js中數(shù)組的初始化也挺奇特的比如我們?cè)趕cript結(jié)點(diǎn)里寫:(另外注意下數(shù)組的初始化,用的是中括號(hào))
<script type="text/javascript">
<!--
document.write("test<br/>");
var a=[3,4,5,7];
for(var test in a){
document.write(test+": "+a[test]+"<br/>");
}
-->
</script>
我們查看輸出:

從這個(gè)結(jié)果里我們探討出一下幾點(diǎn):
其中test其實(shí)算是一個(gè)int的數(shù)字,來表示數(shù)組的數(shù)標(biāo)。
for-in每次循環(huán)只能走一個(gè)數(shù),一般用來窮舉。
某些情況下,只能用for-in來窮舉,比如數(shù)組里存儲(chǔ)的內(nèi)容有string,有數(shù)字。
(當(dāng)然,如果硬要說的話,也不是只能用for-in,但是for-in要方便許多)
函數(shù)其實(shí)第一篇簡(jiǎn)單說過了。
1. 函數(shù)名前不需要返回值,參數(shù)列表里不需要寫類型。
2. 函數(shù)內(nèi)部定義的變量為局部變量,不可以在外面調(diào)用。
所以格式基本就是這樣:
function 函數(shù)名(參數(shù)列表){
xxxxxxx;
[return xxxx;] //可有可無
}
OK了,知道了格式,我們來嘗試一下:
<script type="text/javascript">
<!--
function add(a,b){
var c=a+b;
return c;
}
var x=20, y=45;
document.write(add(x,y));
document.write("<br/>"+c);
-->
</script>
輸出只有數(shù)字哦親,也就是說,第二行那個(gè)直接忽略(真悲劇啊),連undefined的標(biāo)準(zhǔn)都達(dá)不到。因?yàn)樗蔷植孔兞?。在函?shù)執(zhí)行完之后就被拋棄了。
除了這種規(guī)范的寫法之外,還有一種叛逆的,就是,定義函數(shù)的時(shí)候沒有寫參數(shù),但是函數(shù)體里也可以用參數(shù),這樣,當(dāng)有參數(shù)的時(shí)候,可以有輸出,此時(shí)因?yàn)槭褂玫膮?shù)沒有名字,就全存放在arguments數(shù)組里。舉個(gè)例子:
<script LANGUAGE="JavaScript">
<!--
function show(){
for(var temp in arguments)
document.write(arguments[temp]+"");
}
show(3,4,"Dumpling",4.67);
-->
</script>
PS:我把script結(jié)點(diǎn)里面的屬性換了一下,其實(shí)就是說也可以這么聲明javascript。LANGUAGE必須大寫
看輸出:
注意,這里面,經(jīng)測(cè)試function內(nèi),用arguments里存儲(chǔ)的數(shù)據(jù)做運(yùn)算也是可以的,比如
<script LANGUAGE="JavaScript">
<!--
function add(){
return arguments[0]+arguments[1];
}
document.write(add(4,44)+"");
document.write(add(4,"e55"));
-->
</script>
會(huì)輸出48 4e55。當(dāng)然,因?yàn)楹瘮?shù)體中用到了兩個(gè)參數(shù),所以如果你調(diào)用時(shí)只給了一個(gè)參數(shù),出來的結(jié)果并不是只輸出一個(gè)值的,有興趣自己測(cè)試下~如果你調(diào)用時(shí)給了3個(gè)參數(shù),那么第三個(gè)參數(shù)就無情的被忽略了。
除了上面這種還算規(guī)整的定義外,還有一些別的方式來定義函數(shù),比較非主流,我不喜歡用,不過還是要寫出來了解下:
一種是:var add=new Function("參數(shù)","參數(shù)",......,"函數(shù)體");
<script LANGUAGE="JavaScript">
<!--
var add = new Function("a","b","var c; c=a+b; return c");
document.write(add(4,87));
-->
</script>
輸出是正確無誤的,可以看到,最后一句不需要加分號(hào),木有問題,這里的道理就是,F(xiàn)unction其實(shí)是個(gè)類,然后add就變成了函數(shù)的名字了。
還有一種寫法:
<script LANGUAGE="JavaScript">
<!--
var show=function(name){
document.write("<br/>"+"Hellp "+name);
}
show("Dumpling");
-->
</script>
輸出大家都懂的。。這個(gè)寫法其實(shí)就是把函數(shù)名字寫到前面來了而已。
既然證明了函數(shù)其實(shí)是一個(gè)object,那么當(dāng)然它也有一些功能函數(shù)可以調(diào)用,比如toString()或者valueOf()函數(shù)可以打出完整,length可以返回函數(shù)的參數(shù)個(gè)數(shù)。
讓我們?cè)囈幌拢?
<script LANGUAGE="JavaScript">
<!--
var show=function(name){
document.write("Hello "+name);
}
show("Dumpling");
document.write("<br/>"+show.valueOf());
document.write("<br/> number of arguments: "+show.length);
-->
</script>
輸出:
Hello Dumpling
function (name){ document.write("Hello "+name); }
number of arguments: 1
OK 第二篇就到這里吧~明天繼續(xù) (/^o^)/
- javascript數(shù)據(jù)類型基礎(chǔ)示例教程
- JavaScript基礎(chǔ)語法與數(shù)據(jù)類型介紹
- js中基礎(chǔ)的數(shù)據(jù)類型詳解
- javascript基礎(chǔ)之?dāng)?shù)據(jù)類型詳解
- JavaScript的基礎(chǔ)語法和數(shù)據(jù)類型詳解
- JavaScript 變量,數(shù)據(jù)類型基礎(chǔ)實(shí)例詳解【變量、字符串、數(shù)組、對(duì)象等】
- JavaScript基礎(chǔ)心法 數(shù)據(jù)類型
- 淺談js基礎(chǔ)數(shù)據(jù)類型和引用類型,深淺拷貝問題,以及內(nèi)存分配問題
- Javascript基礎(chǔ)教程之?dāng)?shù)據(jù)類型轉(zhuǎn)換
- Javascript基礎(chǔ)教程之?dāng)?shù)據(jù)類型 (布爾型 Boolean)
- Javascript基礎(chǔ)教程之?dāng)?shù)據(jù)類型 (數(shù)值 Number)
- Javascript基礎(chǔ)教程之?dāng)?shù)據(jù)類型 (字符串 String)
- JavaScript基礎(chǔ)知識(shí)之?dāng)?shù)據(jù)類型
- javascript基礎(chǔ)數(shù)據(jù)類型轉(zhuǎn)換教程示例
相關(guān)文章
使用RequireJS優(yōu)化JavaScript引用代碼的方法
這篇文章主要介紹了使用RequireJS優(yōu)化JavaScript引用代碼的方法,RequireJS是一款人氣JS庫,需要的朋友可以參考下2015-07-07向JavaScript的數(shù)組中添加元素的方法小結(jié)
這篇文章主要介紹了向JavaScript的數(shù)組中添加元素的方法小結(jié),分別舉了一些JS數(shù)組操作的例子,基本需要的朋友可以參考下2015-10-10詳解JavaScript中undefined與null的區(qū)別
大多數(shù)計(jì)算機(jī)語言,有且僅有一個(gè)表示"無"的值,比如,C語言的NULL,Java語言的null,Python語言的none,Ruby語言的nil2014-03-03Javascript數(shù)組循環(huán)遍歷之forEach詳解
本篇文章主要介紹了Javascript 數(shù)組循環(huán)遍歷之forEach詳解,對(duì)學(xué)習(xí)forEach有很好的幫助,有需要的可以了解一下。2016-11-11JavaScript實(shí)現(xiàn)的GBK、UTF8字符串實(shí)際長度計(jì)算函數(shù)
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的GBK、UTF8字符串實(shí)際長度計(jì)算函數(shù),需要的朋友可以參考下2014-08-08