ES6参数默认值 参数默认值对arguments的影响 暂时性死区

轴承寿命预测实战:手把手教你用IEEE PHM2012数据集训练模型(附Python代码) 本文详细介绍了如何利用IEEE PHM2012数据集构建轴承剩余寿命预测模型,从数据预处理、特征工程到LSTM模型训练与部署,提供了完整的Python代码实现。通过实战案例,帮助读者掌握预测性维护中的关键技术,提升工业设备的运行安全与效率。 阅读详情

参数默认值

一般情况下,在函数传递参数时,会将参数全部传入,而很多情况下在参数变多的时候有些时候就会变得麻烦起来,而很多种情况下有一大部分参数都是不会变的,因为既要保证灵活性,同时又要方便的调用这样就在ES6中引入了一个新的概念:参数默认值。

在之前我们要完成这样一个默认值的方法需要些很多的代码比较麻烦,而在ES6中书写形参时直接给形参赋值,赋的值即为默认值。

这样一来当调用函数时,如果没有给对应的参数赋值,给它的值是undefined则会自动使用默认值

  • 注意一定得是undefined不能是null,因为null在数学运算中null为0。

	function sun (a, b = 1, c = 2) {}
	sun(1, undefined,undefined)//此时也可以不写

且不光可以是字面量,也可以是表达式。

参数默认值对arguments的影响

在严格模式下arguments跟形参是脱离的,而在非严格模式下则是不脱离的。


	function test(a, b) {
	    console.log("arguments", arguments[0], arguments[1]);
	    console.log("a:", a, "b:", b);//此时我们输出abarguments和a的值是一样的
	    a = 3;//在设定好之后我们更改a值
	    console.log("arguments", arguments[0], arguments[1]);
	    console.log("a:", a, "b:", b);//此时在非严格模式下是没有变化的
	}

而在严格模式下arguments是不会发生改变的,也就是说你要么用arguments要么直接更改。

而只要给函数加上参数默认值,该函数会自动变成严格模式下的规则arguments和形参脱离。


	function test(a, b = 1) {
	    console.log("arguments", arguments[0], arguments[1]);
	    console.log("a:", a, "b:", b);//此时我们输出abarguments和a的值是一样的
	    a = 3;//在设定好之后我们更改a值
	    console.log("arguments", arguments[0], arguments[1]);
	    console.log("a:", a, "b:", b);//此时在严格模式下是脱离的的
	}

而arguments在以后尽量就不要使用了在后面我会讲到具体原因的。

留意暂时性死区

形参和ES6中的let和const声明一样,具有作用域,并且根据参数的声明顺序,存在暂时性死区。

这是什么意思呢,让我们来举个例子:


	function test (a, b = a) {
		console.log(a, b)
	}
	test(1, 2)//在这种情况下是完全没问题的,因为我们并没用到默认值
	
	function test (a, b = a) {
		console.log(a, b);
	}
	test(1, undefined)//在这种情况下也是没有问题的因为我们是先给a赋值再让b = a所以没问题
	
	function test (a = b, b) {
		console.log(a, b);
	}
	test(undefined, 2)//在这种情况下就会报错

而报错的原因就是我们在没有给a设置制值的情况下会在声明之后将其存入暂时性死区里,之后在有任何改动,比如赋值的情况下会将其取出。

所以我们在以后我们在使用let定义变量名的时候不能与形参重复。

以上就是参数默认值的介绍和其他扩展的知识希望对你有所帮助。

RK3568平台(内存篇)DDR定频修改 如果需要DDR定频,则还需要注释掉其他多余的DDR频率,保留一个即可,例如注释掉opp-528000000、opp-1068000000、opp-1560000000,保留opp-2750000000则是定频最大频率。如果回退必须将 dmc_opp_table节点 的其他频率打开,否则系统无法选择到其他频率运行。ddr频点不对,先把ddr变频关掉,关闭后系统就不会一直重启了,以下是修改DDR频点的。rk3588修改定频节点在rk3588s.dtsi 的 dmc: dmc。 阅读详情

相关推荐

阿里云大模型ACP认证模拟考试(一)

摘要:在阿里云大模型高级工程师 ACP 认证暂无真题题库的现状下,模拟题具有重要意义。其依照真实考试设计,涵盖题型、题量与分值分布,助力考生熟悉考试框架,合理分配答题时间精力,提升效率。同时,模拟题紧扣官方课程,能帮助考生精准定位知识盲点,如大模型架构原理和通义千问应用实践等重点内容,以便针对性完善知识体系。此外,通过练习模拟题,考生可掌握不同题型的解题思维与技巧,快速洞察复杂题目本质,提高答题准确率。

davidkorhenn的博客 4743

【ES6】JavaScript函数-参数的默认值-与解构赋值的结合使用-对arguments的影响-默认参数作用域与暂时性死区

文章目录1. 形参初始化2. 与解构赋值结合使用参考资料 1. 形参初始化 ES6 之前,不能直接为函数的参数指定默认值,只能这样做 function log(x, y) { if (typeof y === 'undefined') { y = 'World'; } console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China ES6 允许为函数的参数设置默认值,即直接写在参数

YK菌的博客 617

从Starlink看NTN:SSB波束数量少,用户体验真的会差吗?

当SpaceX的Starlink以每月新增上百颗卫星的速度扩张其星座时,一个有趣的技术现象正在引发行业讨论:为何这个全球最大的低轨卫星网络选择使用相对较少的波束数量?波束数量的选择远非简单的技术参数,而是系统设计哲学、商业策略与终端用户体验的复杂平衡。传统地面网络可以依赖密集基站实现精准覆盖,而卫星通信必须面对一个根本性挑战:如何在数百公里的高空,用有限的射频资源服务广阔的地理区域。当我们在撒哈拉沙漠测试不同波束方案时,发现了一个关键洞见:最佳波束数量不是固定的技术参数,而是随网络发展阶段变化的动态值。

weixin_32308101的博客 332

ES6深入学习(二)关于函数

一、函数参数的默认值 ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法。对于函数的命名参数如果不显示传值则默认为undefined function foo(x,y) { x = x || 'Hello'; y = y || 'World'; console.log(x,y) } foo(0,'Thea');//Hello Thea 复制代码这种写法的确定在于...

weixin_34292924的博客 275

TLSv1.0与TLSv1.1安全漏洞深度解析与实战修复指南

本文深度解析TLSv1.0与TLSv1.1的安全漏洞,包括POODLE和BEAST攻击原理,并提供实战修复指南。通过禁用老旧协议、配置安全加密套件和网络层防护措施,有效提升系统安全性。文章还针对无法立即升级的场景,给出了补偿性防御方案,帮助管理员全面应对传输层安全风险。

weixin_29322855的博客 206

基于深度学习的人脸识别考勤管理系统,采用YOLOv11和Dlib算法实现人脸识别和考勤签到,前台人脸识别和签到系统 + 后台人脸和考勤管理系统,全网独发

基于深度学习的口罩人脸识别的考勤管理系统,采用YOLOv11和Dlib算法实现人脸识别和考勤签到,前台人脸识别和签到系统 + 后台人脸和考勤管理系统,全网独发

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1825

函数的默认值与动态参数arguments的总结

在js函数与作用域,了解函数基本概念中,我们发现当函数的实参有一个没有上传的时候,对应的形参time展示的值就是undefined,如下代码所示: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scal...

zhoumouren88的博客 347

25、BDS-3卫星信号性能与PPP-B2b增强消息完整性分析

本文对BDS-3卫星信号性能及PPP-B2b增强消息的完整性进行了系统分析。评估了MEO、IGSO和GEO卫星的轨道与时钟精度,得出BDS-3总体SISRE为0.25 m,系统完整性可覆盖99.999%的误差。分析表明SIS中断主要由时钟调整和轨道机动引起,个别卫星存在因境外监测受限导致的非计划中断。通过自研解码软件对PPP-B2b增强消息进行采集与解析,实验结果显示BDS-3和GPS的平均历元完整性率均高于98.55%,其中卫星掩码和时钟校正消息的完整性率超过99.8%。研究还发现IGSO卫星相比MEO卫

quiet的专栏 145

关于ES6的默认参数对arguments的结果的影响

案列一: function f1(arr){     arr[0]=arr[2]; } function f2(a,b,c=3){     b=2     c=10;     f1(arguments)     console.log(arguments);     console.log(a+b+c); } f2(1,1,1); 打印结果 Arguments(3) [1, 1, 1, calle...

qq_28019937的博客 999

【100%通过率】华为OD机试真题 Python 实现【网上商城优惠活动 / 模拟商场优惠打折II】

某网上商场举办优惠活动,发布了满减、打折、无门槛3种 优惠券,分别为: 1:每满100元优惠10元,无使用数限制,如100~199元可以使用1张减10元,200~299可使用2张减20元,以此类推; 2:92折券,1次限使用1张,如100元,则优惠后为92元, 3:无门槛5元优惠券,无使用数限制,直接减5元。

MISAYAONE的博客 9371

如何在MacBook上安装部署原生openclaw

本文介绍了在MacBook上安装OpenClaw的详细步骤:首先通过curl或国内镜像源安装nvm和Node.js(版本≥22),然后使用nvm安装Node.js 24并验证安装。接着通过脚本快速安装OpenClaw,完成安装后选择Qwen作为AI模型并进行OAuth认证。配置过程中可跳过联网搜索和Agent技能设置,最后选择Web界面作为呈现方式。安装完成后,系统会启动openclaw-gateway进程并打开Web界面,用户可通过简单的"hello"指令开始与AI对话。目前基础功能已

木简熙的博客 810

ES6函数

ES6中我们来看下函数有哪一些改变: 一、函数的默认值: 在ES5中设置默认值是在函数体内: 如果没传递参数 function test(num,callback){ var num = num || 10;//不传递参数默认是10 var callback = callback || function (param){console.log(param*10)}; ...

记录点滴 1339

目标检测YOLO实战应用案例100讲-【目标检测】缺陷检测(二)

在工业生产中总是经常遇到裂痕、划痕等产品的表面缺陷问题,机器视觉行业对于表面检测相比前几年已经有很大的突破,对于产品表面的划伤、污迹等检测已经不再是难点。在金属、玻璃、手机屏幕、液晶板等行业表面检测上应用广泛。但由于该类缺陷形状不规则、深浅对比度低,而且往往会被产品表面的自然纹理或图案所干扰。因此,表面划痕缺陷检测对于正确打光、相机分辨率、被检测部件与工业相机的相对位置、复杂的机器视觉算法等要求非常高。

qq_36130719的博客 728

es6 参数arguments用法

ES5中模拟参数默认值的方式: function makeRequest(url, timeout, callbak) { timeout = timeout || 2000; callback = callback || function() {}; //函数剩余部分 } 本例中,timeout和callback其实都是可选参数。参数未提供时会被替换成默认值。但是这个方式有...

hsany330的专栏 3033

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

JavaScript ES6 函数默认参数及暂时性死区

我们都知道,ES6里函数默认参数是有暂时性死区的,首先我们先来看看关于函数默认参数的注意点: ●参数默认值的注意点: 1,在使用默认参数时,arguments 对象的值不反映参数的默认值,它只反映传给参数的默认值 function test(a=1){//这我们使用函数参数默认值a=1 console.log(arguments[0])//我们这里在控制台输出arguments[0]来看看能不能出来1 } test() 这里我们可以看到 输出的是undefined 2,与严格模式

m0_66509866的博客 643

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

es6参数默认值

使用 在书写形参时,直接给形参赋值。如果调用函数时,没有给对应的参数赋值,那么则会自动使用默认值。 例子 1.使用默认值 function test(a, b) { console.log(a, b); } test(undefined,2); 2.可以用参数赋值 function test(a, b = a) { console.log(a, b); } test(unde...

qq_41938120的博客 744

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JavaScript 函数参数——深入理解参数传递、参数默认值、参数的收集与展开

函数允许我们将数据传递进去,通过传递的数据从而影响函数执行结果,使函数更灵活、复用性更强。 – 一、参数传递 function foo(a, b) { console.log([a, b]); } foo(1, 2); // 输出 [1, 2] 这个例子中,a 和 b 属于函数中的局部变量,只能在函数中访问。调用函数时,传递的数据会根据位置来匹配对应,分别赋值给 a 和 b。 创建函数时,function 函数名 后面括号中设定的参数被称为形参;调用函数时,函数名后面括号中传入的参数被称为实参。

黄凯达的博客 3万+

ES6笔记( 三 )- Function

目录: 参数默认值 ES6之前我们给函数参数默认值的方式 使用更加舒服的ES6参数默认值 【 扩展 】ES6参数默认值对arguments的影响 【 扩展 】参数默认值和暂时性死区 剩余参数 ES6之前处理不限定参数函数的方法 剩余参数运算符 new.target ES5检测是否通过new操作符使用构造函数的方法 ES6的解决方案 箭头函数 ES5关于函数this指向的一些烦恼和骚操作 箭头函数混脸熟 箭头函数特点 箭头函数的最佳实践 【 扩展 】关于this指向问题 参数默认值

前端攻城狮Dannis 559

ES6——函数

函数一、参数默认值1.使用2.对arguments的影响二、剩余参数三、展开运算符1.对数组展开2.对对象展开3.运用1.柯里化3.比大小3.输入输出四、函数用图五、箭头函数1.使用箭头函数2.注意3.应用 一、参数默认值 1.使用 在书写形参时,直接给形参赋值,附的值即为默认值 这样一来,当调用函数时,如果没有给对应的参数赋值(给它的值是undefined),则会自动使用默认值。 function test(a=1,b=2){ console.log(a+b); } test();// 3 注意

xun__xing的博客 879

ES6笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、扩展运算符扩展参数二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、扩展运算符 ECMAScript 6 新增了扩展操作符,使用它可以非常简洁地操作和组合集合数据。 扩展运算符( spread )是三个点 …

weixin_51155543的博客 540

es6基本内容

一。JavaScript中let、const、var 的区别 1.是否存在变量提升? var声明的变量存在变量提升。即变量可以在声明之前调用,值为undefined。 let和const不存在变量提升。即它们所声明的变量一定要在声明后使用,否则报ReferenceError错。 2.是否存在暂时性死区? let和const存在暂时性死区。即只要块级作用域内存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。 在代码块内,使用let命令声明变量之前,该变量都是不可用的。 暂时性死区的本质就是,

zbb1212的博客 257

ES6函数第一篇:参数篇

1.默认参数 (1)使用 在书写型参数,直接给形参进行赋值的值成为默认值,如此,在调用函数时,如果没有给对应的参数赋值(即它的值为undefined),则会自动使用默认值 (2)对arguments的影响 只要给函数加上参数默认值,该函数会自动变成严格模式下的规则,即arguments和形参脱离 (3)暂时性死区的问题 形参和ES6中的 let / const 声明一样,具有作用域,并...

桃花扇的博客 668

ES6_08- 函数的扩展

例如:第一章 Python 机器学习入门之pandas的使用。

qq_45599475的博客 693

ES6(八)函数的扩展

函数的扩展 函数参数的默认值 基本用法 ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。 function log(x, y = 'World') { console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // Hello 与解构赋值默认值结合使用 function foo({x, y = 5}) { console.log(x

weixin_44959855的博客 284

ES6函数扩展:箭头函数、默认参数与尾调用优化

函数是JavaScript编程的核心概念,其设计直接影响代码的可读性和执行效率。ES6对函数系统进行了全面升级,通过词法作用域绑定解决了传统函数中this指向的痛点问题。在工程实践中,箭头函数通过简化回调写法显著提升了开发效率,而默认参数和剩余参数则使API设计更加健壮。这些特性特别适合现代前端框架(如React/Vue)的组件开发,配合尾调用优化还能提升递归性能。理解函数扩展原理有助于掌握函数式编程范式,同时也是面试中高频考察的JS核心知识点。

weixin_33858336的博客 1188
上一篇: ES6 模板字符串 模板字符串标记 概述
下一篇: ES6 剩余参数 展开运算符
苟盛
博客等级 码龄7年 13粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值