0
点赞
收藏
分享

微信扫一扫

三.javascript函数学习记录

笑望叔叔 2022-04-04 阅读 86
javascript

(注:用法和c语言相同的部分这里不作赘述,敬请谅解)

目录

1.定义函数

2.调用函数

3.函数的参数

4.函数的递归调用

5.函数的属性与方法

6.系统函数


1.定义函数


    (1)function语句
        不作赘述
    (2)Fuction()
        语法:

  var 函数名=new Function("参数1","参数2","参数3",...,"函数体");


        例如
        

var mysum=new Function("x","y","return x+y;");
        document.write(mysum(1,2));


        上述函数输出3
    (3)在表达式中直接定义函数
        语法:
       

 var 函数名=function(参数1,参数2,...){函数体};


        例如
       

 var mysum=function(x,y) {document.write(x+y)};
        mysum("wo shi ","sha bi");


        上述函数输出 wo shi sha bi

2.调用函数


    与c语言函数调用相同,不作赘述

3.函数的参数


    (1)判断传递函数参数的个数
        对象arguments可以获取从js中传递过来的参数,并放在arguments[]数组中,故可以通过argument对象来判断传递过来的参数个数
        例如:
    

    function mysum(x,y)
        {
            if(arguments.length!=2)
            {
                return("ni shi ge ji ba"+"<br>");
            }
            else
            return(x+y);
        }
        document.write(mysum(1,2,3));
        document.write(mysum(1,2));


        上述函数输出ni shi ge ji ba
                              3    

(2)获得实际传递参数的值
        例如:

function myfun(x,y)
		{
			if(arguments.length!=2)
			{
				var str="传递参数有误,传递了"+arguments.length+"个参数<br>";
				str+="传递的参数分别为:<br>";
				for(i=0;i<arguments.length;i++)
				{
					str+="第"+(i+1)+"个参数为:"+arguments[i]+"<br>";
				}		
				return str;
			}
			else
			{
				var z=x*y;
				return z;
			}
		}
		document.write(myfun(1,2,3));
		document.write(myfun(1,2));

上述代码段输出    传递参数有误,传递了3个参数
                    传递的参数分别为:
                    第1个参数为:1
                    第2个参数为:2
                    第3个参数为:3
                    2

4.函数的递归调用

        (1)使用函数名的递归调用
                不作赘述
        (2)使用callee属性的递归调用
                该属性的作用是引用正在执行的函数                

                例如:
        

function myfun(x)
		{
			if(x%2==0)
			{
				document.write(x+"<br>");
			}
			if(x>1)
			{
				arguments.callee(x-1)
			}
		}
		document.write(myfun(5));


    上述代码段输出 4
                               2

5.函数的属性与方法


    (1)length属性:函数定义参数的个数(注意与arguments.length的区别),可在函数体外使用
        例如:
       

 function myfun(x,y)
        {
            if(myfun.length!=arguments.length)
            {
                return "传参与定参不一致!<br> ni shi sha bi";
            }
            else
            {
                return x+y+"<br>";
            }
        }
        document.write(myfun("wo shi ","sha bi"));
        document.write(myfun("wo shi ","sha bi","hhh"));


        上述函数输出 wo shi sha bi
                               传参与定参不一致!
                               ni shi sha bi

    (2)prototype属性:引用原型对象
        原型对象是在使用new运算符构造函数时起作用,通常用于定义新的对象类型。由于prototype属性引用的是一个对象,所以可以为该对象添加属性
        例如:
      

  function pen(color,price)
        {
            this.color=color;
            this.price=price;
        }
        var pen1=new pen("红色",20);
        pen.prototype.name="沙笔";
        document.write(pen1.color+"<br>");
        document.write(pen1.price+"<br>");
        document.write(pen1.name);


        上述代码段输出     红色
                                      20
                                      沙笔

    (3)caller属性:判断函数调用情况
        如果是在js顶层代码中调用,caller属性返回值为null,否则返回调用该函数的当前函数的Function对象的引用
        例如:
      

 function myfun()
        {
            if(myfun.caller==null)
            {
                document.write("顶层调用<br>");
            }
            else
            {
                document.write(myfun.caller);
            }
        }
        myfun();
        function myfun1()
        {
            myfun();
        }
        myfun1();


        上述代码段输出    顶层调用
                                     function myfun1() { myfun(); }

    (4)自定义属性
        类比其他属性,这里不作赘述

    (5)call()方法
        调用某个函数
        例如:
       

 function myfun()
        {
            document.write (arguments[0]+arguments[1]);
        }
        var myobject=new Object();
        myfun.call(myobject,1,2);


        上述代码段输出 3
    
    (6)apply()方法
        与call()方法相同,这里不作赘述

6.系统函数


    (1)编码函数escape()
        将字符串中的非文字、数字的字符转换成相应的ASCII码值
        例如:
        

var str="abc~!@#$%^&*()_+|\=-`";
        document.write(escape(str));


        上述代码段输出    abc%7E%21@%23%24%25%5E%26*%28%29_+%7C%3D-%60
    
    (2)解码函数unescape()
        与escape()函数相反
        例如:
      

  var str="abc~!@#$%^&*()_+|\=-`";
        str=escape(str);
        str=unescape(str);
        document.write(str);


        上述代码段输出:
        abc~!@#$%^&*()_+|=-`

    (3)求职函数eval()
        将字符串指定为对象
        例如:
       

 var pen1=1;
        var pen2=2;
        var pen3=3;
        for(i=1;i<4;i++)
        {
            var penx=eval("pen"+i);    //注意不是加法哦大天才
            document.write(penx+" ");
        }


        上述代码段输出:1 2 3

    (5)数值判断函数isNaN()
            判断变量是否为数字型,如是,则返回false,不是,则返回true
            例如:
          

  function myfun(x)
            {
                if(!isNaN(x))
                document.write("是数字呀<br>");    
                else
                document.write("哒咩!<br>");
            }
            myfun(4);
            myfun("a");


            上述代码段输出    是数字呀
                                         哒咩!

    (6)整数转换函数parseInt()
            将2,,8,16进制的数转为十进制的数
            语法:
            

parseInt(数据,底数)


            例如:
                  

 document.write(parseInt("10101",2)+" ");
                    document.write(parseInt("77",8)+" ");
                    document.write(parseInt("2A3B",16)+" ");
                    document.write(parseInt("077")+" ");
                    document.write(parseInt("0x2A3B"));


            上述代码段输出:21 63 10811 77 10811
    
    (7)浮点数转换函数parseFloat()
            将字符串数据转换成浮点数据
            与parseInt()函数类似,这里不作赘述
--------------------------------------------------------------------------------------------

完结撒花!!!

举报

相关推荐

0 条评论