ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

函数语法和作用域

2022-02-23 20:32:01  阅读:133  来源: 互联网

标签:return 函数 作用域 代码 语法 null 式子


1 函数介绍

需求:就是一段代码,需要在很多地方使用

 函数语法: 函数是一种用于储存代码块的复杂数据类型

作用:解决代码复用的问题.

1. 声明函数: 声明函数只是把代码封装起来,不会执行函数代码体.

   function 函数名(){

       函数体代码: 需要存储的一段代码

        }

2. 调用函数 : 执行函数代码体(函数不调用,代码体不执行)

函数名()

2 函数传参

 函数参数:调用者 传递数据 函数

1 传数据: 调用者    函数名(实参)

2 收数据: 函数    function 函数名(形参){  //函数体 }

3. 函数传参原理 : 实参给形参赋值

  •   函数传参是按照顺序 一一赋值
  •   每一次调用函数 传参过程都是独立的,互不影响
  •   函数实参 和 形参 数量 可以不一致

3 函数默认参数(自己在开发中使用不多 ,后面了解 很多js框架函数默认参数底层原理)

函数默认参数 使用 逻辑运算符短路运算(逻辑中断)

应用场景(1)函数默认参数, (2)用于多条件筛选

1.  短路运算: 左边式子就可以决定结果,右边式子不执行

逻辑与&& 一假则假

&& : 找假 . 左边式子值可以转成false,则返回左边式子的值,反之返回右边式子的值

 逻辑或 || 一真则真

let res = 10 && null

console.log( res )//null

|| : 找真 . 左边式子值可以转成true,则返回左边式子的值,反之返回右边式子的值

 let res1 = 10 || null

 console.log( res1 )//10

 console.log( 20 && null && undefined )//null

 console.log( 20 || null || undefined )//20

! 取反 (没有短路运算,因为只有一个式子)

4 函数返回值 return

1 传 : 函数

                function 函数名(){

                            //函数体  return 值

                  }

 2 收 :  调用者

                let 变量名 = 函数名()

3 返回值注意点:

1 return 关键词后面的代码不会执行(return 可以结束函数体,类似于循环中的break)

2 函数如果没有返回值,得到的则是underfined(函数默认返回值是 underfined )

没有返回值:

  • a 没有写 return
  • b 写了 return,return后面没有返回值

5 作用域(3种)

变量的作用域:变量可以使用的范围

  1. 全局作用域    在函数外面声明,可以在页面任何地方使用
  2.  局部作用域   在函数内部声明的变量,只能在函数使用
  3. 块级作用域    在大括号(分支加循环) 里面声明的变量,只能在大括号内部使用

作用域链:    默认情况下,代码处于全局作用域(0级),当我们声明一个函数之后,就会开辟一个局部作用域(1级),而函数内部又可以声明函数(2级),以此类推形成链式结构,称之为作用域链

作用域链  访问规则   就近原则

6 匿名函数

 1.匿名函数 : 没有函数名的函数

        *  let   函数名  =  匿名函数

            * 匿名函数自调用 : ( function(){} )()

                * 注意:自调用语法 前一个语句不能省略分号

  2.匿名函数作用 : 开辟局部作用域,避免全局变量污染

            * 全局变量污染 :  变量名太多了,会增加同名风险

标签:return,函数,作用域,代码,语法,null,式子
来源: https://blog.csdn.net/weixin_57320268/article/details/123083903

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有