⊗jsPmBsATC 43 of 505 menu

การแปลงชนิดข้อมูลอัตโนมัติ

ดังที่คุณทราบแล้วว่า สตริงใน JavaScript ควรอยู่ในเครื่องหมายอัญประกาศ อาจมีกรณีที่อักขระทั้งหมดของสตริงเป็นตัวเลข:

let a = '123';

ในกรณีนี้ ตัวแปร a ก็เป็นสตริงเช่นกัน แต่มีรายละเอียดบางประการ

รายละเอียดนั้นมีดังนี้: หากดำเนินการทางคณิตศาสตร์ใดๆ บนสตริงที่มีตัวเลข การดำเนินการนั้นจะถูกดำเนินการเสมือนว่าเรามีตัวเลขจริงๆ ไม่ใช่สตริง:

alert('2' * '3'); // จะแสดง 6

ในกรณีนี้ JavaScript เห็นว่าเรากำลังพยายามดำเนินการที่ไม่ได้รับอนุญาตสำหรับสตริง แต่ได้รับอนุญาตสำหรับตัวเลข

มันยังเห็นว่าสตริงของเราจริงๆ แล้วเป็นตัวเลขในเครื่องหมายอัญประกาศ ดังนั้น JavaScript จึงแปลงสตริงเหล่านี้เป็นตัวเลขโดยอัตโนมัติและดำเนินการทางคณิตศาสตร์ที่เกี่ยวข้องบนสตริงเหล่านั้น

วิธีนี้ใช้ได้หากในสตริงของเรามีแต่ตัวเลขเท่านั้น หากมีตัวอักษรอย่างน้อยหนึ่งตัว - JavaScript จะถือว่าการดำเนินการไม่ถูกต้องและทำให้ผลลัพธ์เป็นค่า NaN:

alert('2' * '3s'); // จะแสดง NaN

นอกจากนี้ การแปลงอัตโนมัติจะเกิดขึ้นหากการดำเนินการถูกต้องทางคณิตศาสตร์ แต่ไม่ได้รับอนุญาตสำหรับสตริง

ตัวอย่างเช่น สตริงไม่สามารถคูณ หาร ลบได้ (แต่ตัวเลขทำได้) ดังนั้นในการดำเนินการดังกล่าวทั้งหมด สตริงที่มีตัวเลขจะถูกแปลงเป็นตัวเลขโดยอัตโนมัติ

อย่างไรก็ตาม สตริง เช่นเดียวกับตัวเลข สามารถบวกกันได้โดยใช้ตัวดำเนินการ + ซึ่งหมายความว่าในกรณีของการบวก จะไม่มีการแปลงอัตโนมัติ:

let a = '1' + '2'; alert(a); // จะแสดง '12' - เกิดการบวกสตริง

หากพจน์หนึ่งเป็นตัวเลข และอีกพจน์เป็นสตริง สตริงจะเป็นฝ่ายชนะเสมอ:

let a = 1 + '2'; alert(a); // จะแสดง '12'

ในกรณีเช่นนี้ JavaScript จะแปลงตัวเลขเป็นสตริงโดยอัตโนมัติและดำเนินการบวกสตริง

อย่างไรก็ตาม มีรายละเอียดเมื่อมีพจน์มากกว่าสองพจน์: ในกรณีนี้ การแปลงเป็นประเภทข้อมูลเฉพาะจะขึ้นอยู่กับลำดับของการดำเนินการ

ในตัวอย่างต่อไปนี้ 2 และ 3 จะถูกบวกกันเป็นตัวเลขก่อน จากนั้นผลลัพธ์จะถูกบวกเข้ากับสตริง '1' เป็นสตริง '5' ซึ่งสุดท้ายจะได้สตริง '15':

let a = '1' + (2 + 3); alert(a); // จะแสดง '15'

หากเอาเครื่องหมายวงเล็บออก ทุกอย่างจะถูกบวกจากซ้ายไปขวา นั่นคือก่อนอื่นตัวเลข 2 จะถูกบวกเข้ากับสตริง '1' และผลลัพธ์ที่ได้คือสตริง '12' จากนั้นตัวเลข 3 จะถูกบวกเข้ากับสตริงนี้และผลลัพธ์ที่ได้คือสตริง '123':

let a = '1' + 2 + 3; alert(a); // จะแสดง '123'

แต่ในตัวอย่างต่อไปนี้ ตัวเลข 2 และ 3 อยู่ที่จุดเริ่มต้น ดังนั้นก่อนอื่นพวกมันจะถูกบวกกันเป็นตัวเลข ได้ผลลัพธ์เป็นตัวเลข 5 จากนั้นสตริง '1' จะถูกบวกเข้ากับตัวเลขนี้ ได้ผลลัพธ์เป็นสตริง '51':

let a = 2 + 3 + '1'; alert(a); // จะแสดง '51'

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = '5' + '2'; alert(a);

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = '5' + 2; alert(a);

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = 5 + '2'; alert(a);

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = 5 + 2; alert(a);

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = '5' * '2'; alert(a);

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = '5' - '2'; alert(a);

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = '5' / '2'; alert(a);

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = '5' % '2'; alert(a);

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = '5s' * '2'; alert(a);

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = '5s' + '2'; alert(a);

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = (-'5') + (-'2'); alert(a);

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = '5' * 1 + '2' * 1; alert(a);

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = '5' * '1' + '2' * '1'; alert(a);

โดยไม่ต้องรันโค้ด จงกำหนดว่าจะแสดงอะไรบนหน้าจอ:

let a = '' + 3 + 1; alert(a);
ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ