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