当前位置: 首页 > article >正文

JavaScript -- 函数

1. 概念

函数:function,是被设计为执行特定任务的代码块

说明:函数可以把具有相同或相似逻辑的代码“包裹”起来,通过函数调用执行这些被“包裹”的代码逻辑,这么做的优势是有利于精简代码方便复用

2. 函数使用

2.1 函数的声明语法

funtion 函数名(){
	函数体
}

函数名命名规范

  • 和变量命名基本一致
  • 尽量小驼峰式命名法
  • 前缀应该为动词
  • 命名建议:常用动词约定
    在这里插入图片描述

2.2 函数使用

函数的调用语法:

// 函数调用,这些函数体内的代码逻辑会被执行
函数名()

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

2.3 函数传参

声明:

funtion 函数名(参数列表){
	函数体
}

参数列表:

  • 传入数据列表
  • 声明这个函数需要传入几个数据
  • 多个数据用逗号隔开

eg:

function getSum(num1, num2) {
	document.write(num1 + num2)
}

调用:函数名(传递的参数列表)

如果做用户不输入实参,则出现 undefined + undefined 结果是NaN

改进:用户不输入实参,可以给形参默认值,可以默认为 0,这样程序更严谨

2.4 函数返回值

函数的本质是封装(包裹),函数体内的逻辑执行完毕后,函数外部要想获得函数内部逻辑的执行结果,需要通过 return 这个关键字,将内部执行结果传递到函数外部,这个被传递到外部的结果就是返回值。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>JavaScript函数返回值</title>
</head>
<body>

  <script>
    // 定义求和函数
    function count(a, b) {
      let s = a + b
      // s 即为 a + b 的结果
      // 通过 return 将 s 传递到外部
      return s
    }

    // 调用函数,如果一个函数有返回值
    // 那么可将这个返回值赋值给外部的任意变量
    let total = count(5, 12)
  </script>
</body>
</html>

细节:

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

2.5 作用域

通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。

作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。

全局作用域

作用于所有代码执行的环境(整个 script 标签内部)或者一个独立的 js 文件

处于全局作用域内的变量,称为全局变量

局部作用域

作用于函数内的代码环境,就是局部作用域。 因为跟函数有关系,所以也称为函数作用域。

处于局部作用域内的变量称为局部变量

注意:

  • 如果函数内部,变量没有声明,直接赋值,也当全局变量看,但是强烈不推荐
  • 但是有一种情况,函数内部的形参可以看做是局部变量。

访问原则:在能够访问到的情况下先局部,局部没有再找全局

2.6 匿名函数

函数可以分为具名函数和匿名函数

匿名函数:没有名字的函数,无法直接使用。

函数表达式

将匿名函数赋值给一个变量,并且通过变量名称进行调用 必须先声明再调用

语法:

let fn = funtion(){
	//函数体
}

eg:

// 声明
let fn = function() { 
   console.log('函数表达式')
}
// 调用
fn()

立即执行函数

语法:

(function(){ 函数体  })();
(function(){ 函数体 }());

eg:

(funtion(x,y){
	console.log(x+y)
})(1,2)
//第二种写法
(funtion(x,y){
	console.log(x+y)
}(1,2))
  • 无需调用,立即执行,其实本质已经调用了

  • 多个立即执行函数之间用分号隔开

逻辑中断

在这里插入图片描述
转换为Boolean型

显示转换:
1.Boolean(内容)

  • 记忆:‘ ’、0、undefined、null、false、NaN 转换为布尔值后都是false,其余则为 true

隐式转换:

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

http://www.kler.cn/a/8252.html

相关文章:

  • 基于碎纸片的拼接复原算法及MATLAB实现
  • WordPress HTTPS 配置问题解决方案
  • 《新智慧》期刊的征稿范围主要包括哪些方面?
  • CentOS 服务
  • request爬虫库的小坑
  • 软件测试——认识测试
  • Midjourney —— AI绘图工具能取代设计师吗?
  • HttpRunner3.x 源码解析(4)-工具类loader.py
  • 数据结构——二分查找算法
  • 架构重构的技巧
  • 十年程序老狗手写分布式服务架构:原理、设计与实战
  • 行为型模式-模板方法
  • 类的相关知识(二)const
  • 光度立体法检测原理讲解
  • 驾校预约课程管理系统设计与实现
  • 对象序列化流
  • 前端实现html转pdf
  • html+css实现的登录界面
  • 【计算机视觉·OpenCV】使用Haar+Cascade实现人脸检测
  • ESP32设备驱动-MLX90615红外测温仪驱动
  • Files的常用方法都有哪些?
  • 快速尝鲜Oracle 23c免费开发者版,惊喜多多
  • 分布式一致性协议
  • ctfshow web入门 爆破 21-28
  • P1011 [NOIP1998 提高组] 车站
  • Java设计模式 07-装饰者模式