JS之函数

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

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");//undefined

function 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);//63
parseInt(12, 8);//10
parseInt("a", 16);//10
parseInt(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后面的值叫做返回值。
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值