Post

JavaScript alert、confirm、prompt、console.log 差別

在開發 JavaScript 應用程式時,我們經常需要與使用者互動或除錯。JavaScript 提供了一些內建的方法來達到這些目的,本文將介紹 alert、confirm、prompt 和 console.log 這四種常用的方法,並說明它們的使用情境和差異。

JavaScript 原生對話框

  • alertconfirmprompt 都可以產生對話框
  • 這些對話框有阻塞作用,不點選項,後續程式碼無法繼續執行
  • 只能輸出字串,所以會自動呼叫 toString() 方法

alert

alert 方法用來顯示一個簡單的提示框,裡面只有一條訊息和一個 “確定” 按鈕。當 alert 框出現時,使用者必須點擊 “確定” 按鈕才能繼續操作。

語法:

1
alert(message);

例子:

1
alert("哈囉啊");

使用情境

alert 常用來顯示簡單的通知或警告訊息。例如,當使用者提交表單但有必填欄位未填寫時,可以使用 alert 提醒使用者。

confirm

confirm 方法顯示一個帶有 “確定” 和 “取消” 按鈕的提示框。這個方法會返回一個布林值,表示使用者的選擇(true 表示點擊 “確定”,false 表示點擊 “取消”)。

語法:

1
const result = confirm(message);

例子:

1
2
3
4
const userConfirmed = confirm("確定要離開嗎?");
if (userConfirmed) {
  alert("好喔掰掰"); // 按下確定才會顯示"好喔掰掰"
}

使用情境

confirm 常用於需要使用者進行二選一決定的情況,例如刪除操作、退出確認等。

prompt

prompt 方法顯示一個帶有文字輸入框的提示框,並且包含 “確定” 和 “取消” 按鈕。這個方法會返回使用者輸入的內容(字串),如果使用者點擊 “取消”,則返回 null

  • 如果點取消按鈕,會回傳 "null",是字串型態!

語法:

1
2
const userInput = prompt(message);
const userInput = prompt(message, default); // 第二個參數為預設值

例子:

1
2
3
4
5
var name = prompt("你叫啥名?", "");

if (name !== "null" && name !== "") {
  alert("你好 " + name);
}

使用情境

prompt 用於需要使用者輸入一些資料的情況,例如獲取使用者的名字、意見或其他資料。

console.log

console.log 方法用來在瀏覽器的控制台輸出訊息。這對於除錯和開發過程中特別有用,因為它可以顯示變數的值、錯誤訊息和其他重要資訊。

語法:

1
2
console.log(any);
console.log(anyMessage1, anyMessage2);  // 可以用 , 一直串下去

例子:

1
console.log("hi elaine!");

使用情境

console.log 是開發過程中最常用的除錯工具之一,用於檢查變數值、程式流程、錯誤訊息等。

除了 console.log 之外,JavaScript 的 console 物件還提供了許多其他有用的方法來協助我們進行除錯和記錄,可以參考我另一篇文章 除了 console.log 之外你還知道哪些 console

常見問題

使用 alert 時,出現 [object Object]

alert 只能輸出字串,所以會自動呼叫 toString() 方法,遇到這種情況就是因為你使用 alert 印出物件

1
2
var obj1 = { name: "elaine" };
alert(obj1);

alert 可以換行嗎?

  • HTML 的 <br> 換行符號,並不會產生換行效果
1
alert("哈囉!<br>我是 elaine");

  • \n 可以成功的換行
1
alert("哈囉!\n我是 elaine");

參考資料

This post is licensed under CC BY 4.0 by the author.