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 || 0y = y || 0console.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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

供应链初学者手册——第八部分:供应链战略与领导力

供应链初学者手册 文章目录 供应链初学者手册第八部分:供应链战略与领导力16. 供应链战略规划16.1 战略制定过程16.2 供应链战略的实施 17. 供应链领导力17.1 领导力在供应链管理中的作用17.2 供应链团队建设与管理 总结 第八部分:供应链战略与领导力 1…

Python版本管理器-Miniconda

随着Python的版本更新,我们在开发Python软件的时候,对Python的版本选择越来越重要,但同时又要兼容已经开发好了的Python软件,因此选择一款合适的Python版本管理器对提高开发效率也越来越重要,今天就推荐一款Python的版…

C# list 成员对象是int型存在堆区还是栈区

在C#中&#xff0c;List<int>中的元素是直接存储在堆上的。这是因为List<T>是一个引用类型&#xff0c;当你创建一个List<int>实例时&#xff0c;它的容器本身&#xff08;即列表的结构&#xff09;存储在栈上&#xff0c;但是其元素&#xff08;这里是int值…

深入理解指针(二)

目录 1. 数组名的理解 2. 使用指针访问数组 3. ⼀维数组传参的本质 4. 冒泡排序 5. 二级指针 6. 指针数组 7. 指针数组模拟二维数组 1. 数组名的理解 有下面一段代码: #include <stdio.h> int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int* p &arr[…

2024年6月14日 十二生肖 今日运势

小运播报&#xff1a;2024年6月14日&#xff0c;星期五&#xff0c;农历五月初九 &#xff08;甲辰年庚午月己酉日&#xff09;&#xff0c;法定工作日。今天世界献血日&#xff0c;捐献新鲜血液&#xff0c;挽救更多生命&#xff0c;每位献血者都是英雄&#xff01; 红榜生肖…

美创科技入选“2024网络安全提供商创新排行榜”

近日&#xff0c;DBC德本咨询公布了“2024网络安全提供商创新排行榜”&#xff0c;美创科技凭借近20年的数据安全创新耕耘&#xff0c;荣誉上榜。 此次&#xff0c;与360、华为、腾讯等互联网、网络安全头部厂商并肩上榜&#xff0c;是行业对美创的再次认可。 数据安全的发展离…

什么是基于风险的漏洞管理RBVM,及其优势

文章目录 一、什么是漏洞管理二、什么是基于风险的漏洞管理RBVM三、RBVM的基本流程四、RBVM的特点和优势 一、什么是漏洞管理 安全漏洞是网络或网络资产的结构、功能或实现中的任何缺陷或弱点&#xff0c;黑客可以利用这些缺陷或弱点发起网络攻击&#xff0c;获得对系统或数据…

Redis保证数据⼀致、缓存穿透、缓存雪崩和数据热点

13- Redis和Mysql如何保证数据⼀致? 先更新Mysql&#xff0c;再更新Redis&#xff0c;如果更新Redis失败&#xff0c;可能仍然不⼀致 先删除Redis缓存数据&#xff0c;再更新Mysql&#xff0c;再次查询的时候在将数据添加到缓存中 这种⽅案能解决1 ⽅案的问题&#xff0c;但…

【log4】log4cplus:使用详解(一)

1、源码下载 源码下载地址:https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/ 最新稳定版本为2.1.1(2023-11-17) github中有最新的源码:https://github.com/log4cplus/log4cplus 2、源码编译 1)解压后,进入源码目录中,执行配置命令: ./confi…

OpenZeppelin Ownable合约 怎么使用

文章目录 智能合约的访问控制Ownable合约使用方法 智能合约的访问控制 熟悉OpenZeppelin的智能合约库的开发者都知道这个库已经提供了根据访问等级进行访问限制的选项&#xff0c;其中最常见的就是Ownable合约管理的onlyOwner模式&#xff0c;另一个是OpenZeppelin的Roles库&a…

闪烁圆点加载动画

效果图: 完整代码: <!DOCTYPE html> <html> <head><meta charset="UTF-8" /><title>闪烁圆点加载动画</title><style type="text/css">body {background: #ECF0F1;display: flex;justify-content: center;al…

最实用的AI软件开发工具CodeFlying测评

就在上个月&#xff0c;OpenAI宣布GPT-4o支持免费试用&#xff0c;调用API价格降到5美元/百万token。 谷歌在得到消息后立马将Gemini 1.5 的价格下降到0.35美元/百万token。 Anthropic的API价格&#xff0c;直接干到了0.25美元/百万token。 国外尚且如此&#xff0c;那么国内…

高创新 | CEEMDAN-VMD-BiLSTM-Attention双重分解+双向长短期记忆神经网络+注意力机制多元时间序列预测

目录 效果一览基本介绍模型设计程序设计参考资料 效果一览 基本介绍 高创新 | CEEMDAN-VMD-BiLSTM-Attention双重分解双向长短期记忆神经网络注意力机制多元时间序列预测 本文提出一种基于CEEMDAN 的二次分解方法&#xff0c;通过样本熵重构CEEMDAN 分解后的序列&#xff0c;复…

Java 线程异常处理

子线程中发生了异常&#xff0c;如果没有任何类来接手处理的话&#xff0c;是会直接退出的&#xff0c;而不会记录任何日志。所以&#xff0c;如果什么都不做的话&#xff0c;是会出现子线程任务既没执行成功&#xff0c;也没有任何日志提示的“诡异”现象的。 1、异常处理器 …

Multimodal Dynamics:用于多模态融合背景下的分类

Multimodal Dynamics&#xff08;MD&#xff09;是可信赖的多模态分类算法&#xff0c;该算法动态评估不同样本的特征级和模态级信息量&#xff0c;从而可信赖地对多模态进行融合。 来自&#xff1a;Multimodal Dynamics: Dynamical Fusion for Trustworthy Multimodal Classi…

嵌入式linux中设备树使用of函数操作基本方法

各位开发者大家好,今天主要给大家分享一下,如何使用of操作函数,获取对应设备树节点先关的属性信息。 第一:of_find_property函数 of_find_property 函数用于在设备树中查找节点下具有指定名称的属性。如果找到了该属性,可以通过返回的属性结构体指针进行进一步的操作,比…

动态规划法学习

当然&#xff0c;让我们用更生活化的语言和一个实际的例子来解释动态规划&#xff0c;以及如何在实践中应用它。 动态规划通俗理解 想象一下&#xff0c;你是个水果摊老板&#xff0c;每天要决定订购多少苹果&#xff0c;目标是最大化利润。但苹果的价格每天波动&#xff0c;…

题解:CF1975D(Paint the Tree)

题解&#xff1a;CF1975D&#xff08;Paint the Tree&#xff09; 看到有两个点在移动&#xff0c;好烦人&#xff01; 那就直接“改题”&#xff1a;有一个点在一棵树上移动&#xff0c;每次可以移动到相邻的一个点&#xff0c;问至少要移动多少次才能够遍历整棵树。 这个题…

【Linux】进程_2

文章目录 五、进程2. 操作系统3. 进程 未完待续 五、进程 2. 操作系统 我们知道了操作系统是一个进行 软硬件 资源 管理 的 软件 。为什么要有操作系统呢&#xff1f;或者说&#xff0c;为什么要有操作系统的管理呢&#xff1f;操作系统的存在目的是为了对上提供一个良好的运行…

机器学习第四十三周周报 aGNN

文章目录 week43 aGNN摘要Abstract1. 题目2. Abstract3. 网络架构3.1 aGNN3.1.1 输入与输出模块3.1.2 嵌入层3.1.3编码器解码器模块&#xff1a;带有多头注意力层的GCN 3.2 可释性模型&#xff1a;SHAP 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 实验区域以及场…