function updateBonus(id, bgName, buName) {
alert(id, bgName, buName); // 僅彈出 id 的值
alert(bgName); // 顯示 undefined
}
**`window.alert(message)` 僅接受一個字串參數**。
因為 `id` 參數確實有值傳入。`alert(id, bgName, buName)` 實際執行 `alert(id)`,所以彈出 `id` 的值。
**調用處傳遞的實參 `bgName` 為 `undefined`**,或函數簽名與調用不匹配 (如漏傳參數)。
// 調用示例
updateBonus(101); // 只傳 1 個參數
// 函數內: id=101, bgName=undefined, buName=undefined
| 方法 | 代碼 | 輸出示例 |
|---|---|---|
| 模板字串 (ES6) | `alert(\`id=${id}, bgName=${bgName}, buName=${buName}\`)` | `id=101, bgName=Sales, buName=East` |
| 字串拼接 | `alert('id=' + id + ', bgName=' + bgName + ', buName=' + buName)` | 同上 |
| console.log (推薦開發調試) | `console.log('updateBonus:', {id, bgName, buName})` | Console 顯示物件可展開 |
| JSON 序列化 | `alert(JSON.stringify({id, bgName, buName}, null, 2))` | 格式化 JSON 字串 |
function updateBonus(id, bgName, buName) {
// 1. 必填參數驗證
if (id == null || bgName == null || buName == null) {
console.error('參數缺失', {id, bgName, buName});
return; // 或拋出錯誤
}
// 2. 正確顯示多值
alert(`將重新生成 BG(${bgName}), BU(${buName}) 績效獎金數據`);
// 3. 後續邏輯...
}