JS之函数

来源:互联网 发布:python 签到脚本 编辑:程序博客网 时间:2024/06/06 19:45

函数的作用是,可以写一次代码,然后反复地重用这个代码。

function add2(a,b){sum = a + b; alert(sum);} //  只需写一次就可以add2(3,2);add2(7,8);....  //只需调用函数就可以

常见函数:

String

Number

Date

Array

数据类型转换总结:

这里写图片描述

定义函数

function 函数名( )
{
函数体;
}
特点:
不需要申明返回值类型
可以有也可以没有返回值
返回值可以为任何类型

带参数的方法:function f(a, b){}f(2,"abc");//undefinedfunction f(a, b){    return a+b;}s = f(2,"abc");//"2abc"

作用域

f();//位置①可以function f(){  alert("f");}f();//位置②可以t();//位置①不可以var t = function(){  alert("t"); }t();//位置②可以二者的区别在于作用域的不同!

函数可传递性

var f1 = function(){}var f2 = f1;f2();

函数中的arguments对象

1、在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。arguments非常类似Array,但实际上又不是一个Array实例。

<script type="text/javascript">    Array.prototype.testArg="test"; // object.prototype.name=value,prototype属性使得Array有能力给对象添加了一个自定义属性testArg,如果arguments是Array的实例那么它就能调用这个自定义属性    function funcArg(){        alert(funcArg.arguments.testArg); //输出:"undefined"说明arguments并不是Array对象的一个实例        alert(funcArg.arguments[0]);   //输出10,注意funcArg()并没有形式参数接收下面funcArg(10)传递过来的实参,但是funcArg.arguments[0]还是输出了传递过来的实参的值,                                       //所以说明arguments是由实参决定并影响的。    }    alert(new Array().testArg); //输出test    funcArg(10); //输出:"undefined",10</script>

2、arguments对象的长度是由实参个数而不是形参个数决定的。形参是函数内部重新开辟内存空间存储的变量,但是其与arguments对象内存空间并不重叠。对于arguments和值都存在的情况下,两者值是同步的,但是针对其中一个无值的情况下,对于此无值的情形值不会得以同步。

 function f(a, b, c){     alert(arguments.length);   // result: "2"     a = 100;     alert(arguments[0]);       // result: "100"     arguments[0] = "qqyumidi";     alert(a);                  // result: "qqyumidi"     alert(c);                  // result: "undefined"     c = 2012;     alert(arguments[2]);       // result: "undefined" }  f(1, 2);

3、
第一:Javascript函数的声明是没有返回值类型这一说法的;
第二:JavaScript中形参的个数严格意义上来讲只是为了方便在函数中的变量操作,实际上实参已经存储在arguments对象中了;
第三:由JavaScript中函数的声明和调用特性,可以看出JavaScript中函数是不能重载的。

4、arguments对象中有一个非常有用的属性:callee。arguments.callee返回此arguments对象所在的当前函数引用。在使用函数递归调用时推荐使用arguments.callee代替函数名本身。

function count(a){     if(a==1){         return 1;     }      return a + arguments.callee(--a);} var mm = count(10); alert(mm);//55

String

常用方法:

substring(start, end);
charAt(number); //返回的是字符串,不是字符
indexOf(number);
charCodeAt(number);//将指定位置字符串转换为Unicode编码;

String中的转义字符

这里写图片描述

字符串到数字的转换

parseInt(“3 string micc”);//返回数字3
parseFloat(“3.14 tostri”);//返回3.14
parseInt(“12.2”);//返回12
parseInt(“077”,8);//8进制转换成10进制,返回63=7*8+7
parseInt(“077”);//返回77
parseInt(“0XFF”);//返回255,十六进制
parseInt(“11”,2);//2进制转换成10进制,返回 3= 1*2+1
parseInt(“bbb”);//返回NaN

其他进制转换成十进制
parseInt(numstring, [radix])
numstring 必选项。要转换为数字的字符串。
radix 可选项。在 2 和 36 之间的表示 numstring 所保存数字的进制的值。如果没有提供,则前缀为 ‘0x’ 的字符串被当作十六进制,前缀为 ‘0’ 的字符串被当作八进制。所有其它字符串都被当作是十进制的。

parseInt(077);//63parseInt(12, 8);//10parseInt("a", 16);//10parseInt(0XFF);//255

十进制转换成其他进制

objectname.toString([radix])
objectname 必选项。要得到字符串表示的对象。
radix 可选项。指定将数字值转换为字符串时的进制。

例如:
var m = 10;
parseInt(m.toString(2)) ; // 先是” 1010”,然后转换成1010
parseInt(m.toString(8)); // 先是 “12 ” ,然后转换成12
parseInt(m.toString(10)); // 先是 “10 ” ,然后转换成10
parseInt(m.toString(16) );//先是 “a” ,然后是NaN

Number

数字转换为字符串表示
var x = 10;
x.toString(2);
x.toString(8);
x.toString(n); //n表示将数字以什么进制表示

Date

var now = new Date();now.getFullYear()+"年";(now.getMonth()+1)+"月";now.getDate()+"日";now.getHours()+"时";now.getMinutes()+"分";now.getSeconds()+"秒";now.getTime();//返回距 1970 年 1 月 1 日之间的毫秒数
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>定义函数</title><script type="text/javascript">function sub2()                     //定义函数 {   sub=5-2;   alert("5和2的差:"+sub); }</script></head><body><form>    <input type="button" value="点击我" onclick="sub2()" /></form></body></html>

有参数的函数

function 函数名(参数1,参数2)
{
函数代码
}

<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>函数传参</title><script type="text/JavaScript">   function  add(x,y,z)                   {      sum = x + y +z;      document.write(x+"、"+y+"、"+z+"和:"+sum+"<br/>");    }    add(5,8,3);    add(7,1,4);</script></head><body></body></html>

返回值的函数

function add2(x,y){   sum = x + y;   return sum; //返回函数值,return后面的值叫做返回值。}
原创粉丝点击