㈠ js有哪幾種典型函數
第一類:常規函數
包括以下9個函數:
(1)alert函數:顯示一個警告對話框,包括一個OK按鈕。
(2)confirm函數:顯示一個確認對話框,包括OK、Cancel按鈕。
(3)escape函數:將字元轉換成Unicode碼。
(4)eval函數:計算表達式的結果。
(5)isNaN函數:測試是(true)否(false)不是一個數字。
(6)parseFloat函數:將字元串轉換成符點數字形式。
(7)parseInt函數:將符串轉換成整數數字形式(可指定幾進制)。
(8)prompt函數:顯示一個輸入對話框,提示等待用戶輸入。
第二類:數組函數
包括以下4個函數:
(1)join函數:轉換並連接數組中的所有元素為一個字元串。
(2)langth函數:返回數組的長度。
(3)reverse函數:將數組元素順序顛倒。
(4)sort函數:將數組元素重新排序。
第三類:日期函數
包括以下20個函數:
(1)getDate函數:返回日期的「日」部分,值為1~31
(2)getDay函數:返回星期幾,值為0~6,其中0表示星期日,1表示星期一,...,6表示星期六
(3)getHours函數:返回日期的「小時」部分,值為0~23。
(4)getMinutes函數:返回日期的「分鍾」部分,值為0~59。見上例。
(5)getMonth函數:返回日期的「月」部分,值為0~11。其中0表示1月,2表示3月,...,11表示12月。見前面的例子。
(6)getSeconds函數:返回日期的「秒」部分,值為0~59。見前面的例子。
(7)getTime函數:返回系統時間。
(8)getTimezoneOffset函數:返回此地區的時差(當地時間與GMT格林威治標准時間的地區時差),單位為分鍾。
(9)getYear函數:返回日期的「年」部分。返回值以1900年為基數,例如1999年為99。
(10)parse函數:返回從1970年1月1日零時整算起的毫秒數(當地時間)。
(11)setDate函數:設定日期的「日」部分,值為0~31。
(12)setHours函數:設定日期的「小時」部分,值為0~23。
(13)setMinutes函數:設定日期的「分鍾」部分,值為0~59。
(14)setMonth函數:設定日期的「月」部分,值為0~11。其中0表示1月,...,11表示12月。
(15)setSeconds函數:設定日期的「秒」部分,值為0~59。
(16)setTime函數:設定時間。時間數值為1970年1月1日零時整算起的毫秒數。
(17)setYear函數:設定日期的「年」部分。
(18)toGMTString函數:轉換日期成為字元串,為GMT格林威治標准時間。
(19)setLocaleString函數:轉換日期成為字元串,為當地時間。
(20)UTC函數:返回從1970年1月1日零時整算起的毫秒數,以GMT格林威治標准時間計算。
第四類:數學函數
函數有以下18個:
(1)abs函數:即Math.abs(以下同),返回一個數字的絕對值。
(2)acos函數:返回一個數字的反餘弦值,結果為0~π弧度(radians)。
(3)asin函數:返回一個數字的反正弦值,結果為-π/2~π/2弧度。
(4)atan函數:返回一個數字的反正切值,結果為-π/2~π/2弧度。
(5)atan2函數:返回一個坐標的極坐標角度值。
(6)ceil函數:返回一個數字的最小整數值(大於或等於)。
(7)cos函數:返回一個數字的餘弦值,結果為-1~1。
(8)exp函數:返回e(自然對數)的乘方值。
(9)floor函數:返回一個數字的最大整數值(小於或等於)。
(10)log函數:自然對數函數,返回一個數字的自然對數(e)值。
(11)max函數:返回兩個數的最大值。
(12)min函數:返回兩個數的最小值。
(13)pow函數:返回一個數字的乘方值。
(14)random函數:返回一個0~1的隨機數值。
(15)round函數:返回一個數字的四捨五入值,類型是整數。
(16)sin函數:返回一個數字的正弦值,結果為-1~1。
(17)sqrt函數:返回一個數字的平方根值。
(18)tan函數:返回一個數字的正切值。
第五類:字元串函數
包括以下20個函數:
(1)anchor函數:產生一個鏈接點(anchor)以作超級鏈接用。anchor函數設定<A NAME...>的鏈接點的名稱,另一個函數link設定<A HREF=...>的URL地址。
(2)big函數:將字體加到一號,與<BIG>...</BIG>標簽結果相同。
(3)blink函數:使字元串閃爍,與<BLINK>...</BLINK>標簽結果相同。
(4)bold函數:使字體加粗,與<B>...</B>標簽結果相同。
(5)charAt函數:返回字元串中指定的某個字元。
(6)fixed函數:將字體設定為固定寬度字體,與<TT>...</TT>標簽結果相同。
(7)fontcolor函數:設定字體顏色,與<FONT COLOR=color>標簽結果相同。
(8)fontsize函數:設定字體大小,與<FONT SIZE=n>標簽結果相同。
(9)indexOf函數:返回字元串中第一個查找到的下標index,從左邊開始查找。
(10)italics函數:使字體成為斜體字,與<I>...</I>標簽結果相同。
(11)lastIndexOf函數:返回字元串中第一個查找到的下標index,從右邊開始查找。
(12)length函數:返回字元串的長度。(不用帶括弧)
(13)link函數:產生一個超級鏈接,相當於設定<A HREF=...>的URL地址。
(14)small函數:將字體減小一號,與<SMALL>...</SMALL>標簽結果相同。
(15)strike函數:在文本的中間加一條橫線,與<STRIKE>...</STRIKE>標簽結果相同。
(16)sub函數:顯示字元串為下標字(subscript)。
(17)substring函數:返回字元串中指定的幾個字元。
(18)sup函數:顯示字元串為上標字(superscript)。
(19)toLowerCase函數:將字元串轉換為小寫。
(20)toUpperCase函數:將字元串轉換為大寫。
㈡ javascript怎麼定義函數
1:調用關鍵字function來構造
functiondistance(x1,x2,y1,y2)
{
vardx=x2-x1;
vardy=y2-y1;
returnMath.sqrt(dx*dx+dy*dy);
}
2:使用Function()構造函數(請注意與上面的大小寫)
1
varf=newFunction*"x","y","returnx*y");
這行代碼創建了一個新函數,該函數和你所熟悉的語法定義的函數基本上時等價的:
1
2
3
4
functionf(x,y)
{
returnx*y;
}
Functino()構造函數可以接受任意多個字元串參數。它的最後一個參數時函數的主體,其中可以包含任何JavaScript語句,語句之間用分號分隔。其他的參數都是用來說明函數要定義的形式參數名的字元串。如果你定義的函數沒有參數,那麼可以只需給構造函數傳遞一個字元串(即函數的主體)即可。
注意,傳遞給構造函數Function()的參數中沒有一個用於說明它要創建的函數名。用Function()構造函數創建的未命名函數有時被成為「匿名函數」。
你可能非常想知道Function()構造函數的用途是什麼。為什麼不能只用function語句來定義所有的函數呢?原因是Function()構造函數允許我們動態地建立和編譯一個函數,它不會將我們限制在function語句預編譯的函數體中。這樣做帶來的負面影響效應就是每次調用一個函數時,Function()構造函數都要對它進行編譯。因此,在循環體中或者在經常使用的函數中,我們不應該頻繁地調用這個構造函數。
使用Function()構造函數的另一個原因是它能夠將函數定義為JavaScript表達式的一部分,而不是將其定義一個語句,這種情況下使用它就顯得比較的方面,甚至可以說精緻。
3:函數直接量
函數直接量是一個表達式,它可以定義匿名函數。函數直接量的語法和function語句非常相似,只不過它被用作表達式,而不是用作語句,而且也無需指定函數名。下面的三行代碼分別使用function()語句、Funciont()構造函數和函數直接量定義了三個基本上相同的函數:
1
2
3
functionf(x){returnx*x};
varf=newFunction("x","returnx*x;");
varf=function(x){reurnx*x};
在JavaScript1.1中,可以使用構造函數Function()來定義函數,在JavaScript1.2和其後的版本中,還可以使用函數直接量來構造函數。你應該注意這兩種方法之間的重要差別。
首先,構造函數Function()允許在運行時動態地創建和編譯JavaScript代碼。但是函數直接量卻是函數結構的一個靜態部分,就像function語句一樣。
其次,作為第一個差別的必然結果,每次調用構造函數Function()時都會解析函數體並且創建一個新東漢數對象。如果對構造函數的調用出現在一個循環中,或者出現在一個經常被調用的函數中,這種方法的效率非常低。另一個方面,函數直接量或出現在循環和函數中的嵌套函數不是在每次調用時都被重新編譯,而且每當遇到一個函數直接量時也不創建一個新的函數對象。
Function()構造函數和函數之間量之間的第三點差別是,使用構造函數Function()創建的函數不使用詞法作用域,相反的,它們總是被當作頂級函數來編譯,就像下面代碼所說明的那樣: