目錄
- 函式
- 定義及呼叫函式
- 變數的作用域
- 全域函式
函式
類似于面向物件語言中的方法;在JS中也具有實作某些功能的一些代碼;被封裝到函式中;可以反復呼叫.
函式是定義一次但卻可以呼叫任意多次的一段完成某種特定功能的JS 代碼,
函式中的陳述句是一個獨立的部分,它不會在外部腳本執行時被執行,而只是作為函式的定義而存在,只有呼叫它時才執行,
函式呼叫是指通過函式名來使用這段代碼,
函式在定義以后可以被重復呼叫,以此通常將常用的功能寫成一個函式.
定義及呼叫函式
函式被關鍵字function宣告;有函式名,函式引數串列,函式體,回傳值;(不需要定義,引數以及回傳值的型別)
基本語法:
function functionName([arguments]){
javascript statements
[return expression]
}
function: 宣告函式的關鍵字;
functionName:函式名;
arguments:傳遞給函式的引數串列,各個引數之間用逗號隔開,可以為空;
statements: 實作函式功能的函式體;
return expression:函式將回傳expression的值,同樣是可選的的陳述句,
在呼叫函式時;可以直接呼叫;也可以在別的函式中呼叫;還可以通過物件呼叫.
案例:
<script type="text/javascript">
//函式案例name0;形式引數為 a;
function name0( a){
console.log(a);
console.log("自定義的函式");
//回傳值不需要宣告型別;
return a+56;
}
//呼叫函式;這個20就是實際傳入的引數;
var res=name0(20);
//獲得回傳值;
console.log(res);
</script>

可以使用事件驅動函式;
案例:在按鈕事件中呼叫函式;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
//函式案例name0;形式引數為 a;
function name0( a){
console.log(a+10);
}
</script>
</head>
<body>
<!-- 在按鈕事件中呼叫函式 -->
<input type="button" onclick="name0(2)" value="按鈕名" />
</body>
</html>
點擊一次按鈕就會呼叫一下;

變數的作用域
全域變數:在函式外部定義的變數,在宣告后,任何位置都可用,
區域變數:在函式內部定義的變數,作用范圍為函式內部,
類似于面向物件語言的變數作用域
<script type="text/javascript">
//全域變數a;
var a=10;
//函式;
function name1(){
//區域變數b;
var b=6;
console.log(b);
console.log(a);
}
name1();
</script>
全域函式
| 全域函式 | 注釋 |
|---|---|
| parseInt(arg) | 把括號內的內容轉換成整數之后的值,(可以把浮點數格式化為整數);如果引數是是字串,則字串開頭的數字部分被轉換成整數,如果以字母開頭,則回傳“NaN”,(遇到字母就不格式化了) |
| parseFloat(arg) | 把括號內的字串轉換成浮點數之后的值(也就是說會保留浮點數的小數部分),若引數為字串型別;字串開頭的數字部分被轉換成浮點數,如果以字母開頭,則回傳“NaN”, |
| typeof (arg) | 回傳arg值的資料型別,(在實際應用中,可以判斷資料的型別) |
| eval(arg) | 運算(把字串可以作為js腳本執行)某個字串, |
案例:
parseInt(arg) 整數格式化
<script type="text/javascript">
//parseInt(arg)案例;
var a=10;//整數型別的a;
var b=12.54;//浮點數型別的b;
var c="12";//字串型別的整數c;
var d="12.33";//字串型別的浮點數d;
var e="124qwq10";//字串型別,以整數開頭的e;
var f="124.55qwq10";//字串型別,以浮點數開頭的f;
var g="qaq";//字串型別,以字母開頭的g;
console.log(a+b); //整數與浮點數直接相加; 結果: 22.54
console.log(a+parseInt(b)); //整數與 使用parseInt(arg)函式后的浮點數 相加;(浮點數b被格式化為整數;); 結果: 22
console.log(a+c); //整數與字串型別的整數相加; 僅拼接了字串; 結果: 1012
console.log(a+parseInt(c)); //整數與 使用parseInt(arg)函式后的字串型別整數 相加;(字串型別的整數被格式化);結果: 22
console.log(a+c*1); //由于運算子的優先級;通過對字串型別的整數進行隱式轉換; 結果: 22
console.log(a+d); //整數與字串型別的浮點數相加; 僅拼接了字串; 結果: 1012.33
console.log(a+parseInt(d));//整數與 使用parseInt(arg)函式后的字串型別浮點數 相加;(字串型別的浮點數被格式化);結果: 22
console.log(parseInt(e)); //使用parseInt(arg)函式后的字串型別,以整數開頭的e; 結果:124
console.log(parseInt(f)); //使用parseInt(arg)函式后的字串型別,以浮點數開頭的f;結果:124
console.log(parseInt(g)); //使用parseInt(arg)函式后的字串型別;以字母開頭的g; 結果:NaN
</script>
parseFloat(arg) 浮點數格式化
<script type="text/javascript">
//parseFloat(arg)案例;
var a=10;//整數型別的a;
var b=12.54;//浮點數型別的b;
var c="12";//字串型別的整數c;
var d="12.33";//字串型別的浮點數d;
var e="124qwq10";//字串型別,以整數開頭的e;
var f="124.55qwq10";//字串型別,以浮點數開頭的f;
var g="qaq";//字串型別,以字母開頭的g;
//使用parseFloat(arg)浮點數格式化函式;
console.log(parseFloat(a));//整數型別的; 結果:10
console.log(parseFloat(b));//浮點數型別的; 結果:12.54
console.log(parseFloat(c));//字串型別的整數; 結果:12
console.log(parseFloat(d));//字串型別的浮點數; 結果:12.33
console.log(parseFloat(e));//字串型別,以整數開頭的; 結果:124
console.log(parseFloat(f));//字串型別,以浮點數開頭的; 結果:124.55
console.log(parseFloat(g));//字串型別,以字母開頭的; 結果:NaN
</script>
typeof (arg)判斷資料型別
<script type="text/javascript">
//typeof (arg)回傳arg值的資料型別,
var a=10;//整數型別的a;
var b=3.1415926;//浮點數型別的b;
var c="10qwer";//字串型別的c;
var d; //未賦值的變數d;即未知型別的;
var f=new Date();//物件型別的f;
//使用typeof (arg)判斷變數型別;
console.log(typeof(a));//結果: number
console.log(typeof(b));//結果: number
console.log(typeof(c));//結果: string
console.log(typeof(d));//結果: undefined
console.log(typeof(f));//結果: object
</script>
eval(arg) 可以把字串當做js語言執行
<script type="text/javascript">
//eval(arg) 可運算(把字串可以作為js腳本執行)某個字串,
//案例;
var a=10;
var b="a+a+17";
//使用eval(arg);可運算字串;
console.log(eval(b));
eval("alert('對話框');");//雖然這里的對話框是作為字串型別;但是會被執行(彈出對話框);
</script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/287740.html
標籤:其他
上一篇:js資料結構
