首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript confirm() 回傳值應用:輸入姓名、判斷性別、彈窗問候完整範例

     編輯:程式設計綜合問答

需求拆解

  1. prompt() 讓使用者輸入姓名。
  2. confirm() 詢問「你是男士嗎?」,回傳 true (確定/男) 或 false (取消/女)。
  3. 根據回傳值決定稱呼:「先生」或「女士」,最後 alert() 顯示完整問候。

原始碼錯誤分析

  • retune 拼字錯誤,應為 return。
  • 函式 judgeGender() 內再次呼叫 confirm(),會彈出兩次對話框。
  • alert("你好,"+name+function judgeGender()+"!") 試圖將函式物件當字串串接,語法錯誤。
  • 未處理使用者取消 prompt() (回傳 null) 的情況。

修正版完整程式碼

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>確認對話框示範</title>
</head>
<body>
<script>
// 1. 輸入姓名
var name = prompt("請輸入您的姓名:", "訪客");
// 若使用者按取消或關閉,name 為 null,給預設值
if (name === null || name.trim() === "") name = "訪客";

// 2. 判斷性別 (只呼叫一次 confirm)
var isMale = confirm("您是男士嗎?");

// 3. 根據布林值決定稱呼
var title = isMale ? "先生" : "女士";

// 4. 顯示結果
alert("你好," + name + title + "!");
</script>
</body>
</html>

進階寫法:封裝成可復用函式

function greetUser() {
    var name = prompt("請輸入您的姓名:", "訪客") || "訪客";
    var isMale = confirm("您是男士嗎?");
    var title = isMale ? "先生" : "女士";
    return "你好," + name + title + "!";
}

// 使用
alert(greetUser());
// 或寫入頁面
document.getElementById("output").textContent = greetUser();

關鍵知識點總結

函式回傳值說明
prompt(msg, default)字串 / null使用者輸入文字;取消/關閉回傳 null
confirm(msg)true / false確定回傳 true,取消/關閉回傳 false
alert(msg)undefined僅顯示訊息,無回傳值

最佳實踐建議

  1. 永遠檢查 prompt() 回傳 null,給予預設值,避免 "你好,null先生" 尷尬輸出。
  2. confirm() 僅用於簡單是/否決策,複雜表單請用 <form> + 自訂 Modal。
  3. 現代專案建議使用 SweetAlert2、Bootstrap Modal 等非阻塞、可樣式化的替代方案。

總結

confirm() 回傳布林值,直接用三元運算子或 if/else 即可決定後續邏輯。將輸入、判斷、輸出三步驟線性撰寫,比嵌套函式更清晰、不易出錯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved