首页 > Web开发 > 详细

JS中的函数

时间:2019-11-24 23:54:57      阅读:133      评论:0      收藏:0      [点我收藏+]

函数function

函数就是一个方法或者一个功能体,函数就是把实现某个功能的代码封装。提高了代码的使用率,减少页面中的冗杂代码,实现高内聚低耦合的要求。

创建函数

  • 方式1、函数声明:存在函数提示,最先执行
    • 形参:执行时,如果没有给形参传递对应的实参,那么形参会赋予一个默认值undefined
    • 返回值:函数执行时,内部创建的变量是无法操作的,要获取内部的信息,必须基于return返回机制将信息返回才可以;没有return默认返回undefined
function[函数名](形参变量1,...){
    //函数体:基于JS需要实现的功能
    return[处理后的结果];
}

fun()//a  存在变量提升
function fun(){
    console.log('a')
}
练习1:为什么在控制台输入console.log(1)除了输出1之外还会输出undefined?
因为console.log本身就是一个函数,console.log(1)代表执行时传入的实参为1,函数的功能是将结果在控制台输出,输出undefined是因为没有return语句

练习2:return语句的使用

function sum(a,b){
    if (a==undefined||b==undefined) {
        return;//函数体中遇到return后面的代码不再执行
    }
    console.log(a+b)
}
sum(1,2)
  • 方式2、函数表达式(匿名函数):把匿名函数本身作为一个值赋给其他东西。没有函数提升,等到代码执行到此处函数才会执行,存在变量提升
console.log(fun)//undefined  存在变量提升
fun()//没有函数提升。attt.html:17 Uncaught ReferenceError: Cannot access 'fun' before initialization
var fun=function fun(){
console.log('a')
}
  • 方式3、new操作符不推荐使用,需要进行两次解析,第一次解析常规代码,第二次解析传入的字符串,效率低
new Function(arg1,arg2,arg3..,body);
var fun=new Function('a','b','console.log(a+b)')
    fun(1,2)

自执行函数:匿名函数自调用

  • 优点:立即开启一个新的命名空间,避免污染全局空间
(function(){
    var a=1
    function test(){
        console.log(++a)
    }
    window.fun=function(){//向外暴露一个函数
        return {
            test:test//返回一个对象,将自调用函数中的局部变量提升为全局变量
        }
    }

})()

fun().test()//2 fun是全局中的一个函数,返回值是一个对象,对象中有test方法

arguments

函数底层运行机制

JS中的函数

原文:https://www.cnblogs.com/qqinhappyhappy/p/11924759.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!