javascript
JavaScript的数据类型---最全,最详细的数据类型,高级的工程师从数据类型开始
一.基本數(shù)據(jù)類型
??1.字符串數(shù)據(jù)類型
???? var hello="你好啊";
???? var hello='你好啊';
示例:
<script language="javascript">
<!--
?var hello = "你好啊";???// 使用雙引號定義字符串
?var name = "Peter";???// 使用單引號定義字符串
?alert( hello + name );???// 將兩個字符串合在一起顯示?
-->
</script>
?深入理解字符串--在JavaScript中不區(qū)分字符與字符串,字符也被當作字符串處理。常用轉(zhuǎn)義字符\n \t \r \f \' \" \\
<script language="javascript">
?var str1 = "1,使用回車換行符\n";?// 行尾使用“\n”作回車換行
?var str2 = "2,使用回車符\r";??// 行尾使用“\r”回車符
?var str3 = "3,使用:\t制表符\n";?// 中間使用一個制表符“\t”
?var str4 = "4,使用\"雙引號\"";??// 使用引號“\"”
?var str? = str1 + str2 + str3 + str4;?// 將4個字串符連接為了個串用于顯示
?alert(str);????// 在對話框是顯示連接后的串str
?document.write(str);
</script>?????
2.數(shù)值型數(shù)據(jù)--不像其他編程語言那樣區(qū)分整型、浮點型。
<script language="javascript">
????//?使用16進制數(shù)
?var i = 0Xa1;??// 分別定義兩個數(shù)字變量,并使用0x和0X作十六進制設(shè)置初值
?var j = 0xf2;
?var s = i + j;??// 十六進制變量i與j相加
????// 輸出為十進制
?document.write("<li>十六進制數(shù)0xa1等于十進制數(shù):" + i + "<br>" );
?document.write("<li>十六進制數(shù)0xf2等于十進制數(shù):" + j + "<br>" );
?document.write("<li>十六進制數(shù)0xf2加上0xa1的和為:" + s + "<br>" );
????//?使用8進制數(shù)
?var k = 0123;??// 分別定義兩個數(shù)值變量,分別用八進制值設(shè)置為初值
?var l = 071;
?var m = k + l;??// 兩個變量的值相加
????// 輸出為十進制
?document.write("<li>八進制數(shù)0123等于十進制數(shù):" + k + "<br>" );
?document.write("<li>八進制數(shù)071等于十進制數(shù):" + l + "<br>" );
?document.write("<li>八進制數(shù)0123加上071的和為:" + m + "<br>" );
????//?使用10進制
?var t1 = 0.1;??// 定義十進制小數(shù)數(shù)字的形式
?var t2 = 1.1;
?var t3 = 2e3;??// 使用科學(xué)計數(shù)法表示數(shù)值
?var t4 = 2e-3
?var t5 = 0.1e2;
?var t6 = 0.1e-2;?// 將各變量的值全部輸出
?document.write("<li>十進制帶小數(shù)的形式:" + t1 + "和" + t2 + "<br>" );
?document.write("<li>十進制科學(xué)記數(shù)2e3等于:" + t3 + "<br>" );
?document.write("<li>十進制科學(xué)記數(shù)2e-3等于:" + t4 + "<br>" );
?document.write("<li>十進制科學(xué)記數(shù)0.1e2等于:" + t5 + "<br>" );
?document.write("<li>十進制科學(xué)記數(shù)0.1e-2等于:" + t6 + "<br>" );
</script>
3.布爾型數(shù)據(jù)--布爾型只有真假兩個數(shù)據(jù)類型,真用true,假用false,非0既真,0為假
<script language="javascript">
<!--??
?var b1 = true;?// 定義布爾型變量b1并賦初始為“真”
?if( b1 )?// 判斷b1的真是否為真,真則執(zhí)行“{}”中的語句
?{
??document.write("變量b1的值為\"真\"<br>");
?}
?var b2 = false;
?if( b2 )
?{
??document.write("變量b2的值為\"真\"<br>");
?}
?else
?{
??document.write("變量b2的值為\"假\"<br>");
?}
?var b3 = 0.1;?// 定義數(shù)字類型變量b3并賦予非0值
?if( b3 )?// 此處b3被當作布爾型變量,并判斷真或假
?{
??document.write("變量b3的值為\"真\"<br>");
?}
?var b4 = -1;?// 定義數(shù)字類型變量b4并賦予非0值
?if( b4 )?// 此處b4被當作布爾型變量,并判斷真或假
?{
??document.write("變量b4的值為\"真\"<br>");
?}
?var b5 = 0;?// 定義數(shù)字類型變量并賦予0值
?if( b5 )?// 此處b5被當作布爾型變量,并判斷真或假
?{
??document.write("變量b5的值為\"真\"<br>");
?}
?else
?{
??document.write("變量b5的值為\"假\"<br>");
?}
-->
</script>
二.復(fù)合數(shù)據(jù)類型
1.常用內(nèi)置對象--將數(shù)據(jù)與處理數(shù)據(jù)的方法捆綁在一起形成一個整體,稱為對象。var obj=new Object();obj.toScript();
Object:所有對象的基礎(chǔ)對象
Array:數(shù)組對象,封裝了數(shù)組的操作和屬性
ActiveXObject:活動空間對象
arguments:參數(shù)對象,正在調(diào)用的函數(shù)的參數(shù)
Boolean:布爾對象,提供同布爾類型等價的功能
Date:日期對象,封裝了日期相關(guān)的操作和屬性對象
Error:錯誤對象,保存錯誤信息
Function:函數(shù)對象,用于創(chuàng)建函數(shù)
Global:全局對象,所有的全局函數(shù)和全局常量歸該類對象所有
Math:數(shù)學(xué)對象,提供基本的數(shù)學(xué)函數(shù)和常量
Number:數(shù)字對象,代表數(shù)值數(shù)據(jù)類型和提供數(shù)值常量的對象
String:字符串對象,提供操作的屬性的對象
2.常用日期對象--date=new Date();date=new Date(val);date=new Date(y,m,d[,h[,min[,sec[,ms]]]]);
<script language="javascript">
<!--
?var cur = new Date();??// 創(chuàng)建當前日期對象cur
?var years = cur.getYear();?// 從日期對象cur中取得年數(shù)
?var months = cur.getMonth();?// 取得月數(shù)
?var days = cur.getDate();?// 取得天數(shù)
?var hours = cur.getHours();?// 取得小時數(shù)
?var minutes = cur.getMinutes();?// 取得分鐘數(shù)
?var seconds = cur.getSeconds();?// 取得秒數(shù)
?????// 顯示取得的各個時間值
?alert( "此時時間是:" + years + "年" + (months+1) + "月"
??+ days + "日" + hours + "時" + minutes + "分"
??+ seconds + "秒" );
-->
</script>
getDate()返回對象中本地時間表示的日期
getYear()返回對象中本地時間表示的年值
getMonth()
getDay()
getHours()
getSeconds()
getMinutes()
setDate(dateVal)設(shè)置對象中的日期值
setYear(yearVal)
setMonth(monthVal)
<script language="javascript">
<!--?
?var dateObj = new Date();?// 創(chuàng)建一個日期對象?
?dateObj.setYear( 2007);?// 設(shè)置日期對象的年份?
?dateObj.setDate( 20 );??// 設(shè)置日期對象的日期
?dateObj.setMonth( 4 );??// 設(shè)置日期對象的月份
?????// 顯示日期對象中的時間
?alert( "dateObj中設(shè)定的時間為:" + dateObj.getYear() + "年"
??+ dateObj.getMonth() + "月" + dateObj.getDate() + "日" );
-->
</script>
3.理解全局對象--全局對象是所有全局方法的擁有者,用來統(tǒng)一管理全局方法,全局方法也指全局函數(shù)。不能使用new運算符創(chuàng)建對象實例
isNaN(value)判斷value是否是NaN,返回一個布爾型
parseFloat(string)返回有字符串string轉(zhuǎn)換的到的浮點數(shù)
parseInt(string)返回有字符串string轉(zhuǎn)換得到的整數(shù)
<script language="javascript">
<!--
?var a = NaN;
?var b = "123";
?var c = 123;
?var d = "1.23";
?document.write( "<b>Global對象的isNaN方法</b><br>" );
?var ta =? isNaN( a );?// 使用Global對象的isNaN()方法測試a的值?
?document.write( "<li>a的值是否是NaN:" + ta + "<br>" );
?var tb = isNaN( b );?// 測試b的值
?document.write( "<li>b的值是否是NaN:" + tb + "<br>" );
?var tc = isNaN( c );?// 測試c的值
?document.write( "<li>c的值是否是NaN:" + tc + "<br>" );
?document.write( "<b>Global對象的parseInt方法</b><br>" );
?var ib = parseInt( b );?// 使用Global對象的parseInt方法,將字符串“123”解析為數(shù)值123
?if( ib == c )
?{
??document.write( "<li>b解析為數(shù)值:" + ib + "<br>" );
?}
?document.write( "<b>Global對象的parseFloat方法</b><br>" );??
?var id = parseFloat( d );// 使用Global對象的parseFloat方法將字符串“1.23”解析為數(shù)值1.23
?if( id == 1.23 )
?{
??document.write( "<li>b解析為數(shù)值:" + id + "<br>" );
?}
-->
</script>
4.常用數(shù)學(xué)對象--Math.[{屬性名|方法名}];
PI返回圓周率
abs返回數(shù)字的絕對值
cos返回給定數(shù)的余弦值
sin返回數(shù)的正弦值
min返回給定數(shù)的最小值
max返回給定數(shù)的最大值
sqrt返回給定數(shù)的平方根
Tan返回給定數(shù)的正切值
round返回與給定數(shù)最接近的整數(shù)值
log返回給定數(shù)的自然對數(shù)
pow返回給定數(shù)的制定次冪
<script language="javascript">
<!--?
?var r = 2;?????// 定義變量表示半徑?
?var pi = Math.PI;????// 從Math對象中讀取周期率PI常量??
?var s = pi*r*r;?????// 計算面積
?alert("半徑為2單位的圓面積為:" + s + "單位" );?// 顯示圓的面積
-->
</script>
<script language="javascript">
<!--?
?var r1 = Math.sin( Math.PI/2 ); // 求余弦
?document.write("<li>弧度為pi/2的正弦值為:" + r1 + "<br>" );
?var r2 = 0-r1;
?var r3 = Math.abs( r2 );?// 求絕對值
?document.write("<li>" + r2 + "的絕對值為:" + r3 + "<br>" );
-->
</script>
5.常用字符串對象--String([strVal]);
<script language="javascript">
<!--
?// 詩的內(nèi)容
?var comment = "靜夜思李白床前明月光,疑是地上霜。舉頭望明月,低頭思故鄉(xiāng)。";
?var partial = comment.substring( 0, 3 );?// 取出標題
?partial = partial.bold();???// 標題加粗
?document.write( "<p align=\"center\">" );?// 輸出HTML標簽“<p>”,并設(shè)置居中對齊
?document.write( partial );???// 輸出標題
?partial = comment.slice( 3, 5 );??// 取出作者
?document.write( "<br>" );???// 輸出換行標簽<br>
?document.write( partial );???// 輸出作者
?partial = comment.slice( 5, 17 );??// 取出第一句詩文
?partial = partial.fontcolor("gray");??// 設(shè)置顏色為gray(灰色)
?document.write( "<br>" );???// 輸出換行標簽
?document.write( partial );???// 輸出詩句
?partial = comment.slice( 17, 29 );??// 取出第二句詩文
?partial = partial.fontcolor("gray");??// 設(shè)置顏色為gray(灰色)
?document.write( "<br>" );???// 輸出換行標簽
?document.write( partial );???// 輸出詩句
?document.write( "</p>" );???// 輸出HTML標簽“<p>”的結(jié)束標簽
-->
</script>
6.掌握數(shù)組對象--var a=new Array();var a=new Array(10,20,30,string,40);var a=[10,20,30,string,40];var a=new Array(3);
<script language="javascript">
<!--
?var poets = new Array( "王維",? "杜甫", "李白", "白居易" );?// 創(chuàng)建數(shù)組
?document.write("古代幾個大詩人:<br>");????// 輸出標題
?for( n in poets )??????// 逐個輸出數(shù)組元素
?{
??document.write( "<li>" + poets[n] );???// 輸出詩人的名字
?}
-->
</script>
三.其他數(shù)據(jù)類型
1.使用函數(shù)--function TypeName([arg,…]){this.arg=arg;}
<script language="javascript">
<!--
?function Card( owner, rate )???// 定義一車子對象
?{
??this.Owner = owner;???// 車主
??this.MaxRate = rate;???// 極速
?}
?var myCard = new Card( "Sunsir", "400KMpH" );?// 創(chuàng)建一個車子實例
?document.write( myCard.Owner + "的車子極速為" + myCard.MaxRate );?// 輸出車子的屬性
-->
</script>
2.空值--null
<script language="javascript">
<!--
?var x = 10;?// 定義變量x,并給其賦值10
?var y = null;?// 定義變量y,并賦一個空值,表示“什么都沒有”
?if( x == null )?// 如果x為空值則
?{
??document.write( "x的值為空<br>" );
?}
?if( y == null )?// 如果y為空則
?{
??document.write( "y的值為空<br>" );
?}
-->
</script>
3.不確定的類型--undefined
<script language="javascript">
<!--?
?var v0 = 1;??????// 定義一個值為1的變量?
?var v1 = null;??????// 定義一個變量,并指定值為null?
?var v2;???????// 定義一個變量,但不賦任何值?
?document.write("變量v0的內(nèi)容為:" + v0 + "<br>" );?// 分別輸出v0、v1、和v2的內(nèi)容
?document.write("變量v1的內(nèi)容為:" + v1 + "<br>" );
?document.write("變量v2的內(nèi)容為:" + v2 + "<br>" );?
?if( v1 == v2 )??????// 測試“null”和“undefined”的相等性
?{
??document.write("\"null\"和\"undefined\"相等<br>" );
?}
?else
?{
??document.write("\"null\"和\"undefined\"不相等<br>" );
?}
-->
</script>
四.數(shù)據(jù)類型的轉(zhuǎn)換
1.Javascript類型轉(zhuǎn)換的規(guī)則:Javascript的變量是松散類型的,它可以存儲Javascript支持的任何數(shù)據(jù)類型,其變量的類型可以在運行時被動態(tài)改變
2..隱式類型轉(zhuǎn)換
?
-
在某些情況下,即使我們不提供顯示轉(zhuǎn)換,Javascript也會進行自動類型轉(zhuǎn)換,主要情況有:
-
1.?用于檢測是否為非數(shù)值的函數(shù):isNaN(mix)--isNaN()函數(shù),經(jīng)測試發(fā)現(xiàn),該函數(shù)會嘗試將參數(shù)值用Number()進行轉(zhuǎn)換,如果結(jié)果為“非數(shù)值”則返回true,否則返回false。?
-
2.?遞增遞減操作符(包括前置和后置)、一元正負符號操作符--這些操作符適用于任何數(shù)據(jù)類型的值,針對不同類型的值,該操作符遵循以下規(guī)則(經(jīng)過對比發(fā)現(xiàn),其規(guī)則與Number()規(guī)則基本相同):?
(1)?如果是包含有效數(shù)字字符的字符串,先將其轉(zhuǎn)換為數(shù)字值(轉(zhuǎn)換規(guī)則同Number()),在執(zhí)行加
減1的操作,字符串變量變?yōu)閿?shù)值變量。??
(2)?如果是不包含有效數(shù)字字符的字符串,將變量的值設(shè)置為NaN,字符串變量變成數(shù)值變量。
-
(3)?如果是布爾值false,先將其轉(zhuǎn)換為0再執(zhí)行加減1的操作,布爾值變量編程數(shù)值變量。?
-
(4)?如果是布爾值true,先將其轉(zhuǎn)換為1再執(zhí)行加減1的操作,布爾值變量變成數(shù)值變量。?
-
(5)如果是浮點數(shù)值,執(zhí)行加減1的操作。??
- (6)如果是對象,先調(diào)用對象的valueOf()方法,然后對該返回值應(yīng)用前面的規(guī)則。如果結(jié)果是NaN,
-
3.加號運算操作符在Javascript也用于字符串連接符,所以加號操作符的規(guī)則分兩種情況:?
??如果兩個操作值都是數(shù)值,其規(guī)則為:??
-
?? (1)?如果一個操作數(shù)為NaN,則結(jié)果為NaN??
-
?? (2)?如果是Infinity+Infinity,結(jié)果是Infinity??
-
?? (3)?如果是-Infinity+(-Infinity),結(jié)果是-Infinity??
-
?? (4)?如果是Infinity+(-Infinity),結(jié)果是NaN??
-
?? (5)如果是+0+(+0),結(jié)果為+0??
?? (6)?如果是(-0)+(-0),結(jié)果為-0??
?? (7)?如果是(+0)+(-0),結(jié)果為+0?? -
??如果有一個操作值為字符串,則:??
?? (1)?如果兩個操作值都是字符串,則將它們拼接起來??
?? (2)?如果只有一個操作值為字符串,則將另外操作值轉(zhuǎn)換為字符串,然后拼接起來??
?? (3)?如果一個操作數(shù)是對象、數(shù)值或者布爾值,則調(diào)用toString()方法取得字符串值,然后再應(yīng)用前面的字符串規(guī)則。對于undefined和null,分別調(diào)用String()顯式轉(zhuǎn)換為字符串。??可以看出,加法運算中,如果有一個操作值為字符串類型,則將另一個操作值轉(zhuǎn)換為字符串,最后連接起來。?
4.乘除、減號運算符、取模運算符?
這些操作符針對的是運算,所以他們具有共同性:如果操作值之一不是數(shù)值,則被隱式調(diào)用Number()函數(shù)進行轉(zhuǎn)換。具體每一種運算的詳細規(guī)則請參考ECMAScript中的定義。?
-
5.?邏輯操作符(!、&&、||)
1.?邏輯非(!)操作符首先通過Boolean()函數(shù)將它的操作值轉(zhuǎn)換為布爾值,然后求反。 - 2.邏輯與(&&)操作符,如果一個操作值不是布爾值時,遵循以下規(guī)則進行轉(zhuǎn)換:?
-
(1)?如果第一個操作數(shù)經(jīng)Boolean()轉(zhuǎn)換后為true,則返回第二個操作值,否則返回第一個值(不是
Boolean()轉(zhuǎn)換后的值)??
(2)如果有一個操作值為null,返回null??3.?如果有一個操作值為NaN,返回NaN??
(3)如果有一個操作值為undefined,返回undefined??邏輯或(||)操作符,
-
3.如果一個操作值不是布爾值,遵循以下規(guī)則:?
(1)?如果第一個操作值經(jīng)Boolean()轉(zhuǎn)換后為false,則返回第二個操作值,否則返回第一個操作值
(不是Boolean()轉(zhuǎn)換后的值)??
(2)對于undefined、null和NaN的處理規(guī)則與邏輯與(&&)相同?
-
?6.?關(guān)系操作符(<,?>,?<=,?>=)?
與上述操作符一樣,關(guān)系操作符的操作值也可以是任意類型的,所以使用非數(shù)值類型參與比較時也需要系統(tǒng)進行隱式類型轉(zhuǎn)換:?
(1)如果兩個操作值都是數(shù)值,則進行數(shù)值比較??
(2)如果兩個操作值都是字符串,則比較字符串對應(yīng)的字符編碼值??
(3)如果只有一個操作值是數(shù)值,則將另一個操作值轉(zhuǎn)換為數(shù)值,進行數(shù)值比較??
(4)?如果一個操作數(shù)是對象,則調(diào)用valueOf()方法(如果對象沒有valueOf()方法則調(diào)用toString()
方法),得到的結(jié)果按照前面的規(guī)則執(zhí)行比較??
(5)如果一個操作值是布爾值,則將其轉(zhuǎn)換為數(shù)值,再進行比較??
注:NaN是非常特殊的值,它不和任何類型的值相等,包括它自己,同時它與任何類型的值比較大小時都返回false。?
7.?相等操作符(==)相等操作符會對操作值進行隱式轉(zhuǎn)換后進行比較:?
- <script language="javascript">
<!--
?var age = prompt("請輸入您的年齡:", "0");?// 輸入年齡
?if( age <= 0 )?????// 如果輸入的數(shù)字小于等于0則視為非法
?{
??alert("您輸入的數(shù)據(jù)不合法!");
?}
?else
?{
??alert( "你的年齡為" + age + "歲" );
?}
-->
</script> -
3.顯式轉(zhuǎn)換
-
Number(mix)函數(shù),可以將任意類型的參數(shù)mix轉(zhuǎn)換為數(shù)值類型。其規(guī)則為:?
(1)?如果是布爾值,true和false分別被轉(zhuǎn)換為1和0?
-
(2)如果是數(shù)字值,返回本身。??
-
(3)如果是null,返回0.??
(4)?如果是undefined,返回NaN。
-
(5)?如果是字符串,遵循以下規(guī)則:?
-
(6)如果字符串中只包含數(shù)字,則將其轉(zhuǎn)換為十進制(忽略前導(dǎo)0)??
-
?? ?如果字符串中包含有效的浮點格式,將其轉(zhuǎn)換為浮點數(shù)值(忽略前導(dǎo)0)??
-
??? 如果是空字符串,將其轉(zhuǎn)換為0??
??? 如果字符串中包含非以上格式,則將其轉(zhuǎn)換為NaN??
(7)?如果是對象,則調(diào)用對象的valueOf()方法,然后依據(jù)前面的規(guī)則轉(zhuǎn)換返回的值。如果轉(zhuǎn)換的結(jié)果是NaN,則調(diào)用對象的toString()方法,再次依照前面的規(guī)則轉(zhuǎn)換返回的字符串值。??
下表列出了對象的valueOf()的返回值:?
-
對象??? 返回值?
-
???????? ?數(shù)組的元素被轉(zhuǎn)換為字符串,這些字符串由逗號分隔,連接在一起。其操作
-
Array ?與?Array.toString?和?Array.join?方法相同。?
-
Boolean?Boolean?值。?
-
Date?存儲的時間是從?1970?年?1?月?1?日午夜開始計的毫秒數(shù)?UTC。?
-
?Function?函數(shù)本身。?
-
Number?數(shù)字值。?
Object?對象本身。這是默認情況。?
-
String?字符串值。?
parseInt(string,?radix)函數(shù),將字符串轉(zhuǎn)換為整數(shù)類型的數(shù)值。它也有一定的規(guī)則:???
(1)?忽略字符串前面的空格,直至找到第一個非空字符?
-
(2)如果第一個字符不是數(shù)字符號或者負號,返回NaN??
(3)?如果第一個字符是數(shù)字,則繼續(xù)解析直至字符串解析完畢或者遇到一個非數(shù)字符號為止
-
(4)如果上步解析的結(jié)果以0開頭,則將其當作八進制來解析;如果以0x開頭,則將其當作十六進
制來解析??
(5)如果指定radix參數(shù),則以radix為基數(shù)進行解析??
-
parseFloat(string)函數(shù),將字符串轉(zhuǎn)換為浮點數(shù)類型的數(shù)值。?
它的規(guī)則與parseInt基本相同,但也有點區(qū)別:字符串中第一個小數(shù)點符號是有效的,另外parseFloat會忽略所有前導(dǎo)0,如果字符串包含一個可解析為整數(shù)的數(shù),則返回整數(shù)值而不是浮點數(shù)值。?
toString(radix)方法。除undefined和null之外的所有類型的值都具有toString()方法,其作用是返回對象的字符串表示。
-
?對象?操作?
Array?將?Array?的元素轉(zhuǎn)換為字符串。結(jié)果字符串由逗號分隔,且連接起來。
-
?Boolean?如果?Boolean?值是?true,則返回?“true”。否則,返回?“false”。?
-
Date?返回日期的文字表示法。?
Error?返回一個包含相關(guān)錯誤信息的字符串。?
Function?返回如下格式的字符串,其中?functionname?是被調(diào)用?toString?方法函數(shù)的名稱:??function?functionname(?)?{?[native?code]?}?
Number?返回數(shù)字的文字表示。?String?返回?String?對象的值。?
默認?返回?“[object?objectname]”,其中?objectname?是對象類型的名稱。?
String(mix)函數(shù),將任何類型的值轉(zhuǎn)換為字符串,其規(guī)則為:?
(1)如果有toString()方法,則調(diào)用該方法(不傳遞radix參數(shù))并返回結(jié)果?
-
(2)?如果是null,返回”null”??
(3)?如果是undefined,返回”undefined”??
6、Boolean(mix)函數(shù),將任何類型的值轉(zhuǎn)換為布爾值。?以下值會被轉(zhuǎn)換為false:false、”"、0、NaN、null、undefined,其余任何值都會被轉(zhuǎn)換為true
<script language="javascript">
<!--
?var priceOfApple = "3元";????// 蘋果的價格
?var priceOfBanana = "3.5元";????// 香蕉的價格
?priceOfApple = parseInt( priceOfApple );??// 解析蘋果的價格
?var priceOfBanana2 = parseInt( priceOfBanana );??// 解析香蕉的價格
?if( ( priceOfApple===3 ) && ( priceOfBanana2 === 3 )?// 檢查解析是否成功
??? && ( parseFloat( priceOfBanana ) ===3.5 ) )?
?{
??alert( "蘋果的價格:" + priceOfApple ??// 輸出水果的價格
???+ "\n香蕉的價格的整數(shù)部分:" + priceOfBanana2
???+ "\n香蕉的價格:" + parseFloat( priceOfBanana ) );
?}
?else
?{
??alert( "并沒有得到預(yù)期的轉(zhuǎn)換效果!" );??// 解析失敗時輸出警告信息
?}
-->
</script> -
示例分數(shù)---編寫一個程序,記錄學(xué)生的《高等數(shù)學(xué)》成績,要求集中輸出60-69,70-79,80-89和90-100各個分數(shù)段的學(xué)生名字
<script language="javascript">
<!--
?var score = new Array( ?"王勇", 50,???// 分數(shù)表
????"白露", 60,
????"楊楊", 76,
????"李明", 83,
????"張莉莉", 70,
????"楊宗楠", 71,
????"徐霞", 66,
????"楊玉婷", 93
??????? );
?var namesOf_0To59 = "";?????// 存儲各分數(shù)段人學(xué)生名字的變量
?var namesOf_60To69 = "";
?var namesOf_70To79 = "";
?var namesOf_80To89 = "";
?var namesOf_90To100 = "";
?var scoreSum = 0;
?document.write( "<b>《高等數(shù)學(xué)》成績統(tǒng)計表</b><br>" );?// 標題
?for( index in score )
?{
??
??if( index%2==1 )// 如果當前元素索引為奇數(shù),則該元素為分數(shù),其前一個元素即為該分數(shù)的學(xué)生名字
??{
???// 判斷當前分數(shù)所在的分數(shù)段并將學(xué)生名字存入相應(yīng)變量
???if( (score[index]>=0) && (score[index]<=59) )
???{
????namesOf_0To59 += score[index-1] + " ";
???}
???if( (score[index]>=60) && (score[index]<=69) )
???{
????namesOf_60To69 += score[index-1] + " ";
???}
???if( (score[index]>=70) && (score[index]<=79) )
???{
????namesOf_70To79 += score[index-1] + " ";
???}
???if( (score[index]>=80) && (score[index]<=89) )
???{
????namesOf_80To89 += score[index-1] + " ";
???}
???if( (score[index]>=90) && (score[index]<=100) )
???{
????namesOf_90To100 += score[index-1] + " ";
???}
???scoreSum += score[index];???// 統(tǒng)計分數(shù)?
??}
?}
?document.write( "<li>00~59分:" + namesOf_0To59 + "<br>" );?// 分別輸出各分數(shù)段的學(xué)生
?document.write( "<li>60~69分:" + namesOf_60To69 + "<br>" );
?document.write( "<li>70~79分:" + namesOf_70To79 + "<br>" );
?document.write( "<li>80~89分:" + namesOf_80To89 + "<br>" );
?document.write( "<li>90~100分:" + namesOf_90To100 + "<br>" );
?// 數(shù)組元素個數(shù)除以2即為人數(shù),總分除以人數(shù)即得平均分
?document.write( "<li>平均分 :" + scoreSum/(score.length/2) + "<br>" );
-->
</script>
示例--處理文本
<script language="javascript">
<!--
?var comment = "采蓮南塘秋,蓮花過人頭;低頭弄蓮子,蓮子清如水。今晚若有采蓮人,這兒的蓮花也算得“過人頭”了;只不見一些流水的影子,是不行的。這令我到底惦著江南了。"
?var newComment = "";
?for( n = 0; n<comment.length; n ++ )
?{
??var curChar = comment.charAt( n );
??if( curChar=="蓮" )
??{
???newComment += (curChar.bold()).fontcolor("red");
??}
??else
??{
???newComment += curChar;
??}
?}
?document.write("<li><b>原文:</b><br>" + comment + "<br>" );
?document.write("<li><b>標記“蓮”字:</b><br>" + newComment + "<br>" );
-->
</script - 二。JavaScript數(shù)據(jù)的表示:
- 三。JavaScript常量:
| \b | 退格(Backspace) |
| \f | 換頁(Form feed) |
| \n | 換行(New line) |
| \r | 返回(Carriage return) |
| \t | 制表符(Tab) |
| \' | 單引號(') |
| \" | 雙引號(") |
| \\ | 反斜線(\) |
document.write("我愛\'JavaScript\'")?
document.write("文件在c:\\windows\\下")?
document.write("<pre>未滿十八歲\n不得進入!</pre>")?
document.write("未滿十八歲<br>不得進入!")?
document.alert("密碼不對\n請重新輸入!")?
數(shù)組常量:
hobby=["聽音樂","看電影"]
hobby[0]、hobby[1]
hobby=["聽音樂",,"看電影",]?
hobby[0]、hobby[1]、hobby[2]、hobby[3]
- 四。JavaScript變量:
- 1.首字符必須是大寫或小寫的字母或下劃線(_)或美元符($);
- 2.后續(xù)的字符可以是字母、數(shù)字、下劃線或美元符;
- 3.變量名稱不能是保留字;
- 4.長度是任意;
- 5.區(qū)分大小寫;
- 6.約定:集中置頂;
使用局部變量;
易于理解;stdId
避免混亂。usrname usrName
聲明變量:
- var stdId;
- var name,sex;
- var total=3721;
- var notNull=true;
- var name="李小龍",sex="先生";
- var i=j=0;
stdId = 2004007;
- 全局變量:省略var,或在函數(shù)外聲明
- 局部變量:在函數(shù)內(nèi)聲明
- 全局變量可在整個腳本中被使用,可在不同的窗口中相互引用(指定窗口名)
- 例:
<Script>
var langJS = "JavaScript"; //langJS是全局變量
test();function test() {
????var langVBS = "VBScript"; //langVBS是局部變量
????document.write("<LI>" + langJS);
????document.write("<LI>" + langVBS);?
}document.write("<LI>" + langJS);
document.write("<LI>" + langVBS);
</Script>
總結(jié)
以上是生活随笔為你收集整理的JavaScript的数据类型---最全,最详细的数据类型,高级的工程师从数据类型开始的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript表达式--掌握最全的
- 下一篇: JavaScript的格式--从格式做起