根據(jù)變量被賦值內(nèi)容的不同,變量有不同的類型(存的什么樣的數(shù)據(jù));接下來(lái)我們看看幾種常見(jiàn)的變量類型
我們通過(guò)typeof操作符,用檢測(cè)變量是什么類型的
檢測(cè)結(jié)果----------------說(shuō)明
undefined 未定義
boolean 布爾值
string 字符串
number 數(shù)字
object(Array,null) 對(duì)象
function 函數(shù)
三種基本的類型:數(shù)字、字符串和布爾值。
兩種小數(shù)據(jù)類型:null 和 undefined。(為什么叫小數(shù)據(jù)類型?因?yàn)樗麄冎欢x了一個(gè)值)
兩種復(fù)合類型:object 和 array(在這個(gè)類型中,它的值可以是基本數(shù)據(jù)類型,也可以是復(fù)合類型,也可以是小數(shù)據(jù)類型)
注意:在對(duì)象中有一個(gè)特殊的對(duì)象----function.(它是一個(gè)可以執(zhí)行代碼的對(duì)象.)
1)數(shù)字
Number類型包含兩種數(shù)值:整型和浮點(diǎn)型。
var a5=123; //整形。整數(shù)
var a6=12.3; //浮點(diǎn)。小數(shù)
浮點(diǎn)類型,就是該數(shù)值中必須包含一個(gè)小數(shù)點(diǎn),并且小數(shù)點(diǎn)后面必須至少有一位數(shù)字。
NaN,即非數(shù)值(Not a Number)是一個(gè)特殊的值,這個(gè)數(shù)值表示一個(gè)本來(lái)要返回?cái)?shù)值的操作數(shù)未返回?cái)?shù)值的情況。在其他
語(yǔ)言中,任何數(shù)值除以0都會(huì)導(dǎo)致錯(cuò)誤而終止程序執(zhí)行。但在js中,會(huì)返回出特殊的值,因此不會(huì)影響程序執(zhí)行。
var box = 0 / 0; //NaN
JS提供了isNaN()函數(shù),用來(lái)判斷這個(gè)值到底是不是NaN。
isNaN()函數(shù)在接收到一個(gè)值之后,會(huì)嘗試將這個(gè)值轉(zhuǎn)換為數(shù)值。
alert(isNaN(NaN)); //true
alert(isNaN(25)); //false,25是一個(gè)數(shù)值
2)字符串
凡不是純數(shù)字的,必須用:雙引號(hào)或單引號(hào),成對(duì)括起來(lái)。//出現(xiàn)2對(duì)單、雙引號(hào),則要加反斜線:\
var a4='字符串';
var a41='abc';
var a42='123abc';
var a43='__123abc';
var a44='\'__1\'23abc';
3)boolean
只有true和false。JavaScript是區(qū)分大小寫(xiě)的,True和False或者其他都不是boolean類型的值。
var a2=true; //真
var a3=false; //假
數(shù)據(jù)類型 轉(zhuǎn)換為true的值 轉(zhuǎn)換為false的值
Boolean true false
String 任何非空字符串 空字符串
Number 任何非零數(shù)字 0和NaN
Object 任何對(duì)象 null
Undefined undefined
4)undefined
使用var聲明變量,但沒(méi)有對(duì)其初始化時(shí),這個(gè)變量的值就是undefined。
var a ; //從來(lái)未被申明
var a1; //申明過(guò)
5)null
Null類型是一個(gè)只有一個(gè)值的數(shù)據(jù)類型,即特殊的值null。它表示一個(gè)空對(duì)象引用(指針),而typeof操作符檢測(cè)null會(huì)返回
object。
var box = null;alert(typeof box);
如果定義的變量準(zhǔn)備在將來(lái)用于保存對(duì)象,那么最好將該變量初始化為null。這樣,當(dāng)檢查null值就知道是否已經(jīng)變量是否
已經(jīng)分配了對(duì)象引用了。
var box = null;
if (box != null) {alert('box對(duì)象已存在!');}
undefined是派生自null的,因此ECMA-262規(guī)定對(duì)它們的相等性測(cè)試返回true。
alert(undefined == null);
6)對(duì)象
JavaScript 變量均為對(duì)象。當(dāng)您聲明一個(gè)變量時(shí),就創(chuàng)建了一個(gè)新的對(duì)象。
什么是對(duì)象:類實(shí)例化后的結(jié)果
什么是類:對(duì)某類事物的概括說(shuō)明。
什么是概括說(shuō)明:是人類觀察、認(rèn)識(shí)和改造世界的,與生俱來(lái)的本領(lǐng)
什么是實(shí)例化:是將某一類東西的概括說(shuō)明,當(dāng)成模板,產(chǎn)生出一個(gè)實(shí)際的物體每個(gè),通過(guò)類(模板),而產(chǎn)生的對(duì)象,都有
屬性和方法對(duì)象屬性,
說(shuō)明對(duì)象是什么:和別人的區(qū)別對(duì)象方法,說(shuō)明對(duì)象能做什么:功能若沒(méi)有屬性和方法的對(duì)象,那么就是廢柴,什么用都沒(méi)
有我們可以通過(guò)以下方式,獲得對(duì)象內(nèi)部的信息:
對(duì)象.屬性對(duì)象.方法()
如:獲得字符串對(duì)象長(zhǎng)度
var x='我是誰(shuí)';
alert(x.length);//調(diào)用字符串對(duì)象的length屬性
如:系統(tǒng)對(duì)象舉例:new Date();//調(diào)用對(duì)象方法
//定義一個(gè)變量,并為其賦值。值是一個(gè)系統(tǒng)對(duì)象:日期對(duì)象,使用new關(guān)鍵字創(chuàng)建對(duì)象
var date=new Date();
//定義一個(gè)變量,并為其賦值。值是:調(diào)用日期對(duì)象的方法:年
var y=date.getFullYear();
alert(y);
7)數(shù)組
使用數(shù)組的原因,方便存取,并減少內(nèi)存占用,好像是存放數(shù)據(jù)的一個(gè)個(gè)隔間。每個(gè)隔間都有房間號(hào)。放東西后,以后好找
東西,下標(biāo)(房間號(hào)),從0開(kāi)始。數(shù)組總數(shù)為最后一個(gè)下標(biāo)+1 數(shù)組對(duì)象的作用是:使用單獨(dú)的變量名來(lái)存儲(chǔ)一系列的值。
創(chuàng)建數(shù)組的方法:
一維數(shù)組:
a. var a=new Array();
a[0]=1;.......a[n]=n+1;
b. var a=Array(1,2,3..n);
c. var a=[小孩,"小狗","小妹"];
二維數(shù)組:
二維數(shù)組實(shí)在一維數(shù)組上的拓展,如果把一維數(shù)組比作線的話,則二維數(shù)組就是面。做個(gè)形象的對(duì)比,一位數(shù)組內(nèi)的元素都
在一條線上,而二維數(shù)組的元素既有水平方向也有垂直方向,就像是表格的樣子一樣。二維數(shù)組的創(chuàng)建很簡(jiǎn)單,可以看作是
特殊的一維數(shù)組,這個(gè)一維數(shù)組里的元素還是一維數(shù)組。
【格式】
new Array(
new Array(),
new Array(),
new Array()
);
【案例1】創(chuàng)建一個(gè)二維數(shù)組
var a=new Array(2);
a[0]=new Array(11,12);
a[1]=new Array(21,22);
【案例2】彈框輸出2x2的二維數(shù)組的最后一個(gè)值,再改變最后一個(gè)值為100,并彈框輸出
var a=new Array(
new Array(11,12),
new Array(21,22)
);
alert(a[1][1]);
a[1][1]=100;
alert(a[1][1]);
例如:循環(huán)輸出數(shù)組元素的方法
js部分:
var x
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"
for (x in mycars){
alert(mycars[x]);
}
8)function
概念:函數(shù)是定義一次但卻可以調(diào)用或執(zhí)行任意多次的一段JS代碼。函數(shù)對(duì)任何語(yǔ)言來(lái)說(shuō)都是一個(gè)核心的概念。通過(guò)函數(shù)可
以封裝任意多條語(yǔ)句,而且可以在任何地方、任何時(shí)候調(diào)用執(zhí)行。
聲明:JScript中的函數(shù)使用function關(guān)鍵字來(lái)聲明,后跟一組參數(shù)以及函數(shù)名(英文開(kāi)頭的字符串,后面有小括號(hào))、函
數(shù)體(用大括號(hào)括起來(lái))。
分類:系統(tǒng)函數(shù),自定義函數(shù)每個(gè)類型又分為
a.不帶參數(shù)的函數(shù)
b.帶參數(shù)的函數(shù)
c.無(wú)返回值的函數(shù)
d.有返回值的函數(shù)
系統(tǒng)函數(shù)
1)概念:js的內(nèi)置函數(shù),可直接拿來(lái)使用
2)要素:函數(shù)名稱,參數(shù),返回值
3)調(diào)用方式:使用函數(shù)名,并傳參數(shù)給函數(shù),可以在任意地方使用系統(tǒng)函數(shù)
4)調(diào)用結(jié)果:函數(shù)返回值
如:
alert():警告框,用來(lái)提示用戶(項(xiàng)目常用)
confirm():確認(rèn)框,讓用戶確認(rèn)操作(項(xiàng)目常用)
prompt():提示框,用于提示用戶在進(jìn)入頁(yè)面前輸入某個(gè)值。然后點(diǎn)擊確認(rèn)或取消按鈕才能繼續(xù)操縱。(項(xiàng)目常用)
案例:
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript">
//函數(shù)名是:confirm
//參數(shù)是:x
//調(diào)用方式:使用函數(shù)名:confirm,并傳參x
//返回值:賦值給r
var x="確定還是取消?";
var r=confirm(x);
alert(r);
//函數(shù)名是:prompt
//參數(shù)是:y。和一個(gè)空參數(shù),對(duì)于這個(gè)函數(shù)來(lái)說(shuō),是為了:獲得輸入值
//調(diào)用方式:使用函數(shù)名:prompt,并傳參y,和一個(gè)空參數(shù)
/返回值:賦值給name
var y="你叫什么名字?";
var name=prompt(y,"");
alert(name);
</script>
</head>
</html>
自定義函數(shù):
1)概念:在很多時(shí)候,我們需要自己去創(chuàng)建一些特定功能的函數(shù),叫自定義函數(shù)。
2)要素:a.聲明:用function這個(gè)關(guān)鍵字來(lái)聲明函數(shù)
b.函數(shù)名稱:英文開(kāi)頭的字符串。后面要有小括號(hào)
c.參數(shù):若有,在小括號(hào)中用:逗號(hào)隔開(kāi)
d.函數(shù)體:用大括號(hào):括起來(lái)
e.返回值:在函數(shù)體中,使用return 返回。并且,return后不執(zhí)行其它代碼!
如:
function test1(x){
return x;
alert(x);//不執(zhí)行}
3)調(diào)用方式:
a.直接使用函數(shù)名,并傳參數(shù)給函數(shù)全局。任意地方
如:
test1(123);
b.使用window.onload=函數(shù)名;//可不加括號(hào)表示html文檔加載完畢。調(diào)用該函數(shù)
如:
window.onload=test(123);
c.在<body>中加載函數(shù)
如:
<body onload="test()">
d.通過(guò)事件驅(qū)動(dòng)執(zhí)行函數(shù)(onclick,onmouseover....)
如:
<input type="button" onclick="test(123)">
4)變量作用域:只在大括號(hào)內(nèi)有效
5)變量生命周期:函數(shù)運(yùn)行以后被清除
如: function test1(x){alert(x);}
調(diào)用:使用函數(shù)名,并傳參數(shù)給函數(shù)全局。任意地方
如: function box(name, age) {//帶參數(shù)的函數(shù)
alert('你的姓名:'+name+',年齡:'+age);}
box('feir',24);//調(diào)用函數(shù),并傳參
return返回值:帶參和不帶參的函數(shù),都沒(méi)有定義返回值,而是調(diào)用后直接執(zhí)行的。實(shí)際上,任何函數(shù)都可以通過(guò)return
語(yǔ)句跟后面的要返回的值來(lái)實(shí)現(xiàn)返回值。
如:
function box() {//沒(méi)有參數(shù)的函數(shù)
return '我被返回了!';//通過(guò)return把函數(shù)的最終值返回}
alert(box()); //調(diào)用函數(shù)會(huì)得到返回值,然后外面輸出
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)