javascript学习笔记:函数1

一、函数定义与调用
1.定义:
function sum(a, b){
    var res = a + b;
    return res;
}
note:函数通常有返回值,如果某个函数没有显式的返回值,其默认的返回值为undefined。
一个函数只能有一个返回值,如果需要同时返回多个值,先将多个值放进一个数组里,以数组元素的形式返回。

2.调用:
var result = sum(1, 2);
console.log(result);//3

3.关于参数:
a.调用时传入的参数值少于定义函数的参数,JS引擎自动将没有传入参数值的参数设置为undefined。
console.log(sum());//NaN
console.log(sum(1));//NaN

b.调用时传入的参数值多于定义函数的参数,多余的参数会被忽略。
console.log(sum(1, 2, 3, 4, 5));//3

可变参数的函数:
每个函数内部都有一个内建的arguments数组,它能返回所接收的所有参数。
console.clear();
function args(){
    return arguments;
}
console.log(args());//[]
console.log(args(1,2,3));//[1, 2, 3]

通过arguments数组,完善sum()函数的功能,使之能够对任意数量的参数执行求和:
console.clear();
function sum(){
    var i;
    var res = 0;
    var num = arguments.length;
    for(i=0; i<num; i++){
        res += arguments[i];
    }
    return res;
}
console.log(sum());//0
console.log(sum(1));//1
console.log(sum(1, 2));//3
console.log(sum(1, 2, 3, 4, 5));//15



二、预定义函数

1.parseInt()
试图将其收到的任何输入值(通常是字符串)转换成整数类型输出。如果转换失败就返回NaN。
console.clear();
console.log(parseInt("123"));//123
console.log(parseInt("abc123"));//NaN
console.log(parseInt("1abc23"));//1
console.log(parseInt("123abc"));//123

除此之外,该函数还个可选的第二个参数:radix,它负责设定函数所期望的数字类型——十进制、十六进制、二进制等。
console.clear();
console.log(parseInt("FF", 10));//NaN
console.log(parseInt("FF", 16));//255
console.log(parseInt("0377", 10));//377
console.log(parseInt("0377", 8));//255

如果在调用parseInt()时没有指定第2个参数,函数就会将其默认为10进制,但是有2种情况例外:
a.如果首参数字符串是0x开头,第2个参数就会被默认为16进制。
b.如果首参数字符串是0开头,第2个参数就会被默认为8进制( 未定)。
console.clear();
console.log(parseInt("377"));//377
console.log(parseInt("0x377"));//887
console.log(parseInt("0377"));//377

当然,明确指定radix值总是最安全的。如果省略了它,尽管99%的代码依然能够正常运行(因为最常用的是10进制数),但偶尔还是会在调试时发现一些小问题。例如,当从日历中读取日期时,对于08这样的数据,如果不设定radix参数可能就会导致意想不到的结果。

2.parseFloat()
该函数的功能与parseInt()基本相同,只不过它只支持将输入值转换为10进制。因此,该函数只有一个参数。该函数还可以接受指数形式的数据。
console.clear();
console.log(parseFloat("123"));//123
console.log(parseFloat("1.23"));//1.23
console.log(parseFloat("1.23abc.00"));//1.23
console.log(parseFloat("a.bc1.23"));//NaN
console.log(parseFloat("a123.345"));//NaN
console.log(parseFloat("12a3.343"));//12
console.log(parseFloat("123e-2"));//1.23
console.log(parseFloat("123e2"));//12300
console.log(parseFloat("1e10"));//10000000000

3.isNaN()
该函数可以确定某个输入值是否是一个可以参与算术运算的数字。该函数也可以用来检测parseInt()和parseFloat()的调用成功与否。
console.clear();
console.log(isNaN(NaN));//true
console.log(isNaN(123));//false
console.log(isNaN(1.23));//false
console.log(isNaN(parseInt('abc123')));//true
console.log(isNaN('1.23'));//false
console.log(isNaN('a1.23'));//true

4.isFinite()
该函数可以用来检查输入是否是一个既非infinity也非NaN的数字。
console.clear();
console.log(isFinite(Infinity));//false
console.log(isFinite(-Infinity));//false
console.log(isFinite(12));//true
console.log(isFinite(1e308));//true
console.log(isFinite(1e309));//false

5.encodeURI()

6.decodeURI()

7.encodeURIComponent()

8.decodeURIComponent()

9.eval()

你可能感兴趣的:(JavaScript)