ความแตกต่างระหว่าง console.log และ alert ใน javascript
Dec 15 2020
let menu = {
width: 200,
height: 300,
title: "My menu"
};
function multiplyNumeric(obj) {
for (let key in obj) {
if (typeof obj[key] == "number") {
obj[key] *= 2;
}
}
}
multiplyNumeric(menu);
alert(menu);
console.log(menu)
ฉันพบปัญหานี้
ดังนั้นในตอนท้ายของรหัสเมื่อฉันแจ้งเตือน (เมนู); ฉันได้รับ [object Object]
แต่เมื่อฉันทำ console.log (เมนู); ฉันได้รับ {width: 400, height: 600, title: 'My menu'} ซึ่งเป็นสิ่งที่ฉันต้องการ อะไรทำให้เกิดความแตกต่าง?
คำตอบ
3 IcyBloom Dec 15 2020 at 14:10
นั่นเป็นเพราะmenuตัวมันเองเป็น Object
เมื่อเราใช้การแจ้งเตือนกล่องป๊อปอัปจะเปิดขึ้นพร้อมข้อความที่กำหนดซึ่งคาดว่าจะมีสตริง เมื่อส่งผ่าน Object คุณจะได้รับ[object Object]
ลองalert(JSON.stringify(menu))ดูเอาต์พุตสตริงแบบเต็มแทน
1 Ashish Dec 15 2020 at 14:10
ถ้าคุณอ่านถูกต้องในw3schools Alert ใช้สตริงเป็นพารามิเตอร์และเมนูของคุณไม่ใช่สตริงเป็นวัตถุดังนั้นแทนที่จะแสดงเมนูจะแสดงประเภทของเมนู
คุณสามารถทำสิ่งนี้:
alert(JSON.stringify(menu));