不设默认值(js的问题)

给动态变量设置默认值是一个非常好的实践,可以预防发生意想不到的错误。下面是一个常见错误的例子:

html 复制代码
function addTwoNumbers(a, b) {
​​    console.log(a + b);
​​}
​​addTwoNumbers();
​​// NaN

结果是 "NaN",因为 a 是未赋值 "undefined",b 也是未赋值 "undefined"。如果设置了默认值,就可以避免这样的错误。比如:

html 复制代码
function addTwoNumbers(a, b) {
​​    if (!a) a = 0;
​​    if (!b) b = 0;
​​    console.log(a + b);
​​}
​​addTwoNumbers();
​​// 0

或者,可以像下面这样,使用ES6中引入的默认值特性:

html 复制代码
​​function addTwoNumbers(a = 0, b = 0) {
​​    console.log(a + b);
​​}
​​addTwoNumbers();
​​// 0

这个例子虽然很小,但是强调了默认值的重要性。另外,当预期的值没有出现时,开发者可以提供错误信息或警告信息。

相关推荐
cg5017几秒前
Vue回调函数中的this
前端·javascript·vue.js
前端太佬2 分钟前
从零到一实现扫码登录:一个前端菜鸟的踩坑实录
前端·javascript·架构
云上空10 分钟前
C#初级知识总结
开发语言·c#
yuanmenglxb200413 分钟前
微信小程序核心技术栈
前端·javascript·vue.js·笔记·微信小程序·小程序
爱编程的鱼13 分钟前
如何让 HTML 文件嵌入另一个 HTML 文件:详解与实践
前端·html
_092717 分钟前
Vue 2 与 Vue 3 的核心区别及 Vue 3 新特性详解
前端
David凉宸19 分钟前
一文带你使用Vue完成移动端(apk)项目
前端
纪元A梦28 分钟前
华为OD机试真题——绘图机器(2025A卷:100分)Java/python/JavaScript/C++/C/GO最佳实现
java·javascript·c++·python·华为od·go·华为od机试题
钢铁男儿31 分钟前
C# 深入理解类:面向对象编程的核心数据结构
开发语言·数据结构·c#
会飞的鱼先生31 分钟前
Vue3的内置组件 -实现过渡动画 TransitionGroup
前端·javascript·vue.js·vue