Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

วิธีแปลง String เป็น Boolean ใน JavaScript

แปลง String เป็น Boolean ได้หลายวิธี แต่ต้องระวัง: Non-empty string ทุกตัวเป็น true รวมถึง "false", "0", " "

ตัวอย่าง (วิธีเดิม)

<html>
  <head>
    <title>JavaScript Boolean</title>
  </head>
  <body>
    <script>
      var answer = true;
      document.write(answer);
      var result = (answer == 'true');
      document.write("<br>" + result);
    </script>
  </body>
</html>

วิธีที่ถูกต้องต่างๆ

วิธีโค้ด"true"→"false"→""→"0"→
Strict comparestr === "true"truefalsefalsefalse
JSON.parseJSON.parse(str.toLowerCase())truefalseErrorError
Boolean()Boolean(str)truetruefalsetrue
!!!!strtruetruefalsetrue

ฟังก์ชันแปลงที่แนะนำ

function stringToBool(str) {
  if (typeof str !== 'string') return Boolean(str);
  const lower = str.toLowerCase().trim();
  if (lower === 'true' || lower === '1' || lower === 'yes' || lower === 'on') return true;
  if (lower === 'false' || lower === '0' || lower === 'no' || lower === 'off') return false;
  return Boolean(str); // fallback: non-empty = true
}

console.log(stringToBool("true"));   // true
console.log(stringToBool("false"));  // false
console.log(stringToBool("1"));      // true
console.log(stringToBool("0"));      // false
console.log(stringToBool("yes"));    // true
console.log(stringToBool(""));       // false

สรุป: อย่าใช้ Boolean("false") เพราะจะได้ true ต้องเปรียบเทียบ string โดยตรง