JS(函数)

    函数: function执行特定任务的代码块       

    函数的作用: 可以实现代码复用,提高开发效率

    函数的声明语法:

 

function  sayHi (){

     document.write('hi~')
}

函数名命名规范:

  • 和变量命名基本一致
  •  尽量小驼峰式命名法
  •  前缀应该为动词
  •  命名建议:常用动词约定

函数的使用:

  函数调用:函数名()        

 注意点:1.声明(定义)的函数必须调用才会真正地被执行,使用()调用函数

            2.函数可以多次被调用,每一次函数调用函数体里面的代码会重新执行一次

            3.函数 的功能代码都要写在函数体当中

函数的复用代码和循环重复代码区别:

      循环代码写完即执行,不能很方便控制执行位置

      随时调用,随时执行,可重复调用


 函数的传参:                                                                                                                     

  •  形参:声明函数时写在函数名右边小括号里的叫形参(形式上的参数) 
  • 实参: 调用函数时写在函数名右边小括号里的叫实参(实际上的参数)
  • 形参可以理解为是在这个函数内声明的变量(比如 num1 = 10)实参可以理解为是给这个变量赋值
  •  尽量保持形参和实参个数一致
  • 函数参数中间使用逗号隔开

   函数传参的好处是:极大的提高了函数的灵活性

  // 参数可以让 函数变得更加灵活
        // 1.形式参数 形参  在定义函数时 函数后面的小括号里面的变量名 变量名前面不要加声明变量的关键字
        //  2..实际参数  实参 在调用函数 在函数名后面的小括号里面的具体的内容
        // 在调用函数时 会将 函数的实际参数 赋值给 形式参数  
        // 形参
        function getSum(num1, num2) {
            console.log(num1 + num2)
        }
        // getSum(实参)
        getSum(10, 50)    // 第一次调用函数将 10赋值给num1 将 20 赋值为num2
        getSum(30, 40)    // 第一次调用函数将 30赋值给num1 将 40 赋值为num2


 参数默认值:

           形参:可以看做变量,但是如果一个变量不给值,默认是undefined

           但是如果做用户不输入实参,就出现undefined+undefined=NaN的结果

 // 如果调用函数时,用户没有传递参数,可以使用es6的新语法 给函数的形参赋值为0
        // 这个默认值只会在没有实参的情况下 才会把默认值传给实参
        function getSum(num1 = 0,num2 = 0) {
            document.write(num1 + num2)
        }
        getSum()    //0
        getSum(10,20)   //num1=10  num2=20

这个默认值只会在缺少实参参数传递时 才会被执行,所以有参数会优先执行传递过来的实参, 否则默认为 undefined.


函数的返回值:

         当函数需要返回数据出去时,用return关键字

//为什么要返回:因为不同的场景可以使用这个值
return  数据

注意点:

  • 在函数体中使用 return 关键字能将内部的执行结果交给函数外部使用
  •  return 后面代码不会再被执行,会立即结束当前函数,所以 return 后面的数据不要换行写
  • return函数可以没有 return,这种情况函数默认返回值为 undefined

函数的覆盖:

  • 两个相同的函数后面的会覆盖前面的函数
  • 在Javascript中 实参的个数和形参的个数可以不一致
  •  如果形参过多 会自动填上undefined (了解即可)
  •  如果实参过多 那么多余的实参会被忽略 (函数内部有一个arguments,里面装着所有的实参) 
  • 函数一旦碰到return就不会在往下执行了 函数的结束用return

break结束和return结束的区别: 

  • break是跳出整个循环的结束
  • return是跳出当前函数的结束

作用域:

  •    全局作用域:作用于所有代码执行的环 境(整个 script 标签内部)或 者一个独立的 js 文件
  •    局部作用域:作用于函数内的代码环境,就是局部作用域。 因为跟函数有关系, 所以也称为函数作用域。
 let num1 = 20  //全局变量
        function getArr() {
            //局部变量只能在函数内部使用
            let a = 1
            console.log(a)
            //在这个里面 访问全局变量
            console.log(num1);
        }
        getArr() 
        // 想要在 全局作用域的地方 访问 局部变量

变量作用域在js中的特殊情况:

  • 如果函数内部,变量没有声明,直接赋值,也当全局变量看
  • 只有函数内部的形参可以看做是局部变量。
// 需要在 全局作用域 先声明这个变量
        let a
        function getA(){
            // 变量一定要加 声明变量的关键字 在函数内部 如果没有加 声明变量的关键字 这个变量就会被看作 全局变量
            // 推荐做法: 在 全局变量作用域 先声明这个变量 在函数里面 相当于 在使用全局变量 给全局赋值
            a = 2
        }
        getA()
        console.log(a)

变量访问原则: 采取就近原则的方式来查找变量最终的值


 匿名函数:

   匿名的函数使用方式分为两种:1. 函数表达式     2.立即执行函数

  • 函数表达式:将匿名函数赋值给一个变量,并且通过变量名称进行调用
// 定义函数两种方式
        // 1.function 函数名 (){}
        // 2.函数表达式 把函数当做为变量的值赋值为 一个变量
        // const 变量名 =function(){

        // }
      const fn = function (name){
            console.log(name);
        }
         fn('吃西瓜')
  • 立即执行函数:不需要调用,直接执行.多个立即执行函数要用 ; 隔开,要不然会报错
 // 立即执行法
        // 匿名函数自调用
        // 防止变量名冲突
       ;( function (){
             console.log('西瓜不甜');
        }())
    ;   (function(){
        console.log(123);
    })()

      立即执行函数的作用: 防止变量污染


短路运算: 

逻辑运算符中的短路运算:

  • 短路:只存在于 && 和 || 中,当满足一定条件会让右边代码不执行
  • 原因:通过左边能得到整个式子的结果,因此没必要再判断右边
  • 运算结果:无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值

 隐式转换(转换成boolean):  

  • 有字符串的加法 “ ” + 1 ,结果是 “1”
  • 减法 - (像大多数数学运算一样)只能用于数字,它会使空字符串 "" 转换为 0
  • null 经过数字转换之后会变为 0
  • undefined 经过数字转换之后会变为 NaN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值