JS函数:函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块
四要素:返回类型、函数名、参数列表、函数体
函数的作用:减少代码的冗余
对于强类型语言函数:
1.返回型函数
<script type="text/javascript"> public int Suan(int a,int b){ return a+b; // 在强类型语言中,出现return这个函数就结束,相当于for循环中的break } </script>
2.没有返回值的
<script type="text/javascript"> public void Suan(int a,int b){ //void代表为空 } Suan(1,2); </script>
注意:1.参数列表写形参(形式参数)
2.调用函数的时候给的参数为实参(实际参数)
3.变量的命名规范:一般字母打头,尽量不出现特殊符号,一般为小写
4.函数名的规范:一般字母打头,尽量不出现特殊符号,首字母小写的驼峰法命名方式,比如:tuoFengFa
下面看JS弱类型语言:
1.简单的函数
<script type="text/javascript"> function ceShi(){ alert("这是测试的函数"); } //调用函数 ceShi(); </script>
2.有参数的函数
<script type="text/javascript"> function ceShi(a,b){ alert(a+b); } ceShi(3,6); </script>
3.有默认值的(JS不支持,但其他语言都支持,以后遇到要知道)
/* <script type="text/javascript"> function ceShi(a,b=6){ alert(a+b); } ceShi(2); </script>*/
4.有返回值的函数
<script type="text/javascript"> function ceShi(a,b){ return a+b; } var c = ceShi(3,6); alert(c); </script>
*******有特定作用的代码,我们可以把这些代码封装成一个函数,例如冒泡排序*******
<script type="text/javascript"> //例子:冒泡排序 //作用:给我一个数组,我把它排好序返回 function paiXu(arr){ var zj = 0;//中间变量 //第一次for用来控制比较的轮数,i代表轮次 for(var i=1;i<arr.length;i++){ //控制每轮比较几次的 for(var j=0;j<arr.length-i;j++){ if(arr[j]<arr[j+1]){ //实现交换 zj = arr[j]; arr[j]=arr[j+1]; arr[j+1]=zj; } } } //排号的数组返回 return arr; } var a = new Array(3,69,8,5,1,0); a = paiXu(a); alert(a[5]); </script>
<script type="text/javascript"> //例子:冒泡排序 //作用:给我一个数组,我把它排好序返回 function paiXu(arr){ var zj = 0;//中间变量 //第一次for用来控制比较的轮数,i代表轮次 for(var i=1;i<arr.length;i++){ //控制每轮比较几次的 for(var j=0;j<arr.length-i;j++){ if(arr[j]<arr[j+1]){ //实现交换 zj = arr[j]; arr[j]=arr[j+1]; arr[j+1]=zj; } } } //排号的数组返回 return arr; } var a = new Array(3,69,8,5,1,0); a = paiXu(a); alert(a[0]); </script>
还有一种形式:能把重复的代码用左边的“+,-”收缩、伸长
已经成型的函数:
1.Math.random()
<script type="text/javascript"> //生成随机数 alert(Math.random()); //返回0~1之间的随机数 alert(Math.random()*10); //返回0~10之间的随机数 alert(paresInt(Math.random()*10)); //返回0~10之间的随机整数 </script>
2.日期时间函数(需要用变量调用)
<script type="text/javascript"> var b = new Date(); //获取当前时间 b.getTime() //获取时间戳 b.getFullYear() //获取年份y b.getMonth()+1; //获取月份m b.getDate() //获取天d b.getHours() //获取小时h b.getMinutes() //获取分钟i b.getSeconds() //获取秒数s b.getDay() //获取星期几 b.getMilliseconds() //获取毫秒ms </script>
3.数学函数(用Math来调用):
abs(x) 返回数的绝对值。
ceil(x) 对数进行上舍入。 ****
floor(x) 对数进行下舍入。 ****
round(x) 把数四舍五入为最接近的整数。
max(x,y) 返回 x 和 y 中的最高值。
min(x,y) 返回 x 和 y 中的最低值。
pow(x,y) 返回 x 的 y 次幂。
sqrt(x) 返回数的平方根。
random() 返回 0 ~ 1 之间的随机数。 ****
<script type="text/javascript"> alert(Math.ceil(1.2)); </script>
<script type="text/javascript"> alert(Math.floor(1.2)); </script>
4.字符串函数(用变量来调用):
indexOf
返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 。
<script type="text/javascript"> var str = "hello"; var s = "o"; alert(str.indexOf(s)); </script>
5.substring
返回字符串的一个子串,传入参数是起始位置和结束位置。
<script type="text/javascript"> var str = "hello nihao"; alert(str.substring(0,5)); </script>
<script type="text/javascript"> var str = "hello nihao"; alert(str.substring(1,5)); </script>
6. substr ********
返回字符串的一个子串,传入参数是起始位置和长度
<script type="text/javascript"> var str = "hello nihao"; alert(str.substr(0,5)); </script>
<script type="text/javascript"> var str = "hello nihao"; alert(str.substr(1,4)); </script>
7.replace *******(也叫查找替换)
替换字符串,第一个参数代表被替换的字符串,第二个参数代表替换的字符串
<script type="text/javascript"> var str = "hello world"; str = str.replace("hello","*****"); alert(str); </script>
8.split ******(拆分字符串)
通过将字符串划分成子串,将一个字符串做成一个字符串数组。
<script type="text/javascript"> var str = "hello world"; var arr = str.split("r"); alert(arr[0]); alert(arr[1]); </script>
9.length 属性 *******
返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。
10.其他函数
charAt
返回指定位置的字符。
var get_char = a.charAt(0);
//get_char = "h"
lastIndexOf
返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1 。
var index1 = lastIndexOf('l');
//index1 = 3
match
检查一个字符串匹配一个正则表达式内容,如果么有匹配返回 null。
var re = new RegExp(/^w+$/);
var is_alpha1 = a.match(re);
//is_alpha1 = "hello"
var is_alpha2 = b.match(re);
//is_alpha2 = null
search
执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。
var index1 = a.search(re);
//index1 = 0
var index2 = b.search(re);
//index2 = -1
toLowerCase
将整个字符串转成小写字母。
var lower_string = a.toLowerCase();
//lower_string = "hello"
toUpperCase
将整个字符串转成大写字母。
var upper_string = a.toUpperCase();
//upper_string = "HELLO"