<!DOCTYPE html>
<html>
<head>
<title>this is a html web</title>
<meta charset="utf-8">
</head>
<body onload="checkCookies()">
<!-- document.write的使用 寫入 HTML 輸出-->
<!-- 您只能在 HTML 輸出中使用 document.write。如果您在文檔加載后使用該方法,會(huì)覆蓋整個(gè)文檔。 -->
<p>
document.write("<h1>this is a heading</h1>")
</p>
<!-- button點(diǎn)擊事件 -->
<p><button type="button" onclick="alert('歡迎使用html')">點(diǎn)我</button></p>
<!-- 改變 元素內(nèi)容 -->
<p id="demo">
JavaScript 能改變 HTML 元素的內(nèi)容。
</p>
<script>
function myFunction()
{
x=document.getElementById("demo"); // 找到元素
x.innerHTML="Hello JavaScript!"; // 改變內(nèi)容
x.style.color = "#ff0000"; //改變樣式
}
</script>
<button type="button" onclick="myFunction()">點(diǎn)擊這里改變?cè)貎?nèi)容</button>
<p></p>
<script>
function changeImage()
{
element = document.getElementById('myImage')
if (element.src.match('hui')) {
element.src = "./images/huang.png"
}else{
element.src = "./images/hui.png"
}
}
</script>
<!-- 圖片可用相對(duì)路徑 也可以用絕對(duì)路徑 -->

<!-- 輸入框 -->
<p>請(qǐng)輸入數(shù)字。如果輸入值不是數(shù)字,瀏覽器會(huì)彈出提示框。</p>
<input id="myInput" type="text" name="請(qǐng)輸入數(shù)字。如果輸入值不是數(shù)字,瀏覽器會(huì)彈出提示框。">
<script>
function InputFuction()
{
var x = document.getElementById("myInput").value;
if (x==""||isNaN(x)) {
alert("不是數(shù)字");
}
}
</script>
<button type="button" onclick="InputFuction()">點(diǎn)擊驗(yàn)證輸入內(nèi)容</button>
<!-- 分號(hào)用于分隔 JavaScript 語(yǔ)句。通常我們?cè)诿織l可執(zhí)行的語(yǔ)句結(jié)尾添加分號(hào)。使用分號(hào)的另一用處是在一行中編寫多條語(yǔ)句。提示:您也可能看到不帶有分號(hào)的案例。在 JavaScript 中,用分號(hào)來(lái)結(jié)束語(yǔ)句是可選的。
JavaScript 會(huì)忽略多余的空格。您可以向腳本添加空格,來(lái)提高其可讀性
可以在文本字符串中使用反斜杠對(duì)代碼行進(jìn)行換行 document.write("Hello \ World!");
JavaScript 變量
變量必須以字母開頭
變量也能以 $ 和 _ 符號(hào)開頭(不過(guò)我們不推薦這么做)
變量名稱對(duì)大小寫敏感(y 和 Y 是不同的變量)
JavaScript 數(shù)據(jù)類型
JavaScript 變量還能保存其他數(shù)據(jù)類型,比如文本值 (name="Bill Gates")。
在 JavaScript 中,類似 "Bill Gates" 這樣一條文本被稱為字符串。
JavaScript 變量有很多種類型,但是現(xiàn)在,我們只關(guān)注數(shù)字和字符串。
當(dāng)您向變量分配文本值時(shí),應(yīng)該用雙引號(hào)或單引號(hào)包圍這個(gè)值。
當(dāng)您向變量賦的值是數(shù)值時(shí),不要使用引號(hào)。如果您用引號(hào)包圍數(shù)值,該值會(huì)被作為文本來(lái)處理。
在一條語(yǔ)句中聲明很多變量。該語(yǔ)句以 var 開頭,并使用逗號(hào)分隔變量即可:
var name="Gates", age=56, job="CEO";
或
var name="Gates",
age=56,
job="CEO";
重新聲明 JavaScript 變量
如果重新聲明 JavaScript 變量,該變量的值不會(huì)丟失:
在以下兩條語(yǔ)句執(zhí)行后,變量 carname 的值依然是 "Volvo":
var carname="Volvo";
var carname;
JavaScript 數(shù)據(jù)類型
字符串、數(shù)字、布爾、數(shù)組、對(duì)象、Null、Undefined
JavaScript 擁有動(dòng)態(tài)類型,這意味著相同的變量可用作不同的類型:
var x // x 為 undefined
var x = 6; // x 為數(shù)字
var x = "Bill"; // x 為字符串
字符串可以是引號(hào)中的任意文本。您可以使用單引號(hào)或雙引號(hào)
var answer="Nice to meet you!";
var answer="He is called 'Bill'";
var answer='He is called "Bill"';
JavaScript 只有一種數(shù)字類型。數(shù)字可以帶小數(shù)點(diǎn),也可以不帶:
var x1=34.00; //使用小數(shù)點(diǎn)來(lái)寫
var x2=34; //不使用小數(shù)點(diǎn)來(lái)寫
極大或極小的數(shù)字可以通過(guò)科學(xué)(指數(shù))計(jì)數(shù)法來(lái)書寫:
var y=123e5; // 12300000
var z=123e-5; // 0.00123
布爾(邏輯)只能有兩個(gè)值:true 或 false。常用在條件測(cè)試中
JavaScript 數(shù)組
下面的代碼創(chuàng)建名為 cars 的數(shù)組:
var cars=new Array();
cars[0]="Audi";
cars[1]="BMW";
cars[2]="Volvo";
或者 (condensed array):
var cars=new Array("Audi","BMW","Volvo");
JavaScript 對(duì)象
對(duì)象由花括號(hào)分隔。在括號(hào)內(nèi)部,對(duì)象的屬性以名稱和值對(duì)的形式 (name : value) 來(lái)定義。屬性由逗號(hào)分隔:
var person={firstname:"Bill", lastname:"Gates", id:5566};
上面例子中的對(duì)象 (person) 有三個(gè)屬性:firstname、lastname 以及 id。
空格和折行無(wú)關(guān)緊要。聲明可橫跨多行:
var person={
firstname : "Bill",
lastname : "Gates",
id : 5566
};
對(duì)象屬性有兩種尋址方式:
name=person.lastname;
name=person["lastname"];
Undefined 和 Null
Undefined 這個(gè)值表示變量不含有值。
可以通過(guò)將變量的值設(shè)置為 null 來(lái)清空變量。
聲明變量類型
當(dāng)您聲明新變量時(shí),可以使用關(guān)鍵詞 "new" 來(lái)聲明其類型:
var carname=new String;
var x= new Number;
var y= new Boolean;
var cars= new Array;
var person= new Object;
局部 JavaScript 變量
在 JavaScript 函數(shù)內(nèi)部聲明的變量(使用 var)是局部變量,所以只能在函數(shù)內(nèi)部訪問(wèn)它。(該變量的作用域是局部的)。
您可以在不同的函數(shù)中使用名稱相同的局部變量,因?yàn)橹挥新暶鬟^(guò)該變量的函數(shù)才能識(shí)別出該變量。
只要函數(shù)運(yùn)行完畢,本地變量就會(huì)被刪除。
全局 JavaScript 變量
在函數(shù)外聲明的變量是全局變量,網(wǎng)頁(yè)上的所有腳本和函數(shù)都能訪問(wèn)它。
JavaScript 變量的生存期
JavaScript 變量的生命期從它們被聲明的時(shí)間開始。
局部變量會(huì)在函數(shù)運(yùn)行以后被刪除。
全局變量會(huì)在頁(yè)面關(guān)閉后被刪除。
向未聲明的 JavaScript 變量來(lái)分配值
如果您把值賦給尚未聲明的變量,該變量將被自動(dòng)作為全局變量聲明。
carname="Volvo";
將聲明一個(gè)全局變量 carname,即使它在函數(shù)內(nèi)執(zhí)行。
如果把數(shù)字與字符串相加,結(jié)果將成為字符串。
-->
<p>點(diǎn)擊按鈕,遍歷對(duì)對(duì)象person的屬性</p>
<button type="button" onclick="ForInFunction()">點(diǎn)擊遍歷person</button>
<p id="textDemo"></p>
<script type="text/javascript">
function ForInFunction(){
var x;
var txt="";
var person={firstname:"Bill",lastname:"Gates",age:"56"};
for (x in person) {
txt=txt+person[x]+" ";
}
document.getElementById("textDemo").innerHTML=txt;
}
</script>
<!--
break 語(yǔ)句用于跳出循環(huán)。
continue 用于跳過(guò)循環(huán)中的一個(gè)迭代。
try 語(yǔ)句測(cè)試代碼塊的錯(cuò)誤。
catch 語(yǔ)句處理錯(cuò)誤。
throw 語(yǔ)句創(chuàng)建自定義錯(cuò)誤。
JavaScript 測(cè)試和捕捉
try 語(yǔ)句允許我們定義在執(zhí)行時(shí)進(jìn)行錯(cuò)誤測(cè)試的代碼塊。
catch 語(yǔ)句允許我們定義當(dāng) try 代碼塊發(fā)生錯(cuò)誤時(shí),所執(zhí)行的代碼塊。
JavaScript 語(yǔ)句 try 和 catch 是成對(duì)出現(xiàn)的。
try
{
//在這里運(yùn)行代碼
}
catch(err)
{
//在這里處理錯(cuò)誤
}
Throw 語(yǔ)句
throw 語(yǔ)句允許我們創(chuàng)建自定義錯(cuò)誤。
正確的技術(shù)術(shù)語(yǔ)是:創(chuàng)建或拋出異常(exception)。
如果把 throw 與 try 和 catch 一起使用,那么您能夠控制程序流,并生成自定義的錯(cuò)誤消息。
throw exception
異??梢允?JavaScript 字符串、數(shù)字、邏輯值或?qū)ο蟆? -->
<p></p>
<script>
var txt="";
function message()
{
try
{
addlert("Welcome guest!");
}
catch(err)
{
txt="本頁(yè)有一個(gè)錯(cuò)誤。\n\n";
txt+="錯(cuò)誤描述:" + err.message + "\n\n";
txt+="點(diǎn)擊確定繼續(xù)。\n\n";
alert(txt);
}
}
</script>
<input type="button" value="查驗(yàn)代碼塊是否正確" onclick="message()">
<p></p>
<script>
function throwFunction()
{
try
{
var x=document.getElementById("throwDemo").value;
if(x=="") throw "值為空";
if(isNaN(x)) throw "不是數(shù)字";
if(x>10) throw "太大";
if(x<5) throw "太小";
}
catch(err)
{
var y=document.getElementById("mess");
y.innerHTML="錯(cuò)誤:" + err + "。";
}
}
</script>
<p>請(qǐng)輸入一個(gè)5到10之間的數(shù)字</p>
<input type="text" id="throwDemo">
<button type="button" onclick="throwFunction()">測(cè)試輸入值</button>
<p id="mess"></p>
<!--
JavaScript 可用來(lái)在數(shù)據(jù)被送往服務(wù)器前對(duì) HTML 表單中的這些輸入數(shù)據(jù)進(jìn)行驗(yàn)證。
JavaScript 表單驗(yàn)證
JavaScript 可用來(lái)在數(shù)據(jù)被送往服務(wù)器前對(duì) HTML 表單中的這些輸入數(shù)據(jù)進(jìn)行驗(yàn)證。
被 JavaScript 驗(yàn)證的這些典型的表單數(shù)據(jù)有:
用戶是否已填寫表單中的必填項(xiàng)目?
用戶輸入的郵件地址是否合法?
用戶是否已輸入合法的日期?
用戶是否在數(shù)據(jù)域 (numeric field) 中輸入了文本?
-->
<!-- 通過(guò)可編程的對(duì)象模型,JavaScript 獲得了足夠的能力來(lái)創(chuàng)建動(dòng)態(tài)的 HTML。
JavaScript 能夠改變頁(yè)面中的所有 HTML 元素
JavaScript 能夠改變頁(yè)面中的所有 HTML 屬性
JavaScript 能夠改變頁(yè)面中的所有 CSS 樣式
JavaScript 能夠?qū)?yè)面中的所有事件做出反應(yīng)
查找 HTML 元素
通常,通過(guò) JavaScript,您需要操作 HTML 元素。
為了做到這件事情,您必須首先找到該元素。有三種方法來(lái)做這件事:
通過(guò) id 找到 HTML 元素
通過(guò)標(biāo)簽名找到 HTML 元素
通過(guò)類名找到 HTML 元素
提示:通過(guò)類名查找 HTML 元素在 IE 5,6,7,8 中無(wú)效。
改變 HTML 內(nèi)容
修改 HTML 內(nèi)容的最簡(jiǎn)單的方法是使用 innerHTML 屬性。
document.getElementById(id).innerHTML=new HTML
改變 HTML 屬性
如需改變 HTML 元素的屬性,請(qǐng)使用這個(gè)語(yǔ)法:
document.getElementById(id).attribute=new value
-->

<script type="text/javascript">
document.getElementById("imageMales").src="./images/盧浦大橋.png"
</script>
<!-- 改變 HTML 樣式
如需改變 HTML 元素的樣式,請(qǐng)使用這個(gè)語(yǔ)法:
document.getElementById(id).style.property=new style -->
<p id="p1">Hello World!</p>
<p id="p2">Hello World!</p>
<script>
document.getElementById("p2").style.color="blue";
document.getElementById("p2").style.fontFamily="Arial";
document.getElementById("p2").style.fontSize="larger";
</script>
<p id="changeColor">change text color</P>
<script type="text/javascript">
function changeColorFunction(){
document.getElementById("changeColor").style.color="red";
}
</script>
<button type="button" onclick="changeColorFunction()">點(diǎn)擊改變顏色</button>
<!-- visibility 隱藏和顯示 -->
<p id="visibilityId">這是一段文本,點(diǎn)擊按鈕隱藏或者顯示該文本</p>
<script type="text/javascript">
function visibilityFunction(){
var btn=document.getElementById("visibilityBtn");
if (btn.innerText=="隱藏") {
btn.innerText="顯示";
document.getElementById("visibilityId").style.visibility="hidden";
}else{
btn.innerText="隱藏";
document.getElementById("visibilityId").style.visibility="visible";
}
}
</script>
<button id="visibilityBtn" type="button" onclick="visibilityFunction()">隱藏</button>
<!-- 對(duì)事件做出反應(yīng)
我們可以在事件發(fā)生時(shí)執(zhí)行 JavaScript,比如當(dāng)用戶在 HTML 元素上點(diǎn)擊時(shí)。
如需在用戶點(diǎn)擊某個(gè)元素時(shí)執(zhí)行代碼,請(qǐng)向一個(gè) HTML 事件屬性添加 JavaScript 代碼:
onclick=JavaScript
HTML 事件的例子:
當(dāng)用戶點(diǎn)擊鼠標(biāo)時(shí)
當(dāng)網(wǎng)頁(yè)已加載時(shí)
當(dāng)圖像已加載時(shí)
當(dāng)鼠標(biāo)移動(dòng)到元素上時(shí)
當(dāng)輸入字段被改變時(shí)
當(dāng)提交 HTML 表單時(shí)
當(dāng)用戶觸發(fā)按鍵時(shí)
-->
<h1 onclick="this.innerHTML='謝謝!'">點(diǎn)擊文本改變內(nèi)容</h1>
<script>
function changetext(id)
{
id.innerHTML="謝謝!";
}
</script>
<p onclick="changetext(this)">點(diǎn)擊文本改變內(nèi)容</p>
<!-- 使用 HTML DOM 來(lái)分配事件
HTML DOM 允許您通過(guò)使用 JavaScript 來(lái)向 HTML 元素分配事件: -->
<button id="displayBtn">點(diǎn)擊按鈕執(zhí)行<em>displayDate()</em>函數(shù)</button>
<script type="text/javascript">
document.getElementById("displayBtn").onclick=function(){displayDate()};
function displayDate(){
document.getElementById("displayDemo").innerHTML=Date();
}
</script>
<p id="displayDemo"></p>
<!-- onload 和 onunload 事件
onload 和 onunload 事件會(huì)在用戶進(jìn)入或離開頁(yè)面時(shí)被觸發(fā)。
onload 事件可用于檢測(cè)訪問(wèn)者的瀏覽器類型和瀏覽器版本,并基于這些信息來(lái)加載網(wǎng)頁(yè)的正確版本。
onload 和 onunload 事件可用于處理 cookie。 -->
<script type="text/javascript">
function checkCookies(){
if (navigator.cookieEnabled==true) {
alert("已啟用cookies");
}else
alert("未啟用cookies");
}
</script>
<!-- onchange 事件
onchange 事件常結(jié)合對(duì)輸入字段的驗(yàn)證來(lái)使用。
下面是一個(gè)如何使用 onchange 的例子。當(dāng)用戶改變輸入字段的內(nèi)容時(shí),會(huì)調(diào)用 upperCase() 函數(shù)。 -->
<script type="text/javascript">
function onchangeFunction(){
var x=document.getElementById("fname");
x.value=x.value.toUpperCase();
}
</script>
請(qǐng)輸入英文字符:<input type="text" id="fname" onchange="onchangeFunction()">
<P>當(dāng)您離開輸入字段時(shí),會(huì)觸發(fā)將輸入文本轉(zhuǎn)化為大寫的函數(shù)</P>
<!-- onmouseover 和 onmouseout 事件
onmouseover 和 onmouseout 事件可用于在用戶的鼠標(biāo)移至 HTML 元素上方或移出元素時(shí)觸發(fā)函數(shù)。 -->
<div onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color: green;width: 120px;height: 20px;padding: 10px;color: #ffffff">把鼠標(biāo)移到上面</div>
<script type="text/javascript">
function mOver(obj){
obj.innerHTML="謝謝"
}
function mOut(obj){
obj.innerHTML="把鼠標(biāo)移到上面"
}
</script>
<p></p>
<!-- 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 事件。 -->
<div onmousedown="mDown(this)" onmouseup="mUp(this)" style="background-color: green;color: #ffffff;width: 90px;height: 20px;padding: 10px;font-size: 12px">請(qǐng)點(diǎn)擊</div>
<script type="text/javascript">
function mDown(obj){
obj.style.backgroundColor="#1ec5e5";
obj.innerHTML="請(qǐng)釋放鼠標(biāo)按鈕"
}
function mUp(obj){
obj.style.backgroundColor="green";
obj.innerHTML="請(qǐng)按下鼠標(biāo)按鈕"
}
</script>
<p></p>
<h1 onmouseover="style.color='red'" onmouseout="style.color='blue'">
請(qǐng)把鼠標(biāo)移到這段文本上</h1>
<div id="divdiv">
<p>這是段落一</p>
<p>這是段落二</p>
</div>
<script type="text/javascript">
var para=document.createElement("p");
var node=document.createTextNode("這是新增段落三");
para.appendChild(node);
var element=document.getElementById("divdiv");
element.appendChild(para);
</script>
<!-- 這段代碼創(chuàng)建新的 <p> 元素:
var para=document.createElement("p");
如需向 <p> 元素添加文本,您必須首先創(chuàng)建文本節(jié)點(diǎn)。這段代碼創(chuàng)建了一個(gè)文本節(jié)點(diǎn):
var node=document.createTextNode("這是新段落。");
然后您必須向 <p> 元素追加這個(gè)文本節(jié)點(diǎn):
para.appendChild(node);
最后您必須向一個(gè)已有的元素追加這個(gè)新元素。
這段代碼找到一個(gè)已有的元素:
var element=document.getElementById("div1");
這段代碼向這個(gè)已有的元素追加新元素:
element.appendChild(para); -->
<script type="text/javascript">
// var element=document.getElementById("divdiv");
element.removeChild(para);
</script>
<!--
JavaScript 中的所有事物都是對(duì)象:字符串、數(shù)值、數(shù)組、函數(shù)...
此外,JavaScript 允許自定義對(duì)象。
-->
<!-- 數(shù)字精度
整數(shù)(不使用小數(shù)點(diǎn)或指數(shù)計(jì)數(shù)法)最多為 15 位。
小數(shù)的最大位數(shù)是 17,但是浮點(diǎn)運(yùn)算并不總是 100% 準(zhǔn)確:
如果前綴為 0,則 JavaScript 會(huì)把數(shù)值常量解釋為八進(jìn)制數(shù),如果前綴為 0 和 "x",則解釋為十六進(jìn)制數(shù)。
提示:絕不要在數(shù)字前面寫零,除非您需要進(jìn)行八進(jìn)制轉(zhuǎn)換。
-->
<!--
返回當(dāng)日的日期和時(shí)間
1.使用 Date() 方法獲得當(dāng)日的日期。
getTime()
2.getTime() 返回從 1970 年 1 月 1 日至今的毫秒數(shù)。
setFullYear()
3.使用 setFullYear() 設(shè)置具體的日期。
toUTCString()
4.使用 toUTCString() 將當(dāng)日的日期(根據(jù) UTC)轉(zhuǎn)換為字符串。
getDay()
4.使用 getDay() 和數(shù)組來(lái)顯示星期,而不僅僅是數(shù)字。
-->
<script type="text/javascript">
document.write(Date()+"<br />");
var d=new Date();
document.write("從 1970/01/01 至今已過(guò)去 " + d.getTime() + " 毫秒"+"<br />");
var d = new Date();
d.setFullYear(1992,10,3);
document.write(d+"<br />");
var d = new Date();
document.write (d.toUTCString()+"<br />");
var d=new Date()
var weekday=new Array(7)
weekday[0]="星期日"
weekday[1]="星期一"
weekday[2]="星期二"
weekday[3]="星期三"
weekday[4]="星期四"
weekday[5]="星期五"
weekday[6]="星期六"
document.write("今天是" + weekday[d.getDay()])
var myDate=new Date();
myDate.setFullYear(2008,8,9);
var today = new Date();
if (myDate>today)
{
alert("Today is before 9th August 2008");
}
else
{
alert("Today is after 9th August 2008");
}
</script>
<p></p>
<!-- 數(shù)組對(duì)象的作用是:使用單獨(dú)的變量名來(lái)存儲(chǔ)一系列的值。 -->
<script type="text/javascript">
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"
// 遍歷數(shù)組
for (i=0;i<mycars.length;i++)
{
document.write(mycars[i] + "<br />")
}
for (x in mycars)
{
document.write(mycars[x] + "<br />")
}
// 合并數(shù)組
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin"
document.write(arr.concat(arr2))
// 使用 join() 方法將數(shù)組的所有元素組成一個(gè)字符串。
document.write(arr.join());
document.write("<br />");
document.write(arr.join("."));
document.write("<br />");
// 文字?jǐn)?shù)組 - sort() 使用 sort() 方法從字面上對(duì)數(shù)組進(jìn)行排序
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr+"<br/>");
document.write(arr.sort())
document.write("<br />");
// 數(shù)字?jǐn)?shù)組 - sort() 使用 sort() 方法從數(shù)值上對(duì)數(shù)組進(jìn)行排序。
function sortNumber(a, b)
{
return a - b
}
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
document.write(arr+"<br/>")
document.write(arr.sort(sortNumber))
</script>
<!--
Boolean(邏輯)對(duì)象用于將非邏輯值轉(zhuǎn)換為邏輯值(true 或者 false)
創(chuàng)建 Boolean 對(duì)象
使用關(guān)鍵詞 new 來(lái)定義 Boolean 對(duì)象。下面的代碼定義了一個(gè)名為 myBoolean 的邏輯對(duì)象:
var myBoolean=new Boolean()
如果邏輯對(duì)象無(wú)初始值或者其值為 0、-0、null、""、false、undefined 或者 NaN,那么對(duì)象的值為 false。否則,其值為 true(即使當(dāng)自變量為字符串 "false" 時(shí))
下面的所有的代碼行均會(huì)創(chuàng)建初始值為 false 的 Boolean 對(duì)象。
var myBoolean=new Boolean();
var myBoolean=new Boolean(0);
var myBoolean=new Boolean(null);
var myBoolean=new Boolean("");
var myBoolean=new Boolean(false);
var myBoolean=new Boolean(NaN);
下面的所有的代碼行均會(huì)創(chuàng)初始值為 true 的 Boolean 對(duì)象:
var myBoolean=new Boolean(1);
var myBoolean=new Boolean(true);
var myBoolean=new Boolean("true");
var myBoolean=new Boolean("false");
var myBoolean=new Boolean("Bill Gates");
-->
<script type="text/javascript">
var b1=new Boolean( 0)
var b2=new Boolean(1)
var b3=new Boolean("")
var b4=new Boolean(null)
var b5=new Boolean(NaN)
var b6=new Boolean("false")
var b7=new Boolean()
document.write("0 是邏輯的 "+ b1 +"<br />")
document.write("1 是邏輯的 "+ b2 +"<br />")
document.write("空字符串是邏輯的 "+ b3 + "<br />")
document.write("null 是邏輯的 "+ b4+ "<br />")
document.write("NaN 是邏輯的 "+ b5 +"<br />")
document.write("字符串 'false' 是邏輯的 "+ b6 +"<br />")
document.write(b7+"<br/>")
</script>
<!--
Math 對(duì)象
Math(算數(shù))對(duì)象的作用是:執(zhí)行普通的算數(shù)任務(wù)。
Math 對(duì)象提供多種算數(shù)值類型和函數(shù)。無(wú)需在使用這個(gè)對(duì)象之前對(duì)它進(jìn)行定義。
算數(shù)值
JavaScript 提供 8 種可被 Math 對(duì)象訪問(wèn)的算數(shù)值:
常數(shù)
圓周率
2 的平方根
1/2 的平方根
2 的自然對(duì)數(shù)
10 的自然對(duì)數(shù)
以 2 為底的 e 的對(duì)數(shù)
以 10 為底的 e 的對(duì)數(shù)
這是在 Javascript 中使用這些值的方法:(與上面的算數(shù)值一一對(duì)應(yīng))
Math.E
Math.PI
Math.SQRT2
Math.SQRT1_2
Math.LN2
Math.LN10
Math.LOG2E
Math.LOG10E
Math 對(duì)象的 round 方法對(duì)一個(gè)數(shù)進(jìn)行四舍五入。
document.write(Math.round(4.7)) //5
Math 對(duì)象的 random() 方法來(lái)返回一個(gè)介于 0 和 1 之間的隨機(jī)數(shù):
document.write(Math.random())
使用了 Math 對(duì)象的 floor() 方法和 random() 來(lái)返回一個(gè)介于 0 和 10 之間的隨機(jī)數(shù):
document.write(Math.floor(Math.random()*11))
-->
<script type="text/javascript">
// round()的使用
document.write(Math.round(0.456)+"<br/>")
document.write(Math.round(0.789)+"<br/>")
document.write(Math.round(0.5)+"<br/>")
document.write(Math.round(-4.45)+"<br/>")
document.write(Math.round(-4.67)+"<br/>")
// random()的使用 使用 random() 來(lái)返回 0 到 1 之間的隨機(jī)數(shù)。
document.write(Math.random()+"<br/>")
// 使用 max() 來(lái)返回兩個(gè)給定的數(shù)中的較大的數(shù)。(在 ECMASCript v3 之前,該方法只有兩個(gè)參數(shù)。)
document.write(Math.max(5,7) + "<br />")
document.write(Math.max(-3,5) + "<br />")
document.write(Math.max(-3,-5) + "<br />")
document.write(Math.max(7.25,7.30) + "<br />")
// 使用 min() 來(lái)返回兩個(gè)給定的數(shù)中的較小的數(shù)。(在 ECMASCript v3 之前,該方法只有兩個(gè)參數(shù)。)
document.write(Math.min(5,7,2,3) + "<br />")
document.write(Math.min(-3,5) + "<br />")
document.write(Math.min(-3,-5) + "<br />")
document.write(Math.min(7.25,7.30))
</script>
<!--
什么是 RegExp?
RegExp 是正則表達(dá)式的縮寫。
當(dāng)您檢索某個(gè)文本時(shí),可以使用一種模式來(lái)描述要檢索的內(nèi)容。RegExp 就是這種模式。
簡(jiǎn)單的模式可以是一個(gè)單獨(dú)的字符。
更復(fù)雜的模式包括了更多的字符,并可用于解析、格式檢查、替換等等。
您可以規(guī)定字符串中的檢索位置,以及要檢索的字符類型,等等。
定義 RegExp
RegExp 對(duì)象用于存儲(chǔ)檢索模式。
通過(guò) new 關(guān)鍵詞來(lái)定義 RegExp 對(duì)象。以下代碼定義了名為 patt1 的 RegExp 對(duì)象,其模式是 "e":
var patt1=new RegExp("e");
當(dāng)您使用該 RegExp 對(duì)象在一個(gè)字符串中檢索時(shí),將尋找的是字符 "e"。
RegExp 對(duì)象的方法
RegExp 對(duì)象有 3 個(gè)方法:test()、exec() 以及 compile()。
test()
test() 方法檢索字符串中的指定值。返回值是 true 或 false。
example:
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
exec()
exec() 方法檢索字符串中的指定值。返回值是被找到的值。如果沒(méi)有發(fā)現(xiàn)匹配,則返回 null。
example:
var patt1=new RegExp("e");
document.write(patt1.exec("The best things in life are free"));
compile()
compile() 方法用于改變 RegExp。
compile() 既可以改變檢索模式,也可以添加或刪除第二個(gè)參數(shù)。
-->
<p></p>
<script type="text/javascript">
var patt1=new RegExp("e","g")
do{
result=patt1.exec("the best things in life are free")
document.write(result+"<br/>")
}
while(result!=null)
</script>
<script type="text/javascript">
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
patt1.compile("d"); //由于字符串中存在 "e",而沒(méi)有 "d"
document.write(patt1.test("The best things in life are free"));
</script>
<!--
Window 尺寸
有三種方法能夠確定瀏覽器窗口的尺寸(瀏覽器的視口,不包括工具欄和滾動(dòng)條)。
對(duì)于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:
window.innerHeight - 瀏覽器窗口的內(nèi)部高度
window.innerWidth - 瀏覽器窗口的內(nèi)部寬度
對(duì)于 Internet Explorer 8、7、6、5:
document.documentElement.clientHeight
document.documentElement.clientWidth
或者
document.body.clientHeight
document.body.clientWidth
實(shí)用的 JavaScript 方案(涵蓋所有瀏覽器):
-->
<p id="wh"></p>
<script>
var w=window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
var h=window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;
x=document.getElementById("wh");
x.innerHTML="瀏覽器的內(nèi)部窗口寬度:" + w + ",高度:" + h + "。"
</script>
<!--
其他 Window 方法
一些其他方法:
window.open() - 打開新窗口
window.close() - 關(guān)閉當(dāng)前窗口
window.moveTo() - 移動(dòng)當(dāng)前窗口
window.resizeTo() - 調(diào)整當(dāng)前窗口的尺寸
-->
<!--
Window Screen
window.screen 對(duì)象包含有關(guān)用戶屏幕的信息。
window.screen 對(duì)象在編寫時(shí)可以不使用 window 這個(gè)前綴。
一些屬性:
screen.availWidth - 可用的屏幕寬度
screen.availHeight - 可用的屏幕高度
Window Screen 可用寬度
screen.availWidth 屬性返回訪問(wèn)者屏幕的寬度,以像素計(jì),減去界面特性,比如窗口任務(wù)欄。
Window Screen 可用高度
screen.availHeight 屬性返回訪問(wèn)者屏幕的高度,以像素計(jì),減去界面特性,比如窗口任務(wù)欄。
-->
<!--
window.location 對(duì)象用于獲得當(dāng)前頁(yè)面的地址 (URL),并把瀏覽器重定向到新的頁(yè)面。
Window Location
window.location 對(duì)象在編寫時(shí)可不使用 window 這個(gè)前綴。
一些例子:
location.href 屬性返回當(dāng)前頁(yè)面的 URL
location.hostname 返回 web 主機(jī)的域名
location.pathname 返回當(dāng)前頁(yè)面的路徑和文件名
location.port 返回 web 主機(jī)的端口 (80 或 443)
location.protocol 返回所使用的 web 協(xié)議(http:// 或 https://)
location.assign() 方法加載新的文檔
-->
<script>
function newDoc()
{
window.location.assign("http://www.w3school.com.cn")
}
</script>
<p><input type="button" value="加載新文檔" onclick="newDoc()"></p>
<!--
Window History
window.history 對(duì)象包含瀏覽器的歷史。
window.history 對(duì)象在編寫時(shí)可不使用 window 這個(gè)前綴。
為了保護(hù)用戶隱私,對(duì) JavaScript 訪問(wèn)該對(duì)象的方法做出了限制。
一些方法:
history.back() - 與在瀏覽器點(diǎn)擊后退按鈕相同
history.forward() - 與在瀏覽器中點(diǎn)擊按鈕向前相同
-->
<!--
window.navigator
window.navigator 對(duì)象包含有關(guān)訪問(wèn)者瀏覽器的信息。
window.navigator 對(duì)象在編寫時(shí)可不使用 window 這個(gè)前綴。
警告:來(lái)自 navigator 對(duì)象的信息具有誤導(dǎo)性,不應(yīng)該被用于檢測(cè)瀏覽器版本,這是因?yàn)椋? navigator 數(shù)據(jù)可被瀏覽器使用者更改
瀏覽器無(wú)法報(bào)告晚于瀏覽器發(fā)布的新操作系統(tǒng)
瀏覽器檢測(cè)
由于 navigator 可誤導(dǎo)瀏覽器檢測(cè),使用對(duì)象檢測(cè)可用來(lái)嗅探不同的瀏覽器。
由于不同的瀏覽器支持不同的對(duì)象,您可以使用對(duì)象來(lái)檢測(cè)瀏覽器。例如,由于只有 Opera 支持屬性 "window.opera",您可以據(jù)此識(shí)別出 Opera。
例子:if (window.opera) {...some action...}
-->
<div id="example"></div>
<script>
txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>";
txt+= "<p>Browser Name: " + navigator.appName + "</p>";
txt+= "<p>Browser Version: " + navigator.appVersion + "</p>";
txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>";
txt+= "<p>Platform: " + navigator.platform + "</p>";
txt+= "<p>User-agent header: " + navigator.userAgent + "</p>";
txt+= "<p>User-agent language: " + navigator.systemLanguage + "</p>";
document.getElementById("example").innerHTML=txt;
</script>
<!--
警告框
警告框經(jīng)常用于確保用戶可以得到某些信息。
當(dāng)警告框出現(xiàn)后,用戶需要點(diǎn)擊確定按鈕才能繼續(xù)進(jìn)行操作。
語(yǔ)法:
alert("文本")
確認(rèn)框
確認(rèn)框用于使用戶可以驗(yàn)證或者接受某些信息。
當(dāng)確認(rèn)框出現(xiàn)后,用戶需要點(diǎn)擊確定或者取消按鈕才能繼續(xù)進(jìn)行操作。
如果用戶點(diǎn)擊確認(rèn),那么返回值為 true。如果用戶點(diǎn)擊取消,那么返回值為 false。
語(yǔ)法:
confirm("文本")
提示框
提示框經(jīng)常用于提示用戶在進(jìn)入頁(yè)面前輸入某個(gè)值。
當(dāng)提示框出現(xiàn)后,用戶需要輸入某個(gè)值,然后點(diǎn)擊確認(rèn)或取消按鈕才能繼續(xù)操縱。
如果用戶點(diǎn)擊確認(rèn),那么返回值為輸入的值。如果用戶點(diǎn)擊取消,那么返回值為 null。
語(yǔ)法:
prompt("文本","默認(rèn)值")
-->
<p><input type="button" onclick="disp_alert()" value="顯示警告框"></p>
<script type="text/javascript">
function disp_alert()
{
alert("再次向您問(wèn)好!在這里,我們向您演示" + '\n' + "如何向警告框添加折行。")
}
</script>
<!-- JavaScript 計(jì)時(shí)
通過(guò)使用 JavaScript,我們有能力做到在一個(gè)設(shè)定的時(shí)間間隔之后來(lái)執(zhí)行代碼,而不是在函數(shù)被調(diào)用后立即執(zhí)行。我們稱之為計(jì)時(shí)事件。-->
<!-- 計(jì)時(shí) 5 秒后彈出一個(gè)警告框 -->
<script type="text/javascript">
function timedMsg(){
setTimeout("alert('5秒了')",5000);
}
</script>
<p><button onclick="timedMsg()">點(diǎn)擊按鈕5秒后給出提示</button></p>
<!-- 一個(gè)無(wú)窮循環(huán)中的計(jì)時(shí)事件 -->
<script type="text/javascript">
var t=0;
function timedOut(){
document.getElementById("timedOutTxt").innerText=t;
t++;
setTimeout("timedOut()",1000);
}
</script>
<p id="timedOutTxt"><button onclick="timedOut()">開始計(jì)時(shí)</button>計(jì)時(shí)</p>
<!-- 帶有停止按鈕的無(wú)窮循環(huán)中的計(jì)時(shí)事件
setTimeout()
未來(lái)的某時(shí)執(zhí)行代碼
clearTimeout()
取消setTimeout()
setTimeout()
語(yǔ)法
var t=setTimeout("javascript語(yǔ)句",毫秒)
setTimeout() 方法會(huì)返回某個(gè)值。在上面的語(yǔ)句中,值被儲(chǔ)存在名為 t 的變量中。假如你希望取消這個(gè) setTimeout(),你可以使用這個(gè)變量名來(lái)指定它。
setTimeout() 的第一個(gè)參數(shù)是含有 JavaScript 語(yǔ)句的字符串。這個(gè)語(yǔ)句可能諸如 "alert('5 seconds!')",或者對(duì)函數(shù)的調(diào)用,諸如 alertMsg()"。
第二個(gè)參數(shù)指示從當(dāng)前起多少毫秒后執(zhí)行第一個(gè)參數(shù)。
-->
<script type="text/javascript">
var t=0
var tim
function startTimedOut(){
document.getElementById("stTimeTxt").value=t
t=t+1
tim=setTimeout("startTimedOut()",1000)
}
function stopTimedOut(){
t=0;
setTimeout("document.getElementById('stTimeTxt').value=0",0);
clearTimeout(tim);
}
</script>
<form>
<input type="button" value="開始計(jì)時(shí)!" onClick="startTimedOut()">
<input type="text" id="stTimeTxt">
<input type="button" value="停止計(jì)時(shí)!" onClick="stopTimedOut()">
</form>
<!-- 什么是cookie?
cookie 是存儲(chǔ)于訪問(wèn)者的計(jì)算機(jī)中的變量。每當(dāng)同一臺(tái)計(jì)算機(jī)通過(guò)瀏覽器請(qǐng)求某個(gè)頁(yè)面時(shí),就會(huì)發(fā)送這個(gè) cookie。你可以使用 JavaScript 來(lái)創(chuàng)建和取回 cookie 的值。
cookie 用來(lái)識(shí)別用戶。
名字 cookie
當(dāng)訪問(wèn)者首次訪問(wèn)頁(yè)面時(shí),他或她也許會(huì)填寫他/她們的名字。名字會(huì)存儲(chǔ)于 cookie 中。當(dāng)訪問(wèn)者再次訪問(wèn)網(wǎng)站時(shí),他們會(huì)收到類似 "Welcome John Doe!" 的歡迎詞。而名字則是從 cookie 中取回的。
密碼 cookie
當(dāng)訪問(wèn)者首次訪問(wèn)頁(yè)面時(shí),他或她也許會(huì)填寫他/她們的密碼。密碼也可被存儲(chǔ)于 cookie 中。當(dāng)他們?cè)俅卧L問(wèn)網(wǎng)站時(shí),密碼就會(huì)從 cookie 中取回。
日期 cookie
當(dāng)訪問(wèn)者首次訪問(wèn)你的網(wǎng)站時(shí),當(dāng)前的日期可存儲(chǔ)于 cookie 中。當(dāng)他們?cè)俅卧L問(wèn)網(wǎng)站時(shí),他們會(huì)收到類似這樣的一條消息:"Your last visit was on Tuesday August 11, 2005!"。日期也是從 cookie 中取回的。 -->
<!-- JavaScript 庫(kù) - jQuery、Prototype、MooTools。
jQuery
jQuery 是目前最受歡迎的 JavaScript 框架。
它使用 CSS 選擇器來(lái)訪問(wèn)和操作網(wǎng)頁(yè)上的 HTML 元素(DOM 對(duì)象)。
jQuery 同時(shí)提供 companion UI(用戶界面)和插件。
許多大公司在網(wǎng)站上使用 jQuery:
Google
Microsoft
IBM
Netflix
Prototype
Prototype 是一種庫(kù),提供用于執(zhí)行常見 web 任務(wù)的簡(jiǎn)單 API。
API 是應(yīng)用程序編程接口(Application Programming Interface)的縮寫。它是包含屬性和方法的庫(kù),用于操作 HTML DOM。
Prototype 通過(guò)提供類和繼承,實(shí)現(xiàn)了對(duì) JavaScript 的增強(qiáng)。
MooTools
MooTools 也是一個(gè)框架,提供了可使常見的 JavaScript 編程更為簡(jiǎn)單的 API。
MooTools 也含有一些輕量級(jí)的效果和動(dòng)畫函數(shù)。
YUI - Yahoo! User Interface Framework,涵蓋大量函數(shù)的大型庫(kù),從簡(jiǎn)單的 JavaScript 功能到完整的 internet widget。
其他框架
Ext JS - 可定制的 widget,用于構(gòu)建富因特網(wǎng)應(yīng)用程序(rich Internet applications)。
Dojo - 用于 DOM 操作、事件、widget 等的工具包。
script.aculo.us - 開源的 JavaScript 框架,針對(duì)可視效果和界面行為。
UIZE - Widget、AJAX、DOM、模板等等。-->
</body>
</html>
JavaScript學(xué)習(xí)筆記
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- update:2017-10-23 更新了文中一些表達(dá)以及添加了JS編譯部分的理解。2018-06-06 這篇...
- 特點(diǎn) 具有面向?qū)ο竽芰Φ摹⒔忉屝缘某绦蛘Z(yǔ)言基于對(duì)象和事件驅(qū)動(dòng),并具有相對(duì)安全的客戶端腳本語(yǔ)言松散性:變量不必具有一...
- JavaScript 庫(kù) - jQuery、Prototype、MooToolsJavaScript 高級(jí)程序設(shè)計(jì)...
- 慕課網(wǎng)JavaScript進(jìn)階篇第8章學(xué)習(xí)筆記,JavaScript計(jì)時(shí)器,history對(duì)象,location對(duì)...
- 我從小有那么多的困惑和煩惱,那么多迷茫和無(wú)助,都是因?yàn)樯畹沫h(huán)境過(guò)于狹小,接觸的信息過(guò)于單一,身邊幾乎沒(méi)有幾個(gè)稱得...