JavaScript function默认参数赋值前后顺序差异

1、(num1,num2=num1) 当传值仅传一个参数时,先给到第一个参数即num1,num1再赋值给num2,

复制代码
function sum(num1, num2 = num1) {
  console.log(num1 + num2)
}
sum(10)//20
sum(10,3)//13

2、(t2=t1,t1) 当传值仅有一个参数时,先给到第一个参数即t2,可t1参数的值尚未初始化,所以t1也就是undefined

复制代码
function total(t2 = t1,t1) {
  console.log(t1 + t2)
}
total(10)//NaN  参数的值尚未初始化,导致的错误
total(10,3)//13

容易看错的默认赋值情况:(如果调用传参有值,默认值是无效的)

复制代码
function test(m = n, n = 2) {
    console.log(m, n)
}
test() // 报错 Uncaught ReferenceError: Cannot access 'n' before initialization
test(3) // 3 2
test(3, 4) // 3 4
相关推荐
呆头鸭L1 分钟前
快速上手Electron
前端·javascript·electron
代码游侠2 分钟前
学习笔记——MQTT协议
开发语言·笔记·php
helloworld也报错?7 分钟前
保存网页为PDF
前端·javascript·pdf
渡我白衣7 分钟前
计算机组成原理(13):多路选择器与三态门
开发语言·javascript·ecmascript·数字电路·计算机组成原理·三态门·多路选择器
汐泽学园9 分钟前
基于Vue的家乡旅游美食信息网站设计与实现
javascript·vue.js·html·旅游·美食
HUST9 分钟前
C语言 第十讲:操作符详解
c语言·开发语言
田里的水稻14 分钟前
matlab_绘图线条颜色显示和点的形状显示
开发语言·matlab
CCPC不拿奖不改名17 分钟前
python基础:python语言的数据结构+面试习题
开发语言·数据结构·python·面试
Tan385117 分钟前
陪读蛙 Read Frog 配置 API 教程|低成本实现高质量翻译
开发语言·机器翻译·自动翻译·api key·tensdaq·陪读蛙·read frog
凑凑的小手办19 分钟前
C语言基础(一)
c语言·开发语言