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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HttpRunner3.x 源码解析(4)-工具类loader.py

这些方法可以灵活的引用在其他项目中。 加载yaml文件 def _load_yaml_file(yaml_file: Text):""" load yaml file and check file content format"""with open(yaml_file, mode"rb") as stream:try:yaml_content yaml.load(stream,…

架构重构的技巧

1 代码重构 定义 对软件代码做任何改动以增加可读性或者简化结构而不影响输出结果。 目的 增加可读性、增加可维护性、可扩展性 3 关键点 不影响输出不修正错误不增加新的功能性 代码重构时&#xff0c;发现有个功能实现逻辑不合理&#xff0c;可直接修改吗&#xff1f;…

十年程序老狗手写分布式服务架构:原理、设计与实战

IT 技术日新月异地发展&#xff0c;我们自然不能躺在历史的温床上停歇&#xff0c;必须不断地学习。分布式、微服务几乎是现在的技术人员必须要了解的架构方向&#xff0c;从理论上来讲确实解耦了很多结构&#xff0c;但另一方面&#xff0c;又会带来更多衍生的复杂度及难点 如…

光度立体法检测原理讲解

光度立体法检测 图像辐照度 决定场景表面片辐射的因素有两个: 1.在场景表面片的照明 投在某一特定表面片上的照明量取决于该表面片在场景中相对于光源的分布位置 2.表面片反射的入射照明部分 在某一特定方向上被表面片反射的入射照明部分取决于表面材料的光学特性 反射类…

前端实现html转pdf

优秀文章&#xff1a; 前端实现 HTML 转 PDF 并导出 - 掘金 (juejin.cn)https://juejin.cn/post/7012049739482923039 安装 npm install html2canvas jspdf --save main.js导入&#xff1a; import htmlToPdf from ./utils/htmlToPdf Vue.use(htmlToPdf) html2Canvas.js文…

html+css实现的登录界面

一、界面效果 二、代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>登录</title><style>body {background-color: #f1f1f1;}.login-box {width: 400px;margin: 50px auto;padding: 2…

【计算机视觉·OpenCV】使用Haar+Cascade实现人脸检测

前言 人脸检测的目标是找出图像中所有的人脸对应的位置&#xff0c;算法的输出是人脸的外接矩形在图像中的坐标。使用 haar 特征和 cascade 检测器进行人脸检测是一种传统的方式&#xff0c;下面将给出利用 OpenCV 中的 haarcascade 进行人脸检测的代码。 程序流程 代码 impo…

ESP32设备驱动-MLX90615红外测温仪驱动

MLX90615红外测温仪驱动 文章目录 MLX90615红外测温仪驱动1、MLX90615介绍2、硬件准备3、软件准备4、驱动实现1、MLX90615介绍 MLX90615 是一款用于非接触式温度测量的微型红外温度计。 IR 敏感热电堆探测器芯片和信号调节 ASIC 都集成在同一个微型 TO-46 罐中。 红外测温仪出…

快速尝鲜Oracle 23c免费开发者版,惊喜多多

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

分布式一致性协议

1 两阶段提交协议(2PC) 1.1 两阶段提交协议 两阶段提交协议&#xff0c;简称 2PC(2 Prepare Commit)&#xff0c;是比较常用的解决分布式事务问题的方式&#xff0c;要么所 有参与进程都提交事务&#xff0c;要么都取消事务&#xff0c;即实现 ACID 中的原子性(A)的常用手段。…

ctfshow web入门 爆破 21-28

web21 刚进去就要求我们登录&#xff0c;这里题目给了我们一个字典&#xff0c;就是这个字典为什么他那么多数字中 就一个字母的密码还不明显吗。 这里我们使用burp拦包&#xff0c;这里没有发现登录的账号密码&#xff0c;但是有一串可疑的字符串&#xff0c;尝试base64解密 这…

Java设计模式 07-装饰者模式

装饰者模式 套娃模式&#xff0c;直接new放构造器里面套 把抽象类聚合到它的子类里 该子类(装饰者)构造抽象类的实现(被装饰者) 一、星巴克咖啡订单项目&#xff08;咖啡馆&#xff09; 1)咖啡种类/单品咖啡&#xff1a;Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式…

【Spring】2—IOC容器

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…

教你如何搭建物业-后勤管理系统,demo可分享

1、简介 1.1、案例简介 本文将介绍&#xff0c;如何搭建物业-后勤管理。 1.2、应用场景 该应用包含疫情上报、绿化、安保等管理功能。 2、设置方法 2.1、表单搭建 1&#xff09;新建表单【返区登记】&#xff0c;字段设置如下&#xff1a; 名称类型名称类型姓名单行文本…

静态路由的原理和配置(理论详细实验全面)

第五章&#xff1a;静态路由 目录 第五章&#xff1a;静态路由 5.1路由器的工作原理 5.1.1路由器根据路由表转发数据 5.1.2 路由信息获取的方式 5.2路由选路原则 5.2.1最长匹配原则 5.2.2路由优先级 5.2.3路由度量值 5.3静态路由 5.3.1静态路由实验 5.3.2缺省路由实…

初学对象存储OSS---学习笔记

文章目录前言一、OSS是什么&#xff1f;下面以一个小故事介绍OSS的作用&#xff1a;二、怎么使用OSS1.进入 -----> [阿里云官网](https://www.aliyun.com/)2.点击进入OSS控制台3.获取accessKeyId 和 accessKeySecret4.拿到了accessKeyId 和 accessKeySecret &#xff0c;就可…

CTP_将C++封装为Python可调用接口

目录 写在前面&#xff1a; 前置准备&#xff1a; step 1 与上期所原始代码对比分析源码 td源码 1 配置属性-》常规-》配置类型 要为 “动态库(.dll)” 2 VC目录 -》包含目录 3 VC目录 -》 库目录 4 链接器-》常规-》附加库目录 5 链接器-》输入-》附加依赖项 vnctp.h 的功…

CTF杂项提纲

CTF的杂项是涉及编码&#xff0c;图片隐写&#xff0c;音频隐写&#xff0c;压缩包分析的方向&#xff0c;本文对MISC的知识点做了一个简单列举 常见编码 ASCII 0-9,48-57 A-Z 65-90 a-z 97-122 URL url编码又叫百分号编码&#xff0c;是统一资源定位的编码方式 base16/…

leetcode每日一题:数组篇(1/2)

&#x1f61a;一个不甘平凡的普通人&#xff0c;日更算法学习和打卡&#xff0c;期待您的关注和认可&#xff0c;陪您一起学习打卡&#xff01;&#xff01;&#xff01;&#x1f618;&#x1f618;&#x1f618; &#x1f917;专栏&#xff1a;每日算法学习 &#x1f4ac;个人…

cmake 常用方法自我总结

目录 1. 编译一个库依赖另一个库 2. 把某一个CMakeLists.txt中变量设为整个工程中任意CMakeLists.txt都可以访问 3. 枚举目录下所有匹配文件 4. 拷贝文件 5. 解决方案下分Header Files&#xff0c;Source Files目录 6. 依赖头文件&#xff08;附加依赖项&#xff09; 7.…
最新文章