不设默认值(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

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

相关推荐
UXbot10 分钟前
帮助企业低门槛开展AI应用开发的平台推荐
前端·低代码·ui·交互·产品经理·原型模式·web app
神仙别闹15 分钟前
基于C++ 实现 BP 神经网络
开发语言·c++·神经网络
疯狂成瘾者31 分钟前
Java 集合 LinkedList 详解:链表结构、常用方法和队列使用
java·开发语言·链表
云梦泽࿐้36 分钟前
变量与数据类型:Python世界的基石
开发语言·python
橘子星36 分钟前
基于 Vite 的多模态生图前端工程实践
前端·javascript·人工智能
想要成为糕糕手37 分钟前
从零到一:CSS 3D 旋转立方体完全指南
前端·css·canvas
QK_0037 分钟前
C语言 static 关键字三大作用
c语言·开发语言
疯狂的魔鬼38 分钟前
多角色督办任务详情页:从权限矩阵到组件拆分的完整实现
前端·vue.js·架构
恋猫de小郭39 分钟前
Android 17 正式版发布,全新 AI 和各种破坏性更新
android·前端·flutter
开发小能手-roy43 分钟前
Lambda表达式性能陷阱:避坑指南与JIT编译优化分析
开发语言·python