JavaScript之函数

函数

使用

  1. 声明语法:
function 函数名() {
    函数体
}
  1. 命名规范:

    • 小驼峰命名法
    • 前缀用动词
      前缀词:
      在这里插入图片描述
  2. 调用

函数名()

函数传参

为了提高函数的灵活性

  1. 声明语法:
function 函数名(参数列表) {
    函数体
}
  1. 调用
函数名(参数)
  1. 在函数声明时可以对形参进行初始化,这样在调用未传参时不会出现问题
    eg:function getSum(num1 = 0, num2 = 0){}
    数组:function getSum(arr = []){}

函数返回值

return 数据

补充内容

  1. 函数名相同,后面覆盖前面
  2. 参数不匹配
    • 实参多于形参:剩余实参不参与计算
    • 实参少于形参,会自动填充undefined
      eg:1 + undefined = NaN
  3. 函数结束用return

作用域

  1. 全局作用域
  2. 局部作用域(函数内部)
    特殊情况:如果函数内部变量没有声明,直接赋值,也当全局变量看,但是强烈不推荐
    在能够访问到的情况下,先局部再全局

匿名函数

  1. 具名函数
    可以在任何位置调用
  2. 匿名函数:没有名字的函数
    使用方式:
  3. 函数表达式
    把匿名函数赋给一个变量,并通过变量名称进行调用,形参和实参的使用和具名函数相同,后期API会使用
    语法格式:
let fn = function (){
    //函数体
}

调用:

fn() //函数名()
  1. 立即执行函数
    防止变量污染,互不影响
    语法格式:
// 第一种写法
(function() {
    //函数体
})();

//第二种写法
(function(){}());

注意:立即执行函数之后必须写分号

逻辑中断

以下写法类似参数的默认值

function getSum(x,y) {
    x = x || 0
    y = y || 0
    console.log(x + y)
}
getSum(1,2)

短路:只存在于&&和||中,通过左边就能得到整个式子的结果,不再执行右边,&&:左边为false就短路,||:左边为true就短路
eg:console.log(11 && 22)结果为22
console.log(11 || 22)结果为11

转换为boolean类型

'' 0 undefined null false NaN转换为布尔值后均为false,其余为true
隐式转换:

  1. 有字符串的加法均为拼接字符串
  2. 减法只用于数字,它会使空字符串转换为0
  3. null经数字转换之后变成0
  4. undefined经过数字转换之后会变成NaN
    例子:
console.log('' - 1)         //值为-1
console.log('pink' - 1)     //值为NaN
console.log(null + 1)       //值为1
console.log(undefined + 1)  //值为NaN
console.log(NaN + 1)        //值为NaN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/706327.html

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

相关文章

登录/注册- 滑动拼图验证码(IOS/Swift)

本章介绍如何使用ios开发出滑动拼图验证码,分别OC代码和swift代码调用 1.导入项目model文件OC代码(下载完整Demo) 2.放入你需要显示的图片 一:OC调用 #import "ViewController.h" #import "CodeView.h"…

强大高效,推荐这两款分析文章和抠图的AI工具

ChatDOC ChatDOC是一款基于ChatGPT的AI阅读辅助工具,旨在通过与用户指定的文档进行对话来处理用户的专属数据。它能够帮助用户快速提取文档中的信息,支持多种文件格式,并提供准确的答案。此外,ChatDOC还具备智能格式化、自动摘要生…

使用QT制作QQ登录界面

mywidget.cpp #include "mywidget.h"Mywidget::Mywidget(QWidget *parent): QWidget(parent) {/********制作一个QQ登录界面*********************/this->resize(535,415);//设置登录窗口大小this->setFixedSize(535,415);//固定窗口大小this->setWindowTi…

交换机简介

一、 集线器的替代品—交换机 使用集线器的缺点,因此就设计出了交换机来代替集线器,交换机常见端口数量一般有4、8、16、24、32等数量。 华为交换机:S5720-HI系列 仅从实物图上来看,交换机和集线器非常的像,但是它们的…

【python】通行网格地图四叉树化 (leeccode 427)

【python】通行网格地图四叉树化 受到Leecode 427题的启发,427. 建立四叉树 想将由0和1组成的网格地图绘制为四叉树地图,0表示可通行网格,1表示不可通行网格。 import matplotlib.pyplot as plt import matplotlib.patches as patches …

【ARM Cache 与 MMU/MPU 系列文章 1.2 -- Data Cache 和 Unified Cache 的区别是什么?】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 Data Cache and Unified Cache数据缓存 (Data Cache)统一缓存 (Unified Cache)数据缓存与统一缓存的比较小结 Data Cache and Unified Cache 在 ARM架构中,缓存&#xff08…

第3章 Unity 3D着色器系统

3.1 从一个外观着色器程序谈起 新建名为basic_diffuse.shader的文件,被一个名为basic_diffuse.mat的材质文件所引用,而basic_diffuse.mat文件则被场景中名为Sphere的game object的MeshRenderer组件所使用。 basic_diffuse.shader代码文件的内容如下所示…

15.RedHat认证-Ansible自动化运维(上)

15.RedHat认证-Ansible自动化运维(上) RHCE8-RH294 Ansible自动化(Ansible版本是2.8.2) Ansible介绍 1.Ansible是什么? Ansible是一个简单的强大的无代理的自动化运维工具(Ansible是自动化运维工具)Ansible特点 简…

Java——LinkedList

1、链表 1.1 链表的概念及结构 链表在逻辑层面上是连续的,在物理层面上不一定是连续的 链表结构可分为,单向或双向、带头或不带头、循环或非循环,组合共计8种 重点:无头单向非循环链表、无头双向链表 1.2 模拟实现无头单向非…

ArcGIS JSAPI 高级教程 - ArcGIS Maps SDK for JavaScript - 探测效果(地图探测、地图窥探)

ArcGIS JSAPI 高级教程 - ArcGIS Maps SDK for JavaScript - 探测效果(地图探测、地图窥探) 实现原理 ArcGIS Maps SDK for JavaScript 从 4.29 开始增加 RenderNode 类,可以添加数据以及操作 FBO(ManagedFBO)&#xf…

影响数字本振信噪比的因素

2048 点 -66 4096 点-72 8192 点-77 16384 点-84

弃用Docker Desktop:在WSL2中玩转Docker之Docker Engine 部署与WSL入门

Docker技术概论 在WSL2中玩转Docker之Docker Engine部署 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://bl…

Java开发规范

1.接口命名规范–Restful API 原本格式是动词资源by传参,后来进化为Restful API,思想是以资源为中心。 动词用get,post,put,delete请求方法代替,by后面的名词用传参代替。 并且GET方法传参资源ID采用路径传参,除了资源ID外的GET…

区间合并——Acwing.803区间合并

区间合并 定义 区间合并是指将一组有重叠或相邻的区间合并成一个或多个更大的区间。 运用情况 图像处理:在图像的区域分析中,可能需要将相邻的具有相似特征的区域进行合并。时间区间处理:比如将多个连续时间段进行合并。行程规划&#xf…

nodejs湖北省智慧乡村旅游平台-计算机毕业设计源码00232

摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,旅游行业当然也不能排除在外。智慧乡村旅游平台是以实际运用为开发背景,运用软件工程开发方法,采…

探索JavaScript逆向工程与风控等级

探索JavaScript逆向工程与风控等级 在当今的网络安全领域,JavaScript逆向工程(简称JS逆向)已成为许多开发者和安全专家关注的焦点。JS逆向主要涉及对JavaScript代码的分析与理解,以发现其内部逻辑、数据流及潜在漏洞。这种技术常用…

【GIS】全球范围气象站点的逐年平均气温数据(1929-2023年)

数据简介:气象数据包括气象站点温度、湿度、光照等等。提供自1929-2023年以来的全球逐年平均气温数据气象数据下载。数据源为NCDC(美国国家气候数据中心,National Climatic Data Center),隶属于NOAA(美国国…

软件测试之购物车的用例设计

功能 正向case: 1、商品添加到购物车->选中添加的商品->点击结算->支付成功,验证购物车中订单是否清楚; 2、购物车中搜索商品,能够查询到对应的商品信息; 3、选中不同商家的商品,购物车中商品按照…

springboot热贡文化旅游APP的设计与实现-计算机毕业设计源码69932

摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…

bugku---misc---赛博朋克

1、下载附件解压之后是一个txt文本,查看文本的时候看到头部有NG的字样 2、把txt改为png后缀得到一张图片 3、binwalk没发现奇怪的地方,分离出来还是图片 4、stegslove分析,切换图片没有发现奇怪地方 5、将通道rgb置为0。出现了flag但是flag不…