- 您可以在 HTML 文檔中放入不限數(shù)量的腳本。
腳本可位于 HTML 的 <body> 或 <head> 部分中,或者同時(shí)存在于兩個(gè)部分中。
通常的做法是把函數(shù)放入 <head> 部分中,或者放在頁面底部。這樣就可以把它們安置到同一處位置,不會(huì)干擾頁面的內(nèi)容。
操作 HTML 元素
如需從 JavaScript 訪問某個(gè) HTML 元素,您可以使用 document.getElementById(id) 方法。
請(qǐng)使用 "id" 屬性來標(biāo)識(shí) HTML 元素:
<!DOCTYPE html>
<html>
<body>
<h1>My First Web Page</h1>
<p id="demo">My First Paragraph</p>
<script>
document.getElementById("demo").innerHTML="My First JavaScript";
</script>
</body>
</html>
請(qǐng)使用 document.write() 僅僅向文檔輸出寫內(nèi)容。
如果在文檔已完成加載后執(zhí)行 document.write,整個(gè) HTML 頁面將被覆蓋:JavaScript 會(huì)忽略多余的空格。您可以向腳本添加空格,來提高其可讀性。下面的兩行代碼是等效的:
您可以在文本字符串中使用反斜杠對(duì)代碼行進(jìn)行換行。
JavaScript 是腳本語言。瀏覽器會(huì)在讀取代碼時(shí),逐行地執(zhí)行腳本代碼。而對(duì)于傳統(tǒng)編程來說,會(huì)在執(zhí)行前對(duì)所有代碼進(jìn)行編譯。
單行注釋以 // 開頭。
多行注釋以 /* 開始,以 */ 結(jié)尾。
變量
var name="Gates", age=56, job="CEO";
var name="Gates",
age=56,
job="CEO";
var carname; //值將是 undefined
//如果重新聲明 JavaScript 變量,該變量的值不會(huì)丟失:
y=5;
x=y+2; //可以通過 JavaScript 變量來做算數(shù),使用的是 = 和 + 這類運(yùn)算符
- 數(shù)據(jù)類型
字符串、數(shù)字、布爾、數(shù)組、對(duì)象、Null、Undefined
var x // x 為 undefined
var x = 6; // x 為數(shù)字
var x = "Bill"; // x 為字符串
//字符串
var answer="Nice to meet you!";
var answer="He is called 'Bill'";
var answer='He is called "Bill"';
//字符串可以是引號(hào)中的任意文本。您可以使用單引號(hào)或雙引號(hào)
//您可以在字符串中使用引號(hào),只要不匹配包圍字符串的引號(hào)即可
//數(shù)字
var x1=34.00; //使用小數(shù)點(diǎn)來寫
var x2=34; //不使用小數(shù)點(diǎn)來寫
var y=123e5; // 12300000
var z=123e-5; // 0.00123
//布爾
var x=true
var y=false
//數(shù)組
var cars=new Array();
cars[0]="Audi";
cars[1]="BMW";
cars[2]="Volvo";
var cars=new Array("Audi","BMW","Volvo");
var cars=["Audi","BMW","Volvo"];
//對(duì)象
//對(duì)象由花括號(hào)分隔。在括號(hào)內(nèi)部,對(duì)象的屬性以名稱和值對(duì)的形式
// (name : value) 來定義。屬性由逗號(hào)分隔
var person={firstname:"Bill", lastname:"Gates", id:5566};
var person={
firstname : "Bill",
lastname : "Gates",
id : 5566
};
//對(duì)象屬性有兩種尋址方
name=person.lastname;
name=person["lastname"];
//Undefined 和 Null
//Undefined 這個(gè)值表示變量不含有值。
//可以通過將變量的值設(shè)置為 null 來清空變量。
cars=null;
person=null;
//聲明變量類型
//當(dāng)您聲明新變量時(shí),可以使用關(guān)鍵詞 "new" 來聲明其類型:
var carname=new String;
var x= new Number;
var y= new Boolean;
var cars= new Array;
var person= new Object;
- 創(chuàng)建 JavaScript 對(duì)象
person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";
JavaScript 函數(shù)
函數(shù)是由事件驅(qū)動(dòng)的或者當(dāng)它被調(diào)用時(shí)執(zhí)行的可重復(fù)使用的代碼塊。
<!DOCTYPE html>
<html>
<head>
<script>
function myFunction()
{
alert("Hello World!");
}
</script>
</head>
<body>
<button onclick="myFunction()">點(diǎn)擊這里</button>
</body>
</html>
//帶參數(shù),返回值
function myFunction(a,b)
{
return a*b;
}
document.getElementById("demo").innerHTML=myFunction(4,3);
//如果您把值賦給尚未聲明的變量,該變量將被自動(dòng)作為全局變量聲明
carname="Volvo";
//將聲明一個(gè)全局變量 carname,即使它在函數(shù)內(nèi)執(zhí)行。
- JavaScript 變量的生存期
JavaScript 變量的生命期從它們被聲明的時(shí)間開始。
局部變量會(huì)在函數(shù)運(yùn)行以后被刪除。
全局變量會(huì)在頁面關(guān)閉后被刪除。
- 算術(shù)運(yùn)算符
|運(yùn)算符 |描述 |例子 |結(jié)果
|-|-|-|
|+ |加 |x=y+2 |x=7
|- |減 |x=y-2 |x=3
|* |乘 |x=y*2 |x=10
|/ |除 |x=y/2 |x=2.5
|% |求余數(shù) (保留整數(shù)) |x=y%2 |x=1
|++ |累加 |x=++y |x=6
|-- |遞減 |x=--y |x=4
- 賦值運(yùn)算符
|運(yùn)算符 |例子 |等價(jià)于 |結(jié)果
|-|-|-|
|= |x=y |x=5
|+= |x+=y |x=x+y |x=15
|-= |x-=y |x=x-y |x=5
|= |x=y |x=x*y |x=50
|/= |x/=y |x=x/y |x=2
|%= |x%=y |x=x%y |x=0
- 用于字符串的 + 運(yùn)算符
txt1="What a very";
txt2="nice day";
txt3=txt1+txt2;
- 比較運(yùn)算符
|運(yùn)算符 |描述 |例子
|-|-|
|== |等于 |x==8 為 false
|=== |全等(值和類型) |x===5 為 true;x==="5" 為 false
|!= |不等于 |x!=8 為 true
|> |大于 |x>8 為 false
|< |小于 |x<8 為 true
|>= |大于或等于 |x>=8 為 false
|<= |小于或等于 |x<=8 為 true
- 邏輯運(yùn)算符
|運(yùn)算符 |描述 |例子
|-|-|
|&& |and& |(x < 10 && y > 1) 為 true
| (雙豎杠) |or |(x==5 (雙豎杠) y==5) 為 false
|! |not |!(x==y) 為 true
- 條件運(yùn)算符
greeting=(visitor=="PRES")?"Dear President ":"Dear ";
- If...Else 語句
- Switch 語句
- for語句
for - 循環(huán)代碼塊一定的次數(shù)
for/in - 循環(huán)遍歷對(duì)象的屬性
while - 當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊
do/while - 同樣當(dāng)指定的條件為 true 時(shí)循環(huán)指定的代碼塊
for (var i=0,len=cars.length; i<len; i++)
{
document.write(cars[i] + "<br>");
}
var person={fname:"John",lname:"Doe",age:25};
for (x in person)
{
txt=txt + person[x];
}
- While 循環(huán)
do
{
x=x + "The number is " + i + "<br>";
i++;
}
while (i<5);
- break 和 continue
//除了一般用法,可以加標(biāo)簽
break labelname;
continue labelname;
//通過標(biāo)簽引用,break 語句可用于跳出任何 JavaScript 代碼塊:
cars=["BMW","Volvo","Saab","Ford"];
list:
{
document.write(cars[0] + "<br>");
document.write(cars[1] + "<br>");
document.write(cars[2] + "<br>");
break list;
document.write(cars[3] + "<br>");
document.write(cars[4] + "<br>");
document.write(cars[5] + "<br>");
}
- Throw、Try 和 Catch
try 語句測(cè)試代碼塊的錯(cuò)誤。
catch 語句處理錯(cuò)誤。
throw 語句創(chuàng)建自定義錯(cuò)誤。
JavaScript 拋出錯(cuò)誤
當(dāng)錯(cuò)誤發(fā)生時(shí),當(dāng)事情出問題時(shí),JavaScript 引擎通常會(huì)停止,并生成一個(gè)錯(cuò)誤消息。
描述這種情況的技術(shù)術(shù)語是:JavaScript 將拋出一個(gè)錯(cuò)誤。
<!DOCTYPE html>
<html>
<head>
<script>
var txt="";
function message()
{
try
{
adddlert("Welcome guest!");
}
catch(err)
{
txt="There was an error on this page.\n\n";
txt+="Error description: " + err.message + "\n\n";
txt+="Click OK to continue.\n\n";
alert(txt);
}
}
</script>
</head>
<body>
<input type="button" value="View message" onclick="message()">
</body>
</html>
<script>
function myFunction()
{
try
{
var x=document.getElementById("demo").value;
if(x=="") throw "empty";
if(isNaN(x)) throw "not a number";
if(x>10) throw "too high";
if(x<5) throw "too low";
}
catch(err)
{
var y=document.getElementById("mess");
y.innerHTML="Error: " + err + ".";
}
}
</script>
<h1>My First JavaScript</h1>
<p>Please input a number between 5 and 10:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="mess"></p>
表單驗(yàn)證
JavaScript 可用來在數(shù)據(jù)被送往服務(wù)器前對(duì) HTML 表單中的這些輸入數(shù)據(jù)進(jìn)行驗(yàn)證。
被 JavaScript 驗(yàn)證的這些典型的表單數(shù)據(jù)有:
用戶是否已填寫表單中的必填項(xiàng)目?
用戶輸入的郵件地址是否合法?
用戶是否已輸入合法的日期?
用戶是否在數(shù)據(jù)域 (numeric field) 中輸入了文本?
必填(或必選)項(xiàng)目
下面的函數(shù)用來檢查用戶是否已填寫表單中的必填(或必選)項(xiàng)目。假如必填或必選項(xiàng)為空,那么警告框會(huì)彈出,并且函數(shù)的返回值為 false,否則函數(shù)的返回值則為 true(意味著數(shù)據(jù)沒有問題):
function validate_required(field,alerttxt)
{
with (field)
{
if (value==null||value=="")
{alert(alerttxt);return false}
else {return true}
}
}
下面是連同 HTML 表單的代碼:
<html>
<head>
<script type="text/javascript">
function validate_required(field,alerttxt)
{
with (field)
{
if (value==null||value=="")
{alert(alerttxt);return false}
else {return true}
}
}
function validate_form(thisform)
{
with (thisform)
{
if (validate_required(email,"Email must be filled out!")==false)
{email.focus();return false}
}
}
</script>
</head>
<body>
<form action="submitpage.htm" onsubmit="return validate_form(this)" method="post">
Email: <input type="text" name="email" size="30">
<input type="submit" value="Submit">
</form>
</body>
</html>
E-mail 驗(yàn)證
下面的函數(shù)檢查輸入的數(shù)據(jù)是否符合電子郵件地址的基本語法。
意思就是說,輸入的數(shù)據(jù)必須包含 @ 符號(hào)和點(diǎn)號(hào)(.)。同時(shí),@ 不可以是郵件地址的首字符,并且 @ 之后需有至少一個(gè)點(diǎn)號(hào):
function validate_email(field,alerttxt)
{
with (field)
{
apos=value.indexOf("@")
dotpos=value.lastIndexOf(".")
if (apos<1||dotpos-apos<2)
{alert(alerttxt);return false}
else {return true}
}
}
下面是連同 HTML 表單的完整代碼:
<html>
<head>
<script type="text/javascript">
function validate_email(field,alerttxt)
{
with (field)
{
apos=value.indexOf("@")
dotpos=value.lastIndexOf(".")
if (apos<1||dotpos-apos<2)
{alert(alerttxt);return false}
else {return true}
}
}
function validate_form(thisform)
{
with (thisform)
{
if (validate_email(email,"Not a valid e-mail address!")==false)
{email.focus();return false}
}
}
</script>
</head>
<body>
<form action="submitpage.htm"onsubmit="return validate_form(this);" method="post">
Email: <input type="text" name="email" size="30">
<input type="submit" value="Submit">
</form>
</body>
</html>
注:以上是基礎(chǔ)點(diǎn),以下是核心知識(shí)點(diǎn)
一、JavaScript HTML DOM
通過 HTML DOM,可訪問 JavaScript HTML 文檔的所有元素。
當(dāng)網(wǎng)頁被加載時(shí),瀏覽器會(huì)創(chuàng)建頁面的文檔對(duì)象模型(Document Object Model)。
HTML DOM 模型被構(gòu)造為對(duì)象的樹。

通過可編程的對(duì)象模型,JavaScript 獲得了足夠的能力來創(chuàng)建動(dòng)態(tài)的 HTML。
JavaScript 能夠改變頁面中的所有 HTML 元素
JavaScript 能夠改變頁面中的所有 HTML 屬性
JavaScript 能夠改變頁面中的所有 CSS 樣式
JavaScript 能夠?qū)撁嬷械乃惺录龀龇磻?yīng)
- 查找 HTML 元素
可以通過id、標(biāo)簽名、類名查找
var x=document.getElementById("intro");
//查找 id="main" 的元素,然后查找 "main" 中的所有 <p> 元素
var x=document.getElementById("main");
var y=x.getElementsByTagName("p");
//通過類名查找 HTML 元素在 IE 5,6,7,8 中無效。
1.1 改變 HTML
- 改變輸出流
<!DOCTYPE html>
<html>
<body>
<script>
document.write(Date());
</script>
</body>
</html>
結(jié)果:今天的日期是: Thu May 25 2017 16:42:15 GMT+0800 (CST)
- 改變內(nèi)容
語法:
document.getElementById(id).innerHTML=new HTML
<html>
<body>
<p id="p1">Hello World!</p>
<script>
document.getElementById("p1").innerHTML="New text!";
</script>
</body>
</html>
- 改變?cè)貙傩?br> 語法:
document.getElementById(id).attribute=new value
<!DOCTYPE html>
<html>
<body>

<script>
document.getElementById("image").src="landscape.jpg";
</script>
</body>
</html>
1.2 改變 CSS
- 改變 HTML 樣式
document.getElementById(id).style.property=new style
<p id="p2">Hello World!</p>
<script>
document.getElementById("p2").style.color="blue";
</script>
1.3 DOM 事件
-
對(duì)事件做出反應(yīng)
點(diǎn)擊元素
onclick=JavaScript
HTML 事件的例子:當(dāng)用戶點(diǎn)擊鼠標(biāo)時(shí)
當(dāng)網(wǎng)頁已加載時(shí)
當(dāng)圖像已加載時(shí)
當(dāng)鼠標(biāo)移動(dòng)到元素上時(shí)
當(dāng)輸入字段被改變時(shí)
當(dāng)提交 HTML 表單時(shí)
當(dāng)用戶觸發(fā)按鍵時(shí)
//當(dāng)用戶在 <h1> 元素上點(diǎn)擊時(shí),會(huì)改變其內(nèi)容
<h1 onclick="this.innerHTML='謝謝!'">請(qǐng)點(diǎn)擊該文本</h1>
//從事件處理器調(diào)用一個(gè)函數(shù)
<!DOCTYPE html>
<html>
<head>
<script>
function changetext(id)
{
id.innerHTML="謝謝!";
}
</script>
</head>
<body>
<h1 onclick="changetext(this)">請(qǐng)點(diǎn)擊該文本</h1>
</body>
</html>
- HTML 事件屬性
<button onclick="displayDate()">點(diǎn)擊這里</button>
- 使用 HTML DOM 來分配事件
<script>
document.getElementById("myBtn").onclick=function(){displayDate()};
</script>
- onload 和 onunload 事件
onload 和 onunload 事件會(huì)在用戶進(jìn)入或離開頁面時(shí)被觸發(fā)。
onload 事件可用于檢測(cè)訪問者的瀏覽器類型和瀏覽器版本,并基于這些信息來加載網(wǎng)頁的正確版本。
onload 和 onunload 事件可用于處理 cookie。
- onchange 事件
onchange 事件常結(jié)合對(duì)輸入字段的驗(yàn)證來使用。
- onmouseover 和 onmouseout 事件
onmouseover 和 onmouseout 事件可用于在用戶的鼠標(biāo)移至 HTML 元素上方或移出元素時(shí)觸發(fā)函數(shù)。
- onmousedown、onmouseup 以及 onclick 事件
onmousedown, onmouseup 以及 onclick 構(gòu)成了鼠標(biāo)點(diǎn)擊事件的所有部分。首先當(dāng)點(diǎn)擊鼠標(biāo)按鈕時(shí),會(huì)觸發(fā) onmousedown 事件,當(dāng)釋放鼠標(biāo)按鈕時(shí),會(huì)觸發(fā) onmouseup 事件,最后,當(dāng)完成鼠標(biāo)點(diǎn)擊時(shí),會(huì)觸發(fā) onclick 事件。
// onclick 事件
<body onload="checkCookies()">
//onchange 事件
<input type="text" id="fname" onchange="upperCase()">
<!DOCTYPE html>
<html>
<body>
<div onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color:green;width:120px;height:20px;padding:40px;color:#ffffff;">把鼠標(biāo)移到上面</div>
<script>
function mOver(obj)
{
obj.innerHTML="謝謝"
}
function mOut(obj)
{
obj.innerHTML="把鼠標(biāo)移到上面"
}
</script>
</body>
</html>
1.4 DOM 元素(節(jié)點(diǎn))
- 創(chuàng)建新的 HTML 元素
如需向 HTML DOM 添加新元素,您必須首先創(chuàng)建該元素(元素節(jié)點(diǎn)),然后向一個(gè)已存在的元素追加該元素。
<div id="div1">
<p id="p1">這是一個(gè)段落</p>
<p id="p2">這是另一個(gè)段落</p>
</div>
<script>
var para=document.createElement("p");
var node=document.createTextNode("這是新段落。");
para.appendChild(node);
var element=document.getElementById("div1");
element.appendChild(para);
</script>
- 刪除已有的 HTML 元素
如需刪除 HTML 元素,您必須首先獲得該元素的父元素
<div id="div1">
<p id="p1">這是一個(gè)段落。</p>
<p id="p2">這是另一個(gè)段落。</p>
</div>
<script>
var parent=document.getElementById("div1");
var child=document.getElementById("p1");
parent.removeChild(child);
</script>
二、JavaScript 對(duì)象
JavaScript 中的所有事物都是對(duì)象:字符串、數(shù)值、數(shù)組、函數(shù)...
此外,JavaScript 允許自定義對(duì)象。
2.1 創(chuàng)建&使用JavaScript 對(duì)象
創(chuàng)建新對(duì)象有兩種不同的方法:
1. 定義并創(chuàng)建對(duì)象的實(shí)例
2. 使用函數(shù)來定義對(duì)象,然后創(chuàng)建新的對(duì)象實(shí)例
- 創(chuàng)建直接的實(shí)例
person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";
//或者
person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};
- 使用對(duì)象構(gòu)造器
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}
//帶有方法
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
this.changeName=changeName;
function changeName(name)
{
this.lastname=name;
}
}
//依靠上面的對(duì)象構(gòu)造器,就可以創(chuàng)建實(shí)例
var myFather=new person("Bill","Gates",56,"blue");
var myMother=new person("Steve","Jobs",48,"green");
//使用方法
myMother.changeName("Ballmer");
注:
JavaScript 是面向?qū)ο蟮恼Z言,但 JavaScript 不使用類。
在 JavaScript 中,不會(huì)創(chuàng)建類,也不會(huì)通過類來創(chuàng)建對(duì)象(就像在其他面向?qū)ο蟮恼Z言中那樣)。
JavaScript 基于 prototype,而不是基于類的。
JavaScript for...in 語句循環(huán)遍歷對(duì)象的屬性。
var person={fname:"Bill",lname:"Gates",age:56};
for (x in person)
{
txt=txt + person[x];
}
2.2 Number 對(duì)象
- avaScript 只有一種數(shù)字類型。
可以使用也可以不使用小數(shù)點(diǎn)來書寫數(shù)字。 - 所有 JavaScript 數(shù)字均為 64 位
-
精度
整數(shù)(不使用小數(shù)點(diǎn)或指數(shù)計(jì)數(shù)法)最多為 15 位。
小數(shù)的最大位數(shù)是 17,但是浮點(diǎn)運(yùn)算并不總是 100% 準(zhǔn)確 - 八進(jìn)制和十六進(jìn)制
var y=0377;
var z=0xFF;
- 創(chuàng)建 Number 對(duì)象的語法:
var myNum=new Number(value);
var myNum=Number(value);
- Number 對(duì)象屬性
| 屬性 | 描述 |
|---|---|
| constructor | 返回對(duì)創(chuàng)建此對(duì)象的 Number 函數(shù)的引用。 |
| MAX_VALUE | 可表示的最大的數(shù)。 |
| MIN_VALUE | 可表示的最小的數(shù)。 |
| NaN | 非數(shù)字值。 |
| NEGATIVE_INFINITY | 負(fù)無窮大,溢出時(shí)返回該值。 |
| POSITIVE_INFINITY | 正無窮大,溢出時(shí)返回該值。 |
| prototype | 使您有能力向?qū)ο筇砑訉傩院头椒ā?/td> |
- Number 對(duì)象方法
| 方法 | 描述 |
|---|---|
| toString | 把數(shù)字轉(zhuǎn)換為字符串,使用指定的基數(shù)。 |
| toLocaleString | 把數(shù)字轉(zhuǎn)換為字符串,使用本地?cái)?shù)字格式順序。 |
| toFixed | 把數(shù)字轉(zhuǎn)換為字符串,結(jié)果的小數(shù)點(diǎn)后有指定位數(shù)的數(shù)字。 |
| toExponential | 把對(duì)象的值轉(zhuǎn)換為指數(shù)計(jì)數(shù)法。 |
| toPrecision | 把數(shù)字格式化為指定的長度。 |
| valueOf | 返回一個(gè) Number 對(duì)象的基本數(shù)字值。 |
2.3 字符串
- 創(chuàng)建 String 對(duì)象的語法:
new String(s);
String(s);
- String 對(duì)象屬性
| 屬性 | 描述 |
|---|---|
| constructor | 對(duì)創(chuàng)建該對(duì)象的函數(shù)的引用 |
| length | 字符串的長度 |
| prototype | 允許您向?qū)ο筇砑訉傩院头椒?/td> |
- String 對(duì)象方法
| 方法 | 描述 |
|---|---|
| anchor() | 創(chuàng)建 HTML 錨。 |
| big() | 用大號(hào)字體顯示字符串。 |
| blink() | 顯示閃動(dòng)字符串。 |
| bold() | 使用粗體顯示字符串。 |
| charAt() | 返回在指定位置的字符。 |
| charCodeAt() | 返回在指定的位置的字符的 Unicode 編碼。 |
| concat() | 連接字符串。 |
| fixed() | 以打字機(jī)文本顯示字符串。 |
| fontcolor() | 使用指定的顏色來顯示字符串。 |
| fontsize() | 使用指定的尺寸來顯示字符串。 |
| fromCharCode() | 從字符編碼創(chuàng)建一個(gè)字符串。 |
| indexOf() | 檢索字符串。 |
| italics() | 使用斜體顯示字符串。 |
| lastIndexOf() | 從后向前搜索字符串。 |
| link() | 將字符串顯示為鏈接。 |
| localeCompare() | 用本地特定的順序來比較兩個(gè)字符串。 |
| match() | 找到一個(gè)或多個(gè)正則表達(dá)式的匹配。 |
| replace() | 替換與正則表達(dá)式匹配的子串。 |
| search() | 檢索與正則表達(dá)式相匹配的值。 |
| slice() | 提取字符串的片斷,并在新的字符串中返回被提取的部分。 |
| small() | 使用小字號(hào)來顯示字符串。 |
| split() | 把字符串分割為字符串?dāng)?shù)組。 |
| strike() | 使用刪除線來顯示字符串。 |
| sub() | 把字符串顯示為下標(biāo)。 |
| substr() | 從起始索引號(hào)提取字符串中指定數(shù)目的字符。 |
| substring() | 提取字符串中兩個(gè)指定的索引號(hào)之間的字符。 |
| sup() | 把字符串顯示為上標(biāo)。 |
| toLocaleLowerCase() | 把字符串轉(zhuǎn)換為小寫。 |
| toLocaleUpperCase() | 把字符串轉(zhuǎn)換為大寫。 |
| toLowerCase() | 把字符串轉(zhuǎn)換為小寫。 |
| toUpperCase() | 把字符串轉(zhuǎn)換為大寫。 |
| toSource() | 代表對(duì)象的源代碼。 |
| toString() | 返回字符串。 |
| valueOf() | 返回某個(gè)字符串對(duì)象的原始值。 |
- String 對(duì)象描述
字符串是 JavaScript 的一種基本的數(shù)據(jù)類型。
String 對(duì)象的 length 屬性聲明了該字符串中的字符數(shù)。
String 類定義了大量操作字符串的方法,例如從字符串中提取字符或子串,或者檢索字符或子串。
需要注意的是,JavaScript 的字符串是不可變的(immutable),String 類定義的方法都不能改變字符串的內(nèi)容。像 String.toUpperCase() 這樣的方法,返回的是全新的字符串,而不是修改原始字符串。
在較早的 Netscape 代碼基的 JavaScript 實(shí)現(xiàn)中(例如 Firefox 實(shí)現(xiàn)中),字符串的行為就像只讀的字符數(shù)組。例如,從字符串 s 中提取第三個(gè)字符,可以用 s[2] 代替更加標(biāo)準(zhǔn)的 s.charAt(2)。此外,對(duì)字符串應(yīng)用 for/in 循環(huán)時(shí),它將枚舉字符串中每個(gè)字符的數(shù)組下標(biāo)(但要注意,ECMAScript 標(biāo)準(zhǔn)規(guī)定,不能枚舉 length 屬性)。因?yàn)樽址臄?shù)組行為不標(biāo)準(zhǔn),所以應(yīng)該避免使用它。
2.4 Date(日期)對(duì)象
- 創(chuàng)建 Date 對(duì)象的語法:
var myDate=new Date()
- Date 對(duì)象屬性
| 屬性 | 描述 |
|---|---|
| constructor | 返回對(duì)創(chuàng)建此對(duì)象的 Date 函數(shù)的引用。 |
| prototype | 使您有能力向?qū)ο筇砑訉傩院头椒ā?/td> |
- Date 對(duì)象方法
| 方法 | 描述 |
|---|---|
| Date() | 返回當(dāng)日的日期和時(shí)間。 |
| getDate() | 從 Date 對(duì)象返回一個(gè)月中的某一天 (1 ~ 31)。 |
| getDay() | 從 Date 對(duì)象返回一周中的某一天 (0 ~ 6)。 |
| getMonth() | 從 Date 對(duì)象返回月份 (0 ~ 11)。 |
| getFullYear() | 從 Date 對(duì)象以四位數(shù)字返回年份。 |
| getYear() | 請(qǐng)使用 getFullYear() 方法代替。 |
| getHours() | 返回 Date 對(duì)象的小時(shí) (0 ~ 23)。 |
| getMinutes() | 返回 Date 對(duì)象的分鐘 (0 ~ 59)。 |
| getSeconds() | 返回 Date 對(duì)象的秒數(shù) (0 ~ 59)。 |
| getMilliseconds() | 返回 Date 對(duì)象的毫秒(0 ~ 999)。 |
| getTime() | 返回 1970 年 1 月 1 日至今的毫秒數(shù)。 |
| getTimezoneOffset() | 返回本地時(shí)間與格林威治標(biāo)準(zhǔn)時(shí)間 (GMT) 的分鐘差。 |
| getUTCDate() | 根據(jù)世界時(shí)從 Date 對(duì)象返回月中的一天 (1 ~ 31)。 |
| getUTCDay() | 根據(jù)世界時(shí)從 Date 對(duì)象返回周中的一天 (0 ~ 6)。 |
| getUTCMonth() | 根據(jù)世界時(shí)從 Date 對(duì)象返回月份 (0 ~ 11)。 |
| getUTCFullYear() | 根據(jù)世界時(shí)從 Date 對(duì)象返回四位數(shù)的年份。 |
| getUTCHours() | 根據(jù)世界時(shí)返回 Date 對(duì)象的小時(shí) (0 ~ 23)。 |
| getUTCMinutes() | 根據(jù)世界時(shí)返回 Date 對(duì)象的分鐘 (0 ~ 59)。 |
| getUTCSeconds() | 根據(jù)世界時(shí)返回 Date 對(duì)象的秒鐘 (0 ~ 59)。 |
| getUTCMilliseconds() | 根據(jù)世界時(shí)返回 Date 對(duì)象的毫秒(0 ~ 999)。 |
| parse() | 返回1970年1月1日午夜到指定日期(字符串)的毫秒數(shù)。 |
| setDate() | 設(shè)置 Date 對(duì)象中月的某一天 (1 ~ 31)。 |
| setMonth() | 設(shè)置 Date 對(duì)象中月份 (0 ~ 11)。 |
| setFullYear() | 設(shè)置 Date 對(duì)象中的年份(四位數(shù)字)。 |
| setYear() | 請(qǐng)使用 setFullYear() 方法代替。 |
| setHours() | 設(shè)置 Date 對(duì)象中的小時(shí) (0 ~ 23)。 |
| setMinutes() | 設(shè)置 Date 對(duì)象中的分鐘 (0 ~ 59)。 |
| setSeconds() | 設(shè)置 Date 對(duì)象中的秒鐘 (0 ~ 59)。 |
| setMilliseconds() | 設(shè)置 Date 對(duì)象中的毫秒 (0 ~ 999)。 |
| setTime() | 以毫秒設(shè)置 Date 對(duì)象。 |
| setUTCDate() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中月份的一天 (1 ~ 31)。 |
| setUTCMonth() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的月份 (0 ~ 11)。 |
| setUTCFullYear() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的年份(四位數(shù)字)。 |
| setUTCHours() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的小時(shí) (0 ~ 23)。 |
| setUTCMinutes() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的分鐘 (0 ~ 59)。 |
| setUTCSeconds() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的秒鐘 (0 ~ 59)。 |
| setUTCMilliseconds() | 根據(jù)世界時(shí)設(shè)置 Date 對(duì)象中的毫秒 (0 ~ 999)。 |
| toSource() | 返回該對(duì)象的源代碼。 |
| toString() | 把 Date 對(duì)象轉(zhuǎn)換為字符串。 |
| toTimeString() | 把 Date 對(duì)象的時(shí)間部分轉(zhuǎn)換為字符串。 |
| toDateString() | 把 Date 對(duì)象的日期部分轉(zhuǎn)換為字符串。 |
| toGMTString() | 請(qǐng)使用 toUTCString() 方法代替。 |
| toUTCString() | 根據(jù)世界時(shí),把 Date 對(duì)象轉(zhuǎn)換為字符串。 |
| toLocaleString() | 根據(jù)本地時(shí)間格式,把 Date 對(duì)象轉(zhuǎn)換為字符串。 |
| toLocaleTimeString() | 根據(jù)本地時(shí)間格式,把 Date 對(duì)象的時(shí)間部分轉(zhuǎn)換為字符串。 |
| toLocaleDateString() | 根據(jù)本地時(shí)間格式,把 Date 對(duì)象的日期部分轉(zhuǎn)換為字符串。 |
| UTC() | 根據(jù)世界時(shí)返回 1970 年 1 月 1 日 到指定日期的毫秒數(shù)。 |
| valueOf() | 返回 Date 對(duì)象的原始值。 |
2.5 Array 對(duì)象
- 創(chuàng)建 Array 對(duì)象的語法:
new Array();
new Array(size);
new Array(element0, element1, ..., elementn);
- Array 對(duì)象屬性
| 屬性 | 描述 |
|---|---|
| constructor | 返回對(duì)創(chuàng)建此對(duì)象的數(shù)組函數(shù)的引用。 |
| length | 設(shè)置或返回?cái)?shù)組中元素的數(shù)目。 |
| prototype | 使您有能力向?qū)ο筇砑訉傩院头椒ā?/td> |
- Array 對(duì)象方法
| 方法 | 描述 |
|---|---|
| concat() | 連接兩個(gè)或更多的數(shù)組,并返回結(jié)果。 |
| join() | 把數(shù)組的所有元素放入一個(gè)字符串。元素通過指定的分隔符進(jìn)行分隔。 |
| pop() | 刪除并返回?cái)?shù)組的最后一個(gè)元素 |
| push() | 向數(shù)組的末尾添加一個(gè)或更多元素,并返回新的長度。 |
| reverse() | 顛倒數(shù)組中元素的順序。 |
| shift() | 刪除并返回?cái)?shù)組的第一個(gè)元素 |
| slice() | 從某個(gè)已有的數(shù)組返回選定的元素 |
| sort() | 對(duì)數(shù)組的元素進(jìn)行排序 |
| splice() | 刪除元素,并向數(shù)組添加新元素。 |
| toSource() | 返回該對(duì)象的源代碼。 |
| toString() | 把數(shù)組轉(zhuǎn)換為字符串,并返回結(jié)果。 |
| toLocaleString() | 把數(shù)組轉(zhuǎn)換為本地?cái)?shù)組,并返回結(jié)果。 |
| unshift() | 向數(shù)組的開頭添加一個(gè)或更多元素,并返回新的長度。 |
| valueOf() | 返回?cái)?shù)組對(duì)象的原始值 |
2.6 Math 對(duì)象
- 使用 Math 的屬性和方法的語法:
var pi_value=Math.PI;
var sqrt_value=Math.sqrt(15);
//使用了 Math 對(duì)象的 floor() 方法和 random() 來返回一個(gè)介于 0 和 10 之間的隨機(jī)數(shù)
document.write(Math.floor(Math.random()*11))
**注: ** Math 對(duì)象并不像 Date 和 String 那樣是對(duì)象的類,因此沒有構(gòu)造函數(shù) Math(),像 Math.sin() 這樣的函數(shù)只是函數(shù),不是某個(gè)對(duì)象的方法。您無需創(chuàng)建它,通過把 Math 作為對(duì)象使用就可以調(diào)用其所有屬性和方法。
- Math 對(duì)象屬性
| 屬性 | 描述 |
|---|---|
| E | 返回算術(shù)常量 e,即自然對(duì)數(shù)的底數(shù)(約等于2.718)。 |
| LN2 | 返回 2 的自然對(duì)數(shù)(約等于0.693)。 |
| LN10 | 返回 10 的自然對(duì)數(shù)(約等于2.302)。 |
| LOG2E | 返回以 2 為底的 e 的對(duì)數(shù)(約等于 1.414)。 |
| LOG10E | 返回以 10 為底的 e 的對(duì)數(shù)(約等于0.434)。 |
| PI | 返回圓周率(約等于3.14159)。 |
| SQRT1_2 | 返回返回 2 的平方根的倒數(shù)(約等于 0.707)。 |
| SQRT2 | 返回 2 的平方根(約等于 1.414)。 |
- Math 對(duì)象方法
| 方法 | 描述 |
|---|---|
| abs(x) | 返回?cái)?shù)的絕對(duì)值。 |
| acos(x) | 返回?cái)?shù)的反余弦值。 |
| asin(x) | 返回?cái)?shù)的反正弦值。 |
| atan(x) | 以介于 -PI/2 與 PI/2 弧度之間的數(shù)值來返回 x 的反正切值。 |
| atan2(y,x) | 返回從 x 軸到點(diǎn) (x,y) 的角度(介于 -PI/2 與 PI/2 弧度之間)。 |
| ceil(x) | 對(duì)數(shù)進(jìn)行上舍入。 |
| cos(x) | 返回?cái)?shù)的余弦。 |
| exp(x) | 返回 e 的指數(shù)。 |
| floor(x) | 對(duì)數(shù)進(jìn)行下舍入。 |
| log(x) | 返回?cái)?shù)的自然對(duì)數(shù)(底為e)。 |
| max(x,y) | 返回 x 和 y 中的最高值。 |
| min(x,y) | 返回 x 和 y 中的最低值。 |
| pow(x,y) | 返回 x 的 y 次冪。 |
| random() | 返回 0 ~ 1 之間的隨機(jī)數(shù)。 |
| round(x) | 把數(shù)四舍五入為最接近的整數(shù)。 |
| sin(x) | 返回?cái)?shù)的正弦。 |
| sqrt(x) | 返回?cái)?shù)的平方根。 |
| tan(x) | 返回角的正切。 |
| toSource() | 返回該對(duì)象的源代碼。 |
| valueOf() | 返回 Math 對(duì)象的原始值。 |
2.7 Boolean 對(duì)象
- 創(chuàng)建 Boolean 對(duì)象的語法:
new Boolean(value); //構(gòu)造函數(shù)
Boolean(value); //轉(zhuǎn)換函數(shù)
注: 如果省略 value 參數(shù),或者設(shè)置為 0、-0、null、""、false、undefined 或 NaN,則該對(duì)象設(shè)置為 false。否則設(shè)置為 true(即使 value 參數(shù)是字符串 "false")。
- Boolean 對(duì)象屬性
| 屬性 | 描述 |
|---|---|
| constructor | 返回對(duì)創(chuàng)建此對(duì)象的 Boolean 函數(shù)的引用 |
| prototype | 使您有能力向?qū)ο筇砑訉傩院头椒ā?/td> |
- Boolean 對(duì)象方法
| 方法 | 描述 |
|---|---|
| toSource() | 返回該對(duì)象的源代碼。 |
| toString() | 把邏輯值轉(zhuǎn)換為字符串,并返回結(jié)果。 |
| valueOf() | 返回 Boolean 對(duì)象的原始值。 |
- Boolean 對(duì)象描述
在 JavaScript 中,布爾值是一種基本的數(shù)據(jù)類型。Boolean 對(duì)象是一個(gè)將布爾值打包的布爾對(duì)象。Boolean 對(duì)象主要用于提供將布爾值轉(zhuǎn)換成字符串的 toString() 方法。
當(dāng)調(diào)用 toString() 方法將布爾值轉(zhuǎn)換成字符串時(shí)(通常是由 JavaScript 隱式地調(diào)用),JavaScript 會(huì)內(nèi)在地將這個(gè)布爾值轉(zhuǎn)換成一個(gè)臨時(shí)的 Boolean 對(duì)象,然后調(diào)用這個(gè)對(duì)象的 toString() 方法。