javescript的函数理解

    xiaoxiao2022-07-13  146

    "函数"的概念就是用来封装一块特定功能的代码,其他地方需要就可以调用,反复使用 函数的关键字“function”,有三种声明方法,第一种 function fn(){ }fn(),函数不调用,就不会执行 第二种 var fn=function(){ },把函数赋给一个变量 第三种 var fn=new Function(){ },new出来的构造函数,小括号里面参数,最后一个是函数的执行体 return返回值,默认是undefind 返回值可以定义为一个变量出来进行运算 函数传参:“对位传参”,“对象传参”,“参数的默认值” 对位传参:你传进去的参数跟你想要的效果位置一定要写对 “对象传参”:位置可以不用调,直接对象点键的方式 “默认传参”:在es5里面可以用三目运算符判断是否传参,无参就只有写一个默认的值,如果在有参的情况下写了默认值,那么传进来的参数会覆盖默认值 //修改函数的默认值1种 function fn1(name = “妖精”, sex = “不男不女”, age = “1万岁”) { console.log(name, sex, age); } fn1() //修改函数的默认值2种 c传进去的参数会把默认的覆盖掉 function fn1(name = “妖精”, sex = “不男不女”, age = “1万岁”) { console.log(name, sex, age); } fn1({ name: “白骨精”, sex: “女妖”, age: “3万5千岁” })

    //修改函数的默认值3种 es5 function fn2(name, sex, age) { name = (name == undefined ? "水蛇腰" : name) sex = (sex == undefined ? "不男不女" : sex) age = (age == undefined ? "不死怪" : age) console.log(name, sex, age); } fn2()

    **函数的argunments?*跟数组的用法相同,但是不是数组,也不可以用数组原型上的方法,argunments可以通过Array.prototype.slice.call(argunments)方法转换成数组,也可以用Array.from(argunments)修改成数组, //用arguments转数组求和Array.prototype.slice.call(arguments)

    function sum(a,b,c,d,e){ var sum=0; var a=Array.prototype.slice.call(arguments); console.log(a); for(let i=0;i<a.length;i++){ sum+=a[i]; } console.log(sum); } sum(12,34,56,7,2) //用Array.form也是转数组 function sum1(a,b,c,d,e){ var sum=0; var a=Array.from(arguments); console.log(a); for(let i=0;i<a.length;i++){ sum+=a[i]; } console.log(sum); } sum1(12,34,56,7,2)

    函数的作用域:函数体里面的只能在函数内部用,外部访问不到,函数会首先提升 作用域分:全局作用域,函数作用域(只能在函数内部使用),块级作用域(let)let找大括号,let定义的变量不能重复定义

    最新回复(0)