1. 程式人生 > >第一章:JavaScript基礎---(一)基礎語法

第一章:JavaScript基礎---(一)基礎語法

很渴望快速學習完成專案,不希望花費太多的時間來學習一門語言,雖然本文沒有詳細介紹特性但是以下

程式碼執行就足以理解JavaScript語法,觀察以下程式碼,複製到文字中用瀏覽器開啟。

JavaScript是大小寫敏感的, 這裡我們快速的瞭解它的語法

作為入門練習可以每個程式碼自行敲打一遍。

1:helloworld,我們寫的第一個例項

<script language="JavaScript">
    document.write("Hello World!!!");
</script>

2:對話方塊形式顯示helloworld 三種形式
<a href="JavaScript:alert('Hello World!!!')">請單擊</a>

<a href="#" onclick="alert('Hello World!!!')">請單擊</a>

<a href="JavaScript://" onclick="alert('Hello World!!!')">請單擊</a> 
3:with關鍵字用法 --簡化程式碼用
開域語句,表示在with語句中的任何表示式的所屬物件或者是類都由with後緊跟的變數所代表
功能:為一段程式建立預設物件。簡化程式碼<br> 
<br>格式:
<br>with (<物件>){
<br>  <語句組>
<br>}

<Script>
with (document) {
    write ("<br><Li>限時搶購物品:");
    write ("<Li>ViewSonic 17\" 顯示器。");
    write ("<Li>EPSON 印表機。");
}
document.write ("<br>---------------");
document.write ("<Li>限時搶購物品:");
document.write ("<Li>ViewSonic 17\" 顯示器。");
document.write ("<Li>EPSON 印表機。");
</Script>
4:變數宣告,總是var 開頭

<br>JavaScript資料的表示: 

<br>整數:由正負號、數字構成,八進位制、十進位制、十六進位制; 
<br>浮點數:由正負號、數字和小數點構成,常規記數法、科學記數法; 
<br>邏輯值:true、false 
<br>字串值:單引號、雙引號 
<br>空值:null 
<br>未定義值:根本不存在的物件、已定義但沒有賦值的量; 
<br>
<br>
<script language="JavaScript">
var stdId; 
var total=3721; 
var notNull=true; 
var name="李小龍",sex="先生"; 

var i=j=0;  

var hobby=["聽音樂","看電影"];
hobby[2]="123";
var test;
stdId = 2004007;
document.write("變數stdId="+stdId+"<br>");
document.write("變數i="+i+"<br>");
document.write("變數j="+j+"<br>");
document.write("變數name="+name+"<br>");
document.write("變數sex="+sex+"<br>");
document.write("變數notNull="+notNull+"<br>");

document.write("變數hobby="+hobby+"<br>");
document.write("變數hobby[0]="+hobby[0]+"<br>");
document.write("變數hobby[1]="+hobby[1]+"<br>");
document.write("變數hobby[2]="+hobby[2]+"<br>");
document.write("變數hobby[3]="+hobby[3]+"<br>");
document.write("未賦值的變數test="+test+"<br>");
document.write("不存在的數值(0.0/0.0)="+(0.0/0.0)+"<br>");

var t1=1.7976931348623157E+10308
document.write("正數超出範圍的值"+t1)

document.write("<br />")

var t2=-1.7976931348623157E+10308
document.write("負數超出範圍的值"+t2)
</script> 

5:全域性變數宣告

<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>
6:運算子號和加減乘除
<script language="JavaScript">
var x = 11; 
var y = 5;

with (document) {
    write("x = 11, y = 5");
    write("<LI>x + y 是 ", x + y);
    write("<LI>x - y 是 ", x - y);
    write("<LI>x * y 是 ", x * y);
    write("<LI>x / y 是 ", x / y);
    write("<LI>x % y 是 ", x % y);
    write("<LI>++ x 是 ", ++ x);
    write("<LI>-- y 是 ", -- y);
    write("<LI>x 是 ", x);
    write("<LI>y 是 ", y);
    write("<LI>x-- 是 ", x--);
    write("<LI>y-- 是 ", y--);
}
</script>

7:++運算

<Script>
var x = y = 3; 


with (document) {
    write("y++=",(y++),"<br>");
    write("++y=",(++y),"<br>");
    write("x = 3, y = 5 <br>");
    write("若x = y++ 運算之後:");
    x = y++;//y→x,y+1→y
    write("x 是 ", x, "; y 是 ", y, "<br>");
    write("再作x = ++y 運算:");
    x = ++y;//y+1→x,y+1→y
    write("x 是 ", x, "; y 是 ", y);
}
</Script>
8:邏輯運算子且
&&  ||  ! 

例1:
<Script>
var t = true;
var f = false;

with(document) {
write("<OL><LI>true && true 的結果是 ", t && t);
write("<LI>true && false 的結果是 ", t && f);
write("<LI>false && true 的結果是 ", f && t);
write("<LI>false && false 的結果是 ", f && f);
write("<LI>true && (1==1) 的結果是 ", t && (1==1));
write("<LI>false && 'A' 的結果是 ", f && 'A');
write("<LI>'A' && false 的結果是 ", 'A' && f);
write("<LI>true && 'A' 的結果是 ", t && 'A');
write("<LI>'A' && true 的結果是 ", 'A' && t);
write("<LI>'A' && 'B' 的結果是 ", 'A' && 'B');
write("<LI>1 && 1 的結果是 ", 1 && 1);
write("<LI>1 && 0 的結果是 ", 1 && 0);
write("<LI>true && 0 的結果是 ", true && 0);
write("<LI>true && 1 的結果是 ", true && 1);
write("<LI>true && '0' 的結果是 ", true && '0');
    //&&:有一個不是邏輯值,只要第一個運算元的值為flase,則返回第一個運算元的值flase,否則,返回第二個運算元的值
}
</Script>
9:邏輯運算子 或
<Script>
var t = true;
var f = false;

with(document) {
write("<OL><LI>true || true 的結果是 ", t || t);
write("<LI>true || false 的結果是 ", t || f);
write("<LI>false || true 的結果是 ", f || t);
write("<LI>false || false 的結果是 ", f || f);
write("<LI>true || (1==1) 的結果是 ", t || (1==1));
write("<LI>false || 'A' 的結果是 ", f || 'A');
write("<LI>'A' || false 的結果是 ", 'A' || f);
write("<LI>true || 'A' 的結果是 ", t || 'A');
write("<LI>'A' || true 的結果是 ", 'A' || t);
write("<LI>'A' || 'B' 的結果是 ", 'A' || 'B');
write("<LI>1 || 1 的結果是 ", 1 || 1);
write("<LI>1 || 0 的結果是 ", 1 || 0);
write("<LI>true || 0 的結果是 ", true || 0);
write("<LI>true || 1 的結果是 ", true || 1);
write("<LI>true || '0' 的結果是 ", true || '0');
    //||:有一個不是邏輯值,只要第一個運算元為的值true、字元或非零的數字,則返回第一個運算元的值,否則,返回第二個運算元的值
}
</Script>
10:邏輯運算子 取反
<Script>
with(document) {
    write("<LI>!true 的結果是 ", !true);
    write("<LI>!false 的結果是 ", !false);
    write("<LI>!'A' 的結果是 ", !'A');
    write("<LI>!0 的結果是 ", !0);
    write("<LI>!1 的結果是 ", !1);
    write("<LI>!2 的結果是 ", !2);
    write("<LI>!'0' 的結果是 ", !'0');
    write("<LI>!'1' 的結果是 ", !'1');
    write("<LI>!-1 的結果是 ", !-1);
}
</Script>
11:邏輯運算優先順序


12:this關鍵字  this通常指向的是我們正在執行的函式本身,或者是指向該函式所屬的物件

<Script>
function validate(obj) {
    alert("你輸入的值是:"+ obj.value);
} </Script>
請輸入任意字元:<BR>
<INPUT TYPE="text" onKeyup="validate(this)">
<BR>
當按鈕鬆開時執行指令碼 長按不會觸發
13:條件運算子(三目運算子)
<Script>
//forms 集合可返回對文件中所有 Form 物件的引用。
function showSex() {
onOroff = document.forms[0].sex[0].checked
status = (onOroff)? "帥哥" : "美女"
alert("Hello! " + status)
}
</Script> 
請輸入你的性別:
<FORM >
<INPUT TYPE=radio NAME=sex onClick=showSex()>男生
<INPUT TYPE=radio NAME=sex onClick=showSex()>女生
</FORM>

14:註釋語句

<Script>
//單行註釋 
/*
  多行註釋
          */

//例:
/***************************************
*             源 碼 之 家               *
*        http://www.mycodes.net         *
*      下載:http://www.mycodes.net      *
*     論壇http://www.mycodes.net/bbs    *
*****************************************/
</Script>
15:if.......else......
<Script> 
var now = new Date();
var hour = now.getHours();

document.write(now);
document.write("<br>");
if (6 < hour && hour < 18)
    document.write ("現在"+hour+"點是白天");
else
    document.write ("現在"+hour+"點是晚上");
</Script>
16:if.......else.....if
<Script> 
var now = new Date();
var day = now.getDay();
var dayName;

if (day == 0) dayName = "星期日";
else if (day == 1) dayName = "星期一";
else if (day == 2) dayName = "星期二"; 
else if (day == 3) dayName = "星期三";
else if (day == 4) dayName = "星期四"; 
else if (day == 5) dayName = "星期五";
else dayName = "星期六"; 

document.write ("今天是快樂的", dayName);
</Script>
17:while語句
<Script> 
var i = 5;

while ( i > 0 ) {
    document.write("i = " ,i ,"<BR>");
    i--;
} 
</Script>
18:do.....while語句
<Script> 
var i = 5;

do {
    document.write("i = " ,i ,"<BR>");
    i--;
} while ( i > 0 ) 
</Script>

19:for迴圈語句
<Script> 
for ( var i = 5; i > 0; i-- ) {
    document.write("i = " ,i ,"<BR>");
} 
</Script>
20:for in(一)用法  遍歷一個數組的所有子集
<html>
<body>

<script type="text/javascript">
var x
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"

for (x in mycars)
{
document.write(mycars[x] + "<br />")
}
</script>

</body>
</html>
21:for in(二)用法 遍歷一個物件的所有屬性
<br>格式:
<br>
<br>for ( 變數 in 物件 ){
<br>    <語句組>
<br>} 
<br>
<br>例:
<br>
<Script>
function member(name, sex) {//建構函式member
    this.name = name;
    this.sex = sex;
}

function showProperty(obj, objString) {
var str = "";
for (var i in obj)
    str += objString + "." + i + " = " + obj[i] + "<BR>";
 return str;
}

papa = new member("楊巨集文", "男生");//建立物件例項papa
document.write(showProperty(papa, "papa")) 
</Script>