05 JS函数归纳总结

JS函数(1)

一、JS函数的基本知识点

1.定义函数

function fx(x){    
    var s=-x;
    return s;
}
//这种定义方法等同于var fx= function(x){..}  因为函数实际上本身就是一个对象,其实就是将函数名fx视为指向该函数的变量。

一个函数执行到return结束,如果没有return,则返回undefined.。

2.作用域

function f(){
    var x =1;
    z=x+y;
    var y=2;
    alert(z); //不报错,返回NaN 因为y是undefined
}
function b(){
    var x=2;
    var a=3;
    z=x+a
}

总结:
I)函数内部定义的变量只在本函数体(本函数及其子函数)有用;不同函数间是相互独立的。
II)函数提升,上述alert(z)不报错,是因为JS首先扫描整个函数体,把申明的变量都提到前面,但是赋值仍然得执行到对应语句才能进行赋值。
因此,需要遵守把所有需要定义的变量都放在函数首部。

补充:
对于for来说,不是在函数内部进行定义的。例如:

function f(){
for (var i =0;i<1=;i++)
{...}
i=i+1;//这里i仍然可以使用i
}

ES6引进的let用于块级申明:

function f(){
for (let i =0;i<1=;i++)
{...}
i=i+1;//这里i不可以使用i
}

const是对于常量的定义

const PI=3.14; //常量用大写字母表示

3.函数调用

fx(1); //返回-1
fx(1,2,3);//返回-1
fx();//返回NaN

在函数调用的时候,传入的参数可以比定义的参数多,但是只取定义的个数;少的话,就是返回undefined。

二、常见方法

1.arguments
在函数内部,arguments用于读取传入参数。

function foo(x) {
    alert(x); // 这里显示传入的第一个 1
    for (var i=0; i<arguments.length; i++) {
        alert(arguments[i]); // 用arguments进行循环遍历 1, 2, 3
    }
}
foo(1, 2, 3);

现在我们设计一计算任意个数字的求和方法,用arguments进行编写:

function sum(x,y){//这里我们定义了两个变量,当需要对多个数字(大于2)求和
var rest=[],sum=0;      //定义一个数组存储多余传入的参数
for(var i=0;i<arguments.length;i++){
    rest.push(argument[i]);  //将多余的参数传入rest数组中
}//接下来就需要算1+2,再和rest中的3求和,很麻烦
...
...
}
sum(1,23)

所以当我们传入任意个参数时,我们需要使用一个新的函数–rest。

2.rest

function sum(...rest){//这里我们没有定义参数
var sum=0;  //这里sum变量和方法是可以相同的
for (var i of rest){
    sum=sum+i;
}
return sum;

}
sum(1,23) //返回6  

3.typeof
这里补充一下typeof方法,用于判断传入参数的类型。

if(typeof a !== 'number'){  //判断是否为数字 
..
}

typeof返回的值是字符串,有number,string,function,bollen,object ,undefined六种。

I)number
用typeof进行判断时候,下面的非常规的数字也是返回number。
Infinity 无穷大特殊值
NaN            特殊的非数字值
Number.MAX_VALUE     可表示的最大数字
Number.MIN_VALUE     可表示的最小数字(与零最接近)
Number.NaN        特殊的非数字值
Number.POSITIVE_INFINITY 表示正无穷大的特殊值
Number.NEGATIVE_INFINITY 表示负无穷大的特殊值
II)string
比如typeof(“123”)返回的值是string。
III)boolean
比如typeof(true)返回的值是boolean。
IV)object
对于对象、数组、null 返回的值是 object 。比如typeof(window),typeof(document),typeof(null)返回的值都是object。
V)function
比如:typeof(eval),typeof(Date)返回的值都是function。
VI)undefined
如果运算数是没有定义的(比如说不存在的变量、函数或者undefined),将返回undefined。比如:typeof(sss)、typeof(undefined)都返回undefined。

待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值