6.函数

作者: ChangLau | 来源:发表于2019-04-25 19:23 被阅读0次

函数

使用 function 关键字来声明, 后跟一组参数以及函数体

function name(params) {
    statement
}

通过 return 语句指定函数返回值

function add(num1, num2){
    return num1 + num2
}
var result = add(1, 2)  // 3

return 语句后的代码不会执行

function add(num1, num2){
    return num1 + num2
    alert("not execute") // 不会执行
}
var result = add(1, 2)  // 3

函数默认返回值 undefined

function add(num1, num2){
    alert(num1 + num2)
}
var result = add(1, 2)  // undefined

// 或者return语句不带任何返回值,也返回undefined

function add(num1, num2){
    return
    alert("not execute") // 不会执行
}
var result = add(1, 2)  // undefined

理解参数

函数参数不是必须的,也可以传入跟定义不一致的参数。实际上函数内部通过 arguments 对象来访问参数数组(只是与数组类似,不是 Array 的实例),通过使用方括号语法 arguments[i]获取传递给函数的每一个参数。

// 命名的参数只提供便利,不是必须的
function sayHi(){
    alert('Hello' + arguments[0] + arguments[1])
}
sayHi('liuchang','i love you')

通过 length 属性来判断传入参数的个数。

function howManyArgs(){
    console.log(arguments.length)
}
howManyArgs(1,2) // 2
howManyArgs(1) // 1
howManyArgs() // 0

利用 length 属性可以模拟函数重载

function doAdd(){
    if(arguments.length == 0){
        return
    }else if(arguments.length == 1){
        return arguments[0]
    }else if(arguments.length == 2){
        return arguments[0] + arguments[1]
    }else{
        return "请输入最多两个参数"
    }
}
doAdd() // undefined
doAdd(1) // 1
doAdd(1, 4) // 5
doAdd(1, 4, 6) // "请输入最多两个参数"

arguments 的值永远和对应的命名参数保持同步(他们的内存空间是独立的,但是值会同步)

function doAdd(num1, num2){
    arguments[1] = 10
    return arguments[0] + num2
}
doAdd(1, 3) // 11

// 这里我发现了一个例外,如果没有传递第二个参数,arguments[1]的值和num2是不同步的。
function doAdd(num1, num2){
    arguments[1] = 10
    console.log(num1, arguments[0], num2, arguments[1])
}
doAdd(1) // 1 1 undefined 10

没有传递值的命名参数将自动赋予 undefined 值

function doAdd(num1, num2){
    console.log(num1, num2)
}
doAdd(1) // 1 undefined

定义两个名称相同的函数,则改名字属于后定义的函数

function addNumber(num){
    return num + 100
}
function addNumber(num){
    return num + 200
}
addNumber(100) // 300

相关文章

  • 6. 函数

    函数 SQL 可用函数处理数据,但不同的DBMN都有特定的函数,各个函数的名称和用法可能不同。 文本处理函数 日期...

  • 6. 函数

    基本介绍 函数是一组用来执行多条语句的代码块,它能够接受参数和返回数据,其用途需明确,其逻辑需具有整体性,否则便没...

  • 6.函数

    6.1基础 实参是形参的初始值。 局部对象 名字有作用域,对象有生命周期。 名字的作用域是程序文本的部分,名字在其...

  • 6.函数

    funcf_name(v_name:v_Class, ...) -> return_Class { //fun_c...

  • 6.函数

    函数 使用 function 关键字来声明, 后跟一组参数以及函数体 通过 return 语句指定函数返回值 re...

  • kotlin进阶语法

    构造方法 data class == 遍历 6.循环 函数嵌套 函数参数默认值 扩展 内联函数 函数类型参数 by...

  • JavaScript回调函数基础

    javascript回调函数 5.函数的返回值 6.回调函数的基础

  • javaScript函数

    1.函数的封装 2.return子句 3.函数的参数 4.函数练习 5.匿名函数 6.函数练习

  • 6. Python| 函数_调用函数

    python内置了很多有用的函数,可以直接调用. 调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs...

  • 6.函数 Functions

    定义和调用函数 没有参数的函数 Functions With Multiple Parameters 多参函数 无...

网友评论

    本文标题:6.函数

    本文链接:https://www.haomeiwen.com/subject/nxktnqtx.html