js-函数相关

1.函数:定义一次,调用或执行多次;function 函数名([参数1,参数2...]){语句[return 返回值]}
同一页面中,函数名必须是唯一的。
2.函数的调用:
1)简单调用
函数名(传递给函数的参数1,...)

    function test() {
        alert('我喜欢javascript!');
    }
    test();   //放在定义的函数前面也是可以的,区分大小写。

2)在事件响应中调用函数
事件处理过程:触发事件,调用和执行函数,在页面中产生响应。

    function test() {
        alert('我喜欢javascript!');
    }
<input type="button" value="提交" onclick="test()"/>

3)通过链接调用函数
<a>标签中的href属性中使用javascript:函数名()格式来调用函数,点击链接,相关函数被执行。

<a href="javascript:test()">单击链接</a>

3.函数的参数
形参:定义函数时指定的参数;实参:调用函数时实际传递的值。

    function show(bookname,author,name) {
        alert(bookname+author+name);
    }
    show("功夫javascript",'作者:',"FJ");

4.函数的返回值
格式return 表达式;

    function sum(x,y) {
        var z = x+y;
        return z;
    }
    alert(sum(2,3));  //5
    /*
    var result = sum(2,3);
    alert(result);
    */
//通过返回值判断两个数的大小
    function compare(x,y) {
        if(x>y){
            return true;
        }else{
            return false;
        }
    }
    var result1 = compare(10,20);
    if(result1){
        alert('第一个数大于第二个数!');
    }else{
        alert('第一个数小于第二个数!');
    }

5.函数的嵌套定义
在函数内部再定义其他的函数。(使程序的可读性降低)
6.函数的嵌套调用:允许在一个函数的函数体对另一个函数进行调用。

//计算三个参数的平均值
    function setValue(num1,num2,num3) {
        var avg = (num1+num2+num3)/3;
        return avg;
    }
    function getValue(num1,num2,num3) {
        document.write("参数分别为:"+num1+'\n'+num2+'\n'+num3);
        var value = setValue(num1,num2,num3);
        document.write("参数的平均数为:"+value);
    }
    getValue(60,70,90);   //参数分别为:60 70 90参数的平均数为:73.33333333333333 

7.递归函数:函数在自身体内调用自身。
格式:function 函数名(参数1){函数名(参数2);}(应用处理阶乘问题)

//10的阶乘为:3628800
    function f(num) {
        if(num<=1){
            return 1;
        }else{
            return f(num-1)*num;
        }
    }
    alert('10的阶乘为:'+f(10));

8.内置函数
1)数值处理函数:parseInt();parseFloat();isNaN();isFinite();

  • parseInt(string,[n])函数:将首位为数字的字符串转换成数字,如果字符串不是以数字开头,那么将返回NaNstring转换为整型的字符串,后面的n指出字符串中的数据是几进制的数据。
    var str1 = "123abc";
    var str2 = "abc123";
    document.write(parseInt(str1)+"<br>");    //123
    document.write(parseInt(str1,8)+"<br>");  //83
    document.write(parseInt(str2));          //NaN   
  • parseFloat(string):该函数主要将首位为数字的字符串转化成浮点型数字,如果字符串不是以数字开头,那么将返回NaN。
	var str1 = "123.456abc";
    var str2 = 'abc123.456';
    document.write(parseFloat(str1)+"<br>");    //123.456
    document.write(parseFloat(str2));           //NaN

-isNaN(num):检验某个值是否为NaN。

    var num1 = 123;
    var num2 = "123abc";
    document.write(isNaN(num1)+"<br>");   //false
    document.write(isNaN(num2));          //true 
  • isFinite(num)用于检验其参数是否有限。
    document.write(isFinite(123)+"<br>");       //true
    document.write(isFinite("123abc")+"<br>");  //false
    document.write(isFinite(1/0)+"<br>");       //false

2)字符串处理函数:eval();escape();unescape();encodeURI();decodeURI();

  • eval(string)函数:计算字符串表达式的值,并执行其中的JS代码。
	document.write(eval("3+6"));            //9
    document.write("<br>");
    eval("x=5;y=6;document.write(x*y)");    //30
  • escape(string)将一些特殊字符(不包括字母数字字符以及* @ - _ + . /)进行编码,转换成%XX
    document.write(escape("You & Me"));  //You%20%26%20Me 
  • unescape(string)用于对应用·前面函数编码后的字符串进行编码,转换成字符。
    var str = escape("You & Me");
    document.write(unescape(str));  //You & Me 
  • encodeURI(url)将URI字符串进行编码。URI比URL范围更大一些,一般可以看成一样的,只对字符串中的空格汉字进行编码。
    var URI = "https://www.baidu.com/index.php?tn=monline_3_dg123145  你好!";
    document.write(encodeURI(URI));
    //https://www.baidu.com/index.php?tn=monline_3_dg123145%20%20%E4%BD%A0%E5%A5%BD%EF%BC%81 
  • decodeURI(url)前者的逆向操作。
    var URI1 = encodeURI(URI);
    document.write(decodeURI(URI1));
    //https://www.baidu.com/index.php?tn=monline_3_dg123145 你好! 

2.定义函数的基本方法
1)定义匿名函数(定义没有名称的函数):var 变量名 = function(参数1,......){语句;}

    var sum = function (x,y) {
        return x+y;
    }
    alert(sum(10,20));   //30

示例:

    var getOdd,i;
    getOdd = function (num) {
        document.write("1到"+num+"之间所有3的倍数为:");
        for(i = 1;i < num;i++){
            if(i%3 != 0){
                continue;
            }
            document.write(i+"\n");    //1到20之间所有3的倍数为:3 6 9 12 15 18 
        }
    }
    getOdd(20);

2)Function()构造函数:var 变量名 = new Function("参数1",......."函数体");,所有参数和函数体都必须是字符串类型,一定要用双引号或单引号引起来。

    var sum = new Function("x","y","alert(x+y)");
    sum(10,20);     //30

最近早上起太晚,每天都在自责,但是,我知道,自责没有用,我都养成习惯了!早点儿睡才能够早点儿起!我今天一定早点儿睡觉!最近居然迷上了大胃王的视频!肚子早就肥了一圈,减肥等于省钱!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值