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

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

相关推荐
东东2335 分钟前
GeoJSON 介绍:Web 地图数据的通用语言
前端·javascript·json
之恒君5 分钟前
Promise.resolve(x) 等同 new Promise(resolve => resolve(x))?
前端·promise
Tzarevich6 分钟前
JavaScript 原型链:理解对象继承的核心机制
javascript·promise
亮子AI7 分钟前
【Javascript】jsondiffpatch检测到子节点改变了,父节点会标记为改变吗?
开发语言·前端·javascript
caron411 分钟前
C++ 推箱子游戏
开发语言·c++·游戏
JienDa13 分钟前
JienDa聊PHP:PHP从入门到精通—PHP开发入门:从环境搭建到第一个程序
开发语言·php
T___T24 分钟前
写着写着,就踩进了 JavaScript 的小坑
前端·javascript·面试
ERP老兵-冷溪虎山25 分钟前
Python/JS/Go/Java同步学习(第五十篇半)四语言“path路径详解“对照表: 看完这篇定位文件就通透了(附源码/截图/参数表/避坑指南)
java·javascript·python·golang·中医编程·编程四语言同步学·path路径详解
月亮慢慢圆29 分钟前
首字母模糊匹配
前端
一个有理想的摸鱼选手29 分钟前
CesiumLite-在三维地图中绘制3D图形变得游刃有余
前端·gis·cesium