10-11

2023-11-12

函数

函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。
如果没有return语句,函数执行完毕后也会返回结果,只是结果为undefined
定义方法一:
在JavaScript中,定义函数的方式如下:
function abs(x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
上述abs()函数的定义如下:

function指出这是一个函数定义;
abs是函数的名称;
(x)括号内列出函数的参数,多个参数以,分隔;
{ … }之间的代码是函数体,可以包含若干语句,甚至可以没有任何语句。
定义方法二:
因此,第二种定义函数的方式如下:
var abs = function (x) {
if (x >= 0) {
return x;
} else {
return -x;
}
};
在这种方式下,function (x) { … }是一个匿名函数,它没有函数名。但是,这个匿名函数赋值给了变量abs,所以,通过变量abs就可以调用该函数
调用函数
abs(); // 返回NaN
此时abs(x)函数的参数x将收到undefined,计算结果为NaN。
要避免收到undefined,可以对参数进行检查:
function abs(x) {
if (typeof x !== ‘number’) {
throw ‘Not a number’;
}
if (x >= 0) {
return x;
} else {
return -x;
}
}
arguments
function a(x){
console.log(arguments.length);
}
a(1,1,1)//3
rest
ES6标准引入了rest参数,上面的函数可以改写为:

function foo(a, b, …rest) {
console.log('a = ’ + a);
console.log('b = ’ + b);
console.log(rest);
}

foo(1, 2, 3, 4, 5);
// 结果:
// a = 1
// b = 2
// Array [ 3, 4, 5 ]

foo(1);
// 结果:
// a = 1
// b = undefined
// Array []
传入的参数先绑定a、b,多余的参数以数组形式给变量rest,所以,不再需要arguments我们就获取了全部参数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

10-11 的相关文章

  • 多维数组变成一维数组

    这个问题来源于一个朋友曾经问过我的问题 当时是一个二维数组变成一维数组 后面我想整理一下 整理一个多维 并且是不定维的数组 一 二维数组变成一维数组 1 遍历数组 将元素一个个放入新数组 结果 如果元素不是数组 将会报错 下面是改良版 这样
  • 组织关系图谱

    div style width 100 height 800px div
  • 微信小程序自动检测版本并提示更新新版本

    微信小程序自动检测版本并提示更新新版本 微信小程序开发过程中 我们在版本更新迭代后 微信小程序客户端并不能触发自动更新 需要用户手动清理小程序后重新搜索进入后才能获取到最新的小程序版本 但是这个是用户所不能感知到的操作 也很麻烦 故需要提醒
  • $emit传递参数

    emit传递一个参数时 子组件代码 let data name 王五 age 50 this emit change data 父组件代码
  • Ajax核心技术之XMLHttpRequest对象

    XMLHttpRequest对象到底是什么 跟Ajax到底有什么联系 在了解它之前还是要先了解一下Ajax的功能 与以往的技术不同 Ajax是为了实现异步操作 那么关于异步 好像一个管理者安排好一个项目计划后 将这个项目交给下属去做 而自己
  • jquery获取select值

  • 通过js在ul中插入10000个li,点击li打印出li的序号

    第一种 直接ul插入 花费了119ms 164ms window onload function let now new Date let ul document querySelector ul for let i 0 i lt 1000
  • JS声明二维数组常见办法

    JS声明二维数组常见办法 目录 文章目录 前言 new Array 和 fill fill 灵活插入 for 笨办法 Array from 前言 目前论坛常见的办法代码质量奇差 因此针对这个问题进行整理 new Array和fill con
  • 通过点击按钮在页面添加图片

    点击添加按钮 在盒子中加入图片 点击图片实现删除图片效果 代码如下
  • JavaScript every() 方法:提示、技巧和用例

    JavaScript 巩固了其作为世界上最流行和最广泛使用的编程语言之一的地位 这是有充分理由的 它的动态特性和多功能性使其成为 Web 开发 从客户端交互到服务器端编程 的首选 提高其效率的一个重要因素是内置方法的多样性 其中一种有用的方
  • js获取时间戳的四种方法

  • js 手机、邮箱、身份证格式验证

  • JS修改对象属性的值

    当对象以数字为属性名时 其实就是一个数组 用 var foo 1 a 2 b foo 1 c console log foo 1 c 2 b 当对象以字符为属性名时 直接用 获取属性值 var bar a 1 b 2 c 3 bar a h
  • Vue.observable的理解

    一 Observable 是什么 Observable 翻译过来我们可以理解成可观察的 先来看其在Vue中的定义 Vue observable 让一个对象变成响应式数据 Vue 内部会用它来处理 data 函数返回的对象 返回的对象可以直接
  • Vue中key

    相信很多小伙伴跟我一样在使用v for的时候对key值的存在和必要性有疑问 通过ESlint进行代码检查的时候不加上key还会报错 想知道key为什么存在可以先想想key为什么产生 会不会是尤雨溪灵光一闪就给Vue添加上了key 也有可能
  • 前端学习教程:快速入门前端图表插件ECharts

    前言 在前端项目开发中 有很多地方会遇到绘制图表的需求 一般的图表可以通过canvas来绘制 但是遇到复杂一点的图表怎么办呢 不要慌 在下今天就给大家推荐一个前端大佬们用的非常火的图表插件 ECharts ECharts特性简介 EChar
  • js 对数组对象进行排序

    let listData id 1 name 测试1 presenttime 1557883600000 id 2 name 测试2 presenttime 1580751813000 id 3 presenttime 1561448381
  • 获取对象Object的长度

    获取对象的长度 obj id 1 id2 1 id3 1 id4 1 id5 1 id6 1 id7 1 id8 1 id9 1 id10 1 let i Object keys this obj length console log i
  • 30天精通Nodejs--第十四天:MongoDB

    这里写目录标题 前言 什么是 MongoDB 安装 MongoDB 驱动 连接到 MongoDB 数据库 执行基本操作 插入文档 查询文档 更新文档 删除文档
  • php中文乱码或html中文乱码

    参考gpt 一 在PHP中解决中文乱码问题的常见方案有以下几种 设置字符编码 在你的PHP代码中 可以使用 header 函数设置正确的字符编码 常见的字符编码是UTF 8 可以使用以下代码将页面的字符编码设置为UTF 8 header C

随机推荐

  • C++药名整理题——教你首字符串升序排序

    某题库中 有这样一道题 题目名称 药名整理 医生在书写药品名的时候无法关注到格式问题 不注意大小写 格式比较混乱等现象时有发生 你能否写一个程序 将医生书写混乱的药品名整理成统一规范的格式 即药品名的第一个字符如果 是字母要大写 其他字母小
  • 【菜鸟教程笔记】beautifulsoup高级用法

    静觅的博客进行了很详细的讲解 博客网址为 https cuiqingcai com 1319 html 官方教学网页源码 p align center This is paragraph b one b p p align left Thi
  • 【javascript】全选按钮

    当点击全选按钮时 与之相关的所有选项都会被自动框选 效果 代码
  • 43黑马QT笔记之Qt下Tcp/Udp通信过程

    43黑马QT笔记之Qt下Tcp Udp通信过程 前提 Qt下的网络通信需要加上 QT newwork 模块 1 Qt下Tcp的通信过程 1 共有三个套接字 客户端有一个QTcpServer监听套接字 服务端有两个 分别是QTcpServer
  • vlookup匹配 匹配结果错误_明明有数据,为什么我的VLOOKUP总是匹配不出来?

    经常用vlookup函数匹配数据的小伙伴们经常会遇到表格中明明有数据 却总是匹配不到的情况 下面盘点下那些年匹配时遇到的坑 单元格中存在空白 下图中A B两列分别存放着员工姓名和员工得分数据 现在要求提取员工H及员工D的得分情况 大家都知道
  • 太方便了,钉钉上就可完成代码发布审批啦!

    如今 不少企业的发布流程要求代码发布到生产环境前需要经过审批 这种发布审批流程 对企业的的CI CD工具提出了新要求 CI CD步骤里需要支持人工卡点审批 并在人工卡点审批通过后能自动触发后续的部署工作 云效流水线Flow发布审批示例 如上
  • 10道海量数据处理

    1 海量日志数据 提取出某日访问百度次数最多的那个IP 此题 在我之前的一篇文章算法里头有所提到 当时给出的方案是 IP的数目还是有限的 最多2 32个 所以可以考虑使用hash将ip直接存入内存 然后进行统计 再详细介绍下此方案 首先是这
  • pycharm中pip升级失败问题

    pycharm中pip升级失败问题 在使用部分第三方库时会使用更高版本的pip 例如TensorFlow需要18 x版本的pip 但是pycharm中进行pip升级时会出现各种问题 甚至显示升级成功 其实并没有 笔者阅读了一些博客上的文章发
  • 十大最佳虚拟化软件

    正如该术语在计算术语中暗示的那样 虚拟化涉及到创建虚拟操作系统 网络平台和存储设备 当今世界 需要复杂的计算机系统来帮助管理大型企业 虚拟化帮助计算机系统和网络管理员使用相同的硬件运行并行操作系统进程 这意味着硬件和软件集成的有效使用 它还
  • centos 查看内核 版本

    查看系统内核版本 方法一 root multiview cat proc version Linux version 3 10 0 693 el7 x86 64 builder kbuilder dev centos org gcc ver
  • Linux下C语言使用openssl库进行MD5校验

    作者 无脑仔的小明 出处 http www cnblogs com wunaozai 我们以一个字符串为例 新建一个文件filename txt 在文件内写入hello 然后在Linux下可以使用命令md5sum filename txt计
  • 2.3mnist手写数字识别之网络结构精讲(百度架构师手把手带你零基础实践深度学习原版笔记系列)

    2 3mnist手写数字识别之网络结构精讲 百度架构师手把手带你零基础实践深度学习原版笔记系列 目录 2 3mnist手写数字识别之网络结构精讲 百度架构师手把手带你零基础实践深度学习原版笔记系列 概述 经典的全连接神经网络 卷积神经网络
  • [SQL]SQL server 常用代码

    判断数据库是否存在 USE eshop 选取数据库 GO IF EXISTS SELECT FROM sysdatabases WHERE name eshop 判断eshop是否存在 DROP DATABASE eshop 删除 GO 新
  • Cisco路由器 VOIP 配置

    Cisco路由器VOIP 配置解析 在企业网络中推广IP语音技术有很多优点 例如可以控制数据流量 保证语音质量 充分利用企业租用的数据线路资源 节省传统的长途话费等等 企业使用IP语音技术 可以将语音 数据和多媒体通信融合在一个集成的网络中
  • 玩转Mixly – 2、Arduino AVR编程 之 输入输出

    以下内容源自Mixly官方技术文档 https mixly readthedocs io zh CN latest Arduino AVR 01Input Output html 输入 输出 输入 输出所包含的指令主要分为四部分 控制管脚的
  • CSS 轻松搞定标签(元素)居中问题

    在CSS里 标签位置居中一直是困扰Web前端的难题 在本文中 我对这类问题进行了探究和给出了几点建议 供读者参考 1 行内标签 1 1 水平居中 在父级标签中使用 text align center 效果 1 2 垂直居中 如果是单行 则为
  • 工业级路由器和家用路由器的区别_5G工业级路由器有哪些优势

    一 5G工业级路由器比4G工业级路由器强在哪 对于消费者而言 5G的价值在于它拥有比4G LTE更快的速度 峰值速率可达几十Gbps 例如你可以在一秒钟内下载一部高清电影 而4G LTE可能要10分钟 5G网关 5G路由 因而 和4G工业级
  • Mysql中行转列和列转行

    一 行转列 即将原本同一列下多行的不同内容作为多个字段 输出对应内容 建表语句 DROP TABLE IF EXISTS tb score CREATE TABLE tb score id INT 11 NOT NULL auto incr
  • C语言的关键字,字符和ASCII码

    关键字的介绍 C语言的关键字有 1 数据类型关键字 2 控制语句关键字 3 存储类型关键字 4 其他关键字 数据类型关键字有12个 char 声明字符型变量或函数 double 声明双精度变量或函数 enum 声明枚举类型 float 声明
  • 10-11

    函数 函数体内部的语句在执行时 一旦执行到return时 函数就执行完毕 并将结果返回 因此 函数内部通过条件判断和循环可以实现非常复杂的逻辑 如果没有return语句 函数执行完毕后也会返回结果 只是结果为undefined 定义方法一