按此前往javascript完整教學目錄

 

 

字串:

字串即是文字,是一連串字元的組合。

字串的處理模式和矩陣有些類似。無論是數字、英文字母、符號、中文字、空白字元,都被當作一個字元,且可用序數呼叫。如:

var stt='@123456'

document.write(stt[3]);   //顯示:3

可用length成員來獲得其元素個數,如:

var stt='@123456'

document.write(stt.length);    //顯示:7

1. 常用成員函式如下:

(1). indexOf(“子字串” [,N]):可搜尋子字串的位置並且回傳,以序數表示。N代表從序數N開始搜尋起(搜尋範圍包含序數N。若沒有設定N,則從頭搜尋。若搜尋不到指定的子字串,則回傳-1。如:

var stt='@123456'

document.write(stt.indexOf("34"));  //顯示:3

document.write(stt.indexOf("49"));  //顯示: -1

註:若是字串中,要搜尋的子字串有兩個以上,則只會回傳最先找到的子字串。如:

var stt='@123123';

document.write(stt.indexOf("3"));  //顯示3

 

(2). lastIndexOf(“子字串” [,N]):效果和indexOf(“子字串” [,N]) 一模一樣,只不過indexOf(“子字串” [,N]) 是從字串開端開始搜尋到尾端,而 lastIndexOf(“子字串” [,N]) 是從字串尾端開始搜尋到開端。如:

var stt='@123456'

document.write(stt.lastIndexOf("34"));  //顯示:3

document.write(stt.lastIndexOf("49"));  //顯示: -1

註:若是字串中,要搜尋的子字串有兩個以上,則只會回傳最先找到的子字串。如:

var stt='@123123';

document.write(stt.lastIndexOf("3"));  //顯示:6

 

(3). replace(“子字串1”, “子字串2”):將字串中的子字串1給代換成子字串2。如:

var stt='I like weiwei!'

document.write(stt.replace("weiwei","nunu"));   //顯示:I like nunu!

註:若是字串中,要取代的子字串有兩個以上,則只會取代最先找到的子字串(也就是序數最前面的子字串)如:

var stt='weiwei weiwei!'

document.write(stt.replace("weiwei","nunu"));  //顯示:nunu weiwei!

若要使全部的指定子字串都被取代,可以使用正規表示法(參看2-(7))如:

var stt='weiwei weiwei!'

document.write(stt.replace(/weiwei/g,"nunu"));  //顯示:nunu nunu!

 

(4). split(‘分隔字元’):將字串依照分隔字元分割開來,分割後的子字串成為元素,並且形成陣列。此函式便回傳這個陣列。如:

var stt='weiwei&nunu&rain';

var a=stt.split('&');

document.write(a[1]);    //顯示:nunu

 

(5). substr(N1 [,N2]):將字串從序數N1開始後的N2個字元回傳。若不設定N2,則將字串從序數N1開始後的所有字元回傳。不會影響原先字串。如:

var stt='@123456';

s=stt.substr(2,4);

document.write(s);    //顯示:2345

 

(6). substring(N1 [,N2]):將字串從序數N1開始到N2-1的字元回傳。若不設定N2,則將字串從序數N1開始後的所有字元回傳。不會影響原先字串。如:

var stt='@123456';

s=stt.substring(2,4);

document.write(s);    //顯示:23

 

(7). 轉換英文字母的大小寫:可用toLowerCase()將字串轉換成小寫,以及用toUpperCase()將字串轉換成大寫。如:

var stt='aaDD';

document.write(stt.toLowerCase());    //顯示:aadd

document.write(stt.toUpperCase());    //顯示:AADD

 

 

上一篇:javascript 數學運算 Math

下一篇:javascript 正規表達式

文章標籤

埃伯 發表在 痞客邦 留言(0) 人氣()

按此前往javascript完整教學目錄

 

 

三、數學物件MathMath本身就是javascript的數學物件。其內建函式之使用方法為:Math.內建函式名稱(參數);

常用的幾個成員函式有:

abs(x):回傳x的絕對值。

cos(x):回傳xcos值。x的單位為徑度。

sin(x):回傳xsin值。x的單位為徑度。

tan(x):回傳xtan值。x的單位為徑度。

sqrt(x):回傳x的平方根。

exp(x):回傳expx次方。

log(x):回傳以exp為底數x為真數的對數。

pow(x,y):回傳xy次方。

round(x):回傳x經四捨五入後的值。

floor (x):回傳x經無條件捨去法後的值。

ceil(x):回傳x經無條件進位法的值。

min(x1, x2, x3, x4,…):回傳輸入參數中的最小值。

max(x1, x2, x3, x4,…):回傳輸入參數中的最大值。

random():回傳一個浮點數亂數x,且 0<x<1

以下是回傳整數亂數的範例:

var R=Math.ceil(100*Math.random());

則回傳之整數亂數x,其大小範圍為:0<x<=100

又:

var R=Math.floor(100*Math.random());

則回傳之整數亂數x,其大小範圍為:0<=x<100

 

 

 

上一篇:javascript 陣列

下一篇:javascript 字串

文章標籤

埃伯 發表在 痞客邦 留言(0) 人氣()

按此前往javascript完整教學目錄

 

 

二、陣列:

1. 陣列的宣告與輸出:

(1) 宣告:

若不宣告元素初始值,可用:

var 陣列名稱 = new Array(); 或者是 var 陣列名稱=[];

之後再用 陣列名稱 = [1 , 2 , 3…] 來設定元素值。

若要宣告元素初始值,可用:

var 陣列名稱 = [1, 2, 3…];

註:javascript陣列元素的值,可以是不同的資料形態。如:

var tt = [“ss” , 5];

※ 若想要自訂序數(這是很重要的應用!!),可用

var 陣列名稱 = new Array();

陣列名稱[“序數1名稱”]=1;

陣列名稱[“序數2名稱”]=2;

如:

var position =new Array();

position["tt"]=101;

document.write(position["tt"]);   //顯示:101

 

(2) 輸出:

欲讀取陣列元素之值,可用序數(index)。如:

var tt= ["ss" , 50 ,"aa"];

document.write(tt[1]);    //顯示:50

亦可以直接讀取陣列名稱,這樣一來元素間會以逗號相間隔。如:

var tt= ["ss" , 50 ,"aa"];

document.write(tt);  //顯示:image

 

2. 常用的陣列屬性與陣列成員函式:

(1) 屬性:length,陣列的元素個數。如:

var tt= ["ss" , 50 ,"aa"];

document.write(tt.length);  //顯示:3

(2) 常用成員函式說明如下:

(2-1) concat(陣列1, 陣列2 …):使陣列與陣列1、陣列2等陣列進行合併,回傳合併之後的形式。如:

var tt1= ["111","222","333"];

var tt2= ["333","444"];

var tt3= ["555"];

document.write(tt1.concat(tt2,tt3));  //顯示: image

(2-2) join(‘指定字元’):將陣列的形式轉換成字串(元素間以指定字元相隔)並且回傳。若沒有寫指定字元,預設以逗號相間隔。如:

var tt1= ["111","222","333"];

document.write(tt1.join('&&'));  //顯示: image

 

(2-3) push(元素1,元素2,元素3…):將元素1元素2元素3加入陣列的末尾。如:

var tt= ["111","222","333"];

tt.push("444","555","666");

document.write(tt);    //顯示: image

(2-4) pop():將陣列的最後一個元素去除。如:

var tt= ["111","222","333"];

tt.pop();

document.write(tt);    //顯示: image

(2-5) reverse():將陣列所有元素的順序顛倒過來。如:

var tt= ["111","222","333"];

tt.reverse();

document.write(tt);    //顯示: image

(2-6) shift():將陣列的第一個元素給去除。回傳第一個元素的值。如:

var tt= ["111","222","333"];

document.write(tt.shift());  //顯示 111

document.write(tt);    //顯示222,333

(2-7) slice( N1 [,N2]):將陣列從序數=N1的元素開始,到序數=N2-1的元素為止,給存成另外的新陣列,回傳這個新陣列。不會影響到原陣列本身。若沒有指定N2,則將陣列從序數=N1的元素開始,到陣列之最後,都存成新陣列。如:

var tt= ["111","222","333","444","555"];

var kk=tt.slice(2,4);

document.write(kk);   //顯示: image

(2-8) sort():將陣列元素給重新排列。這排列的依據為:比較個元素的第一個字元,其中數字先於英文字母,數字由小為先、大為後,英文字母a為先、z為後。若有一些元素第一個字元相同,則比較第二個以此類推。如:

var tt= ["apple","kite","333","444","30cicle"];

tt.sort();

document.write(tt);    //顯示: image

(2-9) unshift(元素1,元素2,元素3…):將元素1元素2元素3加入陣列的開頭。如:

var tt= ["111","222","333"];

tt.unshift("aaa","bbb","ccc");

document.write(tt);    //顯示: image

(2-10) splice(N1, t, 元素1,元素2,元素3…):將元素1元素2元素3加入陣列中序數為N1的元素之後。t為整數,若t大於零,表示刪除原陣列在「序數為N1之後的所有元素」,若t不大於零,表示不刪除。如:

var tt= ["111","222","333"];

tt.splice(2,1,"aaa","bbb","ccc");

document.write(tt);    //顯示: image

 

 

3. 二維陣列:二維陣列是由許多一維陣列所組成。若不宣告元素初始值,可用:

var 陣列名稱 = new Array(); 或者是 var 陣列名稱=[];

之後再用 陣列名稱 = [[一維陣列1的值1, 一維陣列1的值2…], [一維陣列2的值1, 一維陣列2的值2…]…] 來設定元素值。

若要宣告元素初始值,可用:

var陣列名稱 = [[一維陣列1的值1, 一維陣列1的值2…], [一維陣列2的值1, 一維陣列2的值2…]…];

例如:

var tt2=[["weiwei" ,18,2500],

         ["nunu",  20,2800 ],

                    ["rain" ,19]];

document.write(tt2);    //顯示:weiwei,18,2500,nunu,20,2800,rain,19

document.write(tt2[1][0]);    //顯示:nunu

//註一:陣列名稱[a][b]表示:序數為a的一惟陣列中,序數為b的值。

//註二:同理,多維陣列也可以宣告。如N維陣列可以由N-1維陣列組成、其中N-1維陣列可以由N-2維陣列組成

 

 

 

上一篇:javascript 日期物件 Date

下一篇:javascript 數學運算 Math

文章標籤

埃伯 發表在 痞客邦 留言(0) 人氣()

按此前往javascript完整教學目錄

 

 

一、 日期物件Date:所謂日期物件,就是記載著日期資訊的一個物件。物件中包含年、月、日、時、分、秒、星期這些日期或時間的資訊,稱為日期物件的資料成員。

常用於網頁中,即時取得瀏覽器端目前的時間,以便做後續的互動。

 

1. 宣告日期物件:

(1) 可使用 var 物件名稱 = new Date(); 來宣告日期物件,此日期物件的時間即等於此行程式碼所執行當下的時間。時區以當地為主。

(2) 若要為日期物件設定初始值,可使用:

var 物件名稱 = new Date(“ // ::”); 來一次指定完整的時間資訊,或是:

var 物件名稱 = new Date(“ //”); 來指定日期,時間部分沒有指定,預設為000秒。例如:

var tt=new Date("2003/2/4 15:02:41"); 或是  var tt=new Date("2003/2/4");

註:年號是以西元年為主。

 

2. 利用成員函式讀取日期物件的資料成員:成員函式與說明如下(成員函式之回傳資料形態皆為整數):

getYear()getFullYear():回傳日期物件的年份資訊(以當地時間為主)。其值為四位數西元年。

getMonth():回傳日期物件的月份資訊(以當地時間為主)。其值範圍為0~11(一月為0,二月為1…以此類推)

getDay():回傳日期物件的星期號(以當地時間為主)。其值範圍為0~6(星期日為0,星期一為1…)

getDate():回傳日期物件的日期資訊(以當地時間為主)。其值範圍為0~31

getHours():回傳日期物件的小時(以當地時間為主)。其值範圍為0~23

getMinutes():回傳日期物件的分鐘(以當地時間為主)。其值範圍為0~59

getSeconds():回傳日期物件的秒數(以當地時間為主)。其值範圍為0~59

getMilliseconds():回傳日期物件的毫秒數(以當地時間為主)。其值範圍為0~999

間註:UTC時間,是以原子鐘為基礎的世界標準時間,較為精準。不過和當地時間會有時差問題。要取得日期物件的UTC時間資訊,上述成員函式之get一律改成getUTC即可。如:

getUTCHours():回傳日期物件的小時(UTC時間)。其值範圍為0~23

其他內建函式:

getTime():回傳日期物件之時間距離1970/1/1 00:00:00(格林威治時間的初始時間)毫秒數

getTimezoneOffset():回傳本地時間與格林威治標準時間(Greenwich Mean Time, GMT)的時差。單位為分鐘。

註:台灣地區與格林威治標準時間的時差為8小時。

 

3. 利用成員函式設定日期物件的資料成員:成員函式與說明如下(成員函式之輸入參數的資料形態皆為整數):

setYear(輸入參數)setFullYear(輸入參數):設定日期物件的年份資訊(以當地時間為主)。輸入參數為四位數西元年。

setMonth(輸入參數):設定日期物件的月份資訊(以當地時間為主)。輸入參數範圍為0~11(一月為0,二月為1…以此類推)

setDate(輸入參數):設定日期物件的日期資訊(以當地時間為主)。輸入參數範圍為0~31

setHours(輸入參數):設定日期物件的小時(以當地時間為主)。輸入參數範圍為0~23

setMinutes(輸入參數):設定日期物件的分鐘(以當地時間為主)。輸入參數範圍為0~59

setSeconds(輸入參數):設定日期物件的秒數(以當地時間為主)。輸入參數範圍為0~59

setMilliseconds(輸入參數):設定日期物件的毫秒數(以當地時間為主)。輸入參數範圍為0~999

間註:UTC時間,是以原子鐘為基礎的世界標準時間,較為精準。不過和當地時間會有時差問題。要以UTC時間設定日期物件的時間資訊,上述成員函式之set一律改成setUTC即可。如:

setUTCHours(輸入參數):設定日期物件的小時(UTC時間)。輸入參數範圍為0~23

其他內建函式:

setTime(輸入參數):設定距離1970/1/1 00:00:00(格林威治時間的初始時間)往後算起,輸入參數毫秒數之後的時間。

重要:javascript中,並不能直接對時間進行四則運算。若要進行四則運算,其模式如:

var tt=new Date();

tt.setTime(tt.getTime()+100*1000);  //利用setTime(輸入參數)getTime(),要注意:setTime()中的數字其單位是毫秒,乘以1000,只是為了方便用秒來計算而已。

 

4. 輸出時間:

利用2. 的成員函式輸出時間物件的資訊是很麻煩的。可將時間物件轉換為相對應的字串,再以字串方式顯示。可用的成員函式說明如下:

toString():將時間物件轉換為相對應的字串。如:

var tt=new Date("2003/12/14 15:02:42");

document.write(tt.toString());  //顯示: image

toLocaleString():時間物件轉換為相對應的字串,以當地的語言形式表示。如:

var tt=new Date("2003/12/14 15:02:42");

document.write(tt.toLocaleString());  //顯示: image

toGMTString():時間物件轉換為相對應的字串,以CMT標準時間形式表示。故有時差問題。如:

var tt=new Date("2003/12/14 15:02:42");

document.write(tt.toUTCString()); //顯示: image

  • toUTCString():和toGMTString()一樣。

 

 

上一篇:javascript 物件

下一篇:javascript 陣列

文章標籤

埃伯 發表在 痞客邦 留言(0) 人氣()

按此前往javascript完整教學目錄

 

 

遞迴函式:

函式中可以對函式本身進行自我呼叫,可以重複執行函式多次,直到滿足某些條件為止,此稱種函式為遞迴函式。以下範例,為求出100以下的質數:

var p="1";

var limit=100;

function get_p (n)

{

          if(n>limit){return;}

          var is_p=true;

          for(i=2;i<n;i++)

          {

                   var q=n/i;

                   if(Math.round(q)==q)  //ni的倍數(n可被i整除)

                   {is_p=false}

          }

          if(is_p){p+=(","+n);}

          get_p(n+1);

}

get_p(2);

document.write(p); 

//顯示:1,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97

 

 

上一篇:javascript 成員函式鍊

下一篇:javascript 物件

文章標籤

埃伯 發表在 痞客邦 留言(0) 人氣()