函数的简单介绍

函数

函数概述

函数相当于一个代码空间,他里面可以存储一些代码片段,一般我们会将一些功能性代码抽取放入到函数内,这样的操作就是封装。核心就是利用函数来减少冗余代码的出现,形成对应的复用

函数的分类

  • 系统函数 (系统本身就写好的 你只需要调用 console.log() 属于全局窗口的 window)

  • 内置函数 (对象内部提供的 Math.pow )

  • 自定义函数 (由自己定义的函数)

函数的定义

使用function关键来定义

定义的方式有三种
匿名函数 (没有名字的函数 无法被复用的)
//自执行函数 自己执行 准备工作的执行(框架的封装)
//  前面() 表示他是一个整体 后面() 表示执行这个函数
(function () {
    console.log('我是自执行函数')
})()
具名函数 (有名字的函数 必须调用才会执行 具备复用性)
/*
function 函数名(形参...){
函数体
}
*/
//具名函数
function sayHello(){
    console.log('hello')
}
//调用 函数名()
sayHello()
//结合匿名函数来声明具名函数
var sayHi = function(){
    console.log('hi')
}
sayHi()
使用对象构建的形式 (new关键来构建)
// new Function('函数体')
var fn = new Function('console.log("你好")')
fn()

函数的执行过程

预编译过程

var关键修饰的变量会预编译

console.log(a) //undefined
var a = 10
console.log(a) //10

function 也会发生预编译

fn() //也能执行 function会被预编译
function fn() {
    console.log('测试')
}
console.log(fn1)//undefined
fn1()//var关键词预编译不会读取赋值操作 报错 is not a function
//第二种具名函数的定义
var fn1 = function(){
    console.log('test')
}
执行过程

函数声明会发生预编译 调用的时候会发生什么操作

他会去寻找对应的堆空间的函数引用

然后再将他推入执行栈中 进行执行

在执行栈中会打开对应的函数内的代码进行执行

当他执行完毕以后 那么gc就会将他回收(可达性)。

回收过程

gc是一个垃圾回收机制 (用于回收当前没有被使用的变量)

函数的参数

  • 没有实际的参数叫形参 用于定义 (随便写)

  • 有实际值得参数叫实参 用于传递

示例

求和 传入俩个数值求他们之间的和

//a b为形参
function sum(a,b){
	console.log(a+b)
}
sum(1,2) //1 2为实参

注意事项: js允许少传参 必须这个参数没有被使用到(没有函数的调用) 否则会出现错误

练习

传递一个数 判断是否回文

function isPalindrome(n) {
    //判断当前是否为数值
    if(isNaN(Number(n))){
        //错误提示
        // console.error('当前输入的内容出错')
        //抛出一个新的错误 底下的内容不会被执行
        throw new Error('当前输入的内容出错')
    }
    //个数为0不可能是回文数
    if(n%10==0 && n!=0){
        console.log('这个数不是回文数')
    }else if (n < 10 && n >= 0) { //小于10 大于0的数为回文
        console.log('当前数为回文数')
    } else {
        //需要将当前这个数进行反转
        var x = n
        var y = 0
        //反转操作
        while (x > y) {
            y = y * 10 + x % 10
            x = parseInt(x / 10)        
        }
        //偶数情况下
        if (x == y) {
            console.log('当前数为回文数')
        } else if (x == parseInt(y / 10)) {
            console.log('当前数为回文数')
        } else {
            console.log('这个数不是回文数')
        }
    }
}
isPalindrome(prompt('输入数值进行判断'))

传入一个数判断是否是水仙花数

function isNarcissusNumber(number){
	 //判断当前是否为数值
    if(isNaN(Number(n))){
        //错误提示
        // console.error('当前输入的内容出错')
        //抛出一个新的错误 底下的内容不会被执行
        throw new Error('当前输入的内容出错')
    }
    //验证
    if(Math.pow(number%10,3)+Math.pow(parseInt(number/10%10),3)+Math.pow(parseInt(number/100),3)==number){
    	console.log('当前数为水仙花数')
    }else{
    	console.log('当前数不是水仙花数')
    }
}
isNarcissusNumber(prompt('输入数值进行判断'))

函数考虑其复用性的同时,必须要考虑多种情况的产生

return关键词

return 是用于在函数中返回对应的结果的,默认情况下函数return undefined。当return完那么对应的函数执行就结束了

function fn(){
	
}
console.log(fn())//undefined
示例

输入俩个数返回他们的和

function sum(number1, number2) {
    return number1 + number2
    console.log('我是后面的代码')//不会被执行
}
var i = sum(1, 2)
console.log(i) //3
练习

输入俩个数返回他们的最小公倍数和最大公约数的和

function fn(x, y) {
    //得到他的最小公倍数 和 最大公约数
    //得到最大最小值
    var max = Math.max(x,y)
    var min = Math.min(x,y)
    while (true) {
        if (max % x == 0 && max % y == 0) {
            //得到最小公倍数
            break
        }
        max++
    }
    while (true) {
        if (x % min == 0 && y % min == 0) {
            //得到最小公倍数
            break
        }
        min--
    }
    return max + min
}
总结
  • break 跳出循环和switch 不会结束function

  • continue 只能用于循环中 跳过本次循环 进入下次

  • return 结束整个函数 返回对应的数据 (放在最后)

  • throw new Error 结束整个程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
14.DEGREES 用途:将弧度转换为度。 语法:DEGREES(angle) 参数:angle是采用弧度单位的一个角度。 实例:公式“=DEGREES(1)返回57.29577951”, =DEGREES(PI()/3)返回60。 15.EVEN 用途:返回沿绝对值增大方向,将一个数值取整为最接近的偶数。 语法:EVEN(number) 参数:number是要取整的一个数值。实例:如果A1=-2.6 则公式“=EVEN(A1)”返回-4;=EVEN(-4.56+6.87)返回4。 16.EXP 用途:返回e的n次幂。语法:EXP(number) 参数:Number为底数e的指数。 注意:EXP函数是计算自然对数的LN 函数的反函数。 实例:如果A1=3,则公式“=EXP(A1)”返回20.085537 即e3。 17.FACT 用途:返回一个数的阶乘,即1*2*3*...*该数。 语法:FACT(number) 注意:Number是计算其阶乘的非负数。如果输入的Number 不是整数,则截去小数部分取整数。 实例:如果A1=3,则公式“=FACT(A1)”返回6;=FACT(5.5) 返回1*2*3*4*5.5 即120。 18.FACTDOUBLE 用途:返回参数Number 的半阶乘。 语法:FACTDOUBLE(number) Number 要计算其半阶乘的数值,如果参数Number 为非整数,则截尾取整。 注意:如果该函数不存在,应当运行“安装”程序加载“分析工具库”。 实例:公式“=FACTDOUBLE(4)”返回8。 19.FLOOR 用途:将参数Number 沿绝对值减小的方向去尾舍入,使其等于最接近的significance 的倍数。 语法:FLOOR(number,significance) 参数:Number为要舍入的某一数值,Significance为该数值的倍数。 实例:如果A1=22.5, 则公式“=FLOOR(A1,1)”返回22; =FLOOR(-2.5,-2)返回-2。 20.GCD 用途:返回两个或多个整数的最大公约数。语法:GCD(number1,number2,...) 参数:Number1,number2, ...为1 到29 个数值,如果数值为非整数,则截尾取整。说明:如果该函数不存在,必须运行“安装”程序加载“分析工具库”。 实例:如果A1=16、A2=28、A3=46,则公式“=GCD(A1:A3)”返回2。 21.INT 用途:将任意实数向下取整为最接近的整数。 语法:INT(number) 参数:Number为需要处理的任意一个实数。 实例:如果A1=16.24、A2=-28.389, 则公式“=INT(A1)”返回16,=INT(A2)返回-29。 ...

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值