ประเภทข้อมูลจาวาสคริปต์


สารบัญ

    แสดงสารบัญ

JavaScript มี 8 ประเภทข้อมูล

1. สตริง
2. หมายเลข
3. บิ๊กจินต์
4. บูลีน
5. ไม่ได้กำหนด
6. ว่าง
7. สัญลักษณ์
8. วัตถุ

ประเภทข้อมูลวัตถุ

ประเภทข้อมูลวัตถุสามารถประกอบด้วย:

1. วัตถุ
2. อาร์เรย์
3. ออกเดท

ตัวอย่าง

// Numbers:
let length = 16;
let weight = 7.5;

// Strings:
let color = "Yellow";
let lastName = "Johnson";

// Booleans
let x = true;
let y = false;

// Object:
const person = {firstName:"John", lastName:"Doe"};

// Array object:
const cars = ["Saab", "Volvo", "BMW"];

// Date object:
const date = new Date("2022-03-25"); 

บันทึก

ตัวแปร JavaScript สามารถเก็บข้อมูลประเภทใดก็ได้

แนวคิดของประเภทข้อมูล

ในการเขียนโปรแกรม ชนิดข้อมูลถือเป็นแนวคิดที่สำคัญ

เพื่อให้สามารถทำงานกับตัวแปรได้ สิ่งสำคัญคือต้องรู้อะไรบางอย่าง ประเภท.

หากไม่มีประเภทข้อมูล คอมพิวเตอร์จะไม่สามารถแก้ไขปัญหานี้ได้อย่างปลอดภัย:

let x = 16 + "Volvo";

มันสมเหตุสมผลไหมที่จะเพิ่ม "Volvo" เป็นสิบหก? มันจะผลิต. ผิดพลาดหรือจะเกิดผล?

JavaScript จะถือว่าตัวอย่างข้างต้นเป็น:

let x = "16" + "Volvo";

บันทึก

เมื่อเพิ่มตัวเลขและสตริง JavaScript จะถือว่าตัวเลขดังกล่าวเป็น เชือก

ตัวอย่าง

let x = 16 + "Volvo";

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript</h2>

<p>When adding a number and a string, JavaScript will treat the number as a string.</p>

<p id="demo"></p>

<script>
let x = 16 + "Volvo";
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>


ตัวอย่าง

let x = "Volvo" + 16;

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript</h2>

<p>When adding a string and a number, JavaScript will treat the number as a string.</p>

<p id="demo"></p>

<script>
let x = "Volvo" + 16;
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>


JavaScript ประเมินนิพจน์จากซ้ายไปขวา ลำดับที่แตกต่างกันได้ ให้ผลลัพธ์ที่แตกต่าง:

จาวาสคริปต์:

let x = 16 + 4 + "Volvo";

ผลลัพธ์ :

20Volvo

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript</h2>

<p>JavaScript evaluates expressions from left to right. Different sequences can produce different results:</p>

<p id="demo"></p>

<script>
let x = 16 + 4 + "Volvo";
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>


จาวาสคริปต์:

let x = "Volvo" + 16 + 4;

ผลลัพธ์ :

Volvo164

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript</h2>

<p>JavaScript evaluates expressions from left to right. Different sequences can produce different results:</p>

<p id="demo"></p>

<script>
let x = "Volvo" + 16 + 4;
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>


ในตัวอย่างแรก JavaScript ถือว่า 16 และ 4 เป็นตัวเลข จนกว่าจะถึง "Volvo"

ในตัวอย่างที่สอง เนื่องจากตัวถูกดำเนินการตัวแรกคือสตริง ตัวถูกดำเนินการทั้งหมดจึงเป็นเช่นนั้น ถือเป็นสตริง



ประเภท JavaScript เป็นแบบไดนามิก

JavaScript มีประเภทไดนามิก ซึ่งหมายความว่าสามารถใช้ตัวแปรเดียวกันได้ ที่จะถือ ประเภทข้อมูลที่แตกต่างกัน:

ตัวอย่าง

let x;       // Now x is undefined
x = 5;       // Now x is a Number
x = "John";  // Now x is a String

สตริงจาวาสคริปต์

สตริง (หรือสตริงข้อความ) คือชุดอักขระ เช่น "John Doe"

สตริงถูกเขียนด้วยเครื่องหมายคำพูด คุณสามารถใช้เครื่องหมายคำพูดเดี่ยวหรือคู่:

ตัวอย่าง

// Using double quotes:
let carName1 = "Volvo XC60";

// Using single quotes:
let carName2 = 'Volvo XC60';

คุณสามารถใช้เครื่องหมายคำพูดภายในสตริงได้ ตราบใดที่มันไม่ตรงกับเครื่องหมายคำพูด ล้อมรอบสตริง:

ตัวอย่าง

// Single quote inside double quotes:
let answer1 = "It's alright";
 

// Single quotes inside double quotes:
let answer2 = "He is called 'Johnny'";

// Double quotes inside single quotes:
let answer3 = 'He is called "Johnny"';

คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับ สตริง ในบทแนะนำนี้ในภายหลัง


หมายเลขจาวาสคริปต์

หมายเลข JavaScript ทั้งหมดจะถูกจัดเก็บเป็นตัวเลขทศนิยม (จุดลอยตัว)

ตัวเลขสามารถเขียนโดยมีหรือไม่มีทศนิยมก็ได้:

ตัวอย่าง

// With decimals:
let x1 = 34.00;

 
// Without decimals:
let x2 = 34; 

เครื่องหมายเอ็กซ์โปเนนเชียล

ตัวเลขขนาดใหญ่หรือเล็กพิเศษสามารถเขียนด้วยหลักวิทยาศาสตร์ได้ สัญกรณ์ (เอ็กซ์โปเนนเชียล):

ตัวอย่าง

let y = 123e5;    // 12300000
let z = 123e-5;   // 0.00123

บันทึก

ภาษาโปรแกรมส่วนใหญ่มีหลายประเภท:

จำนวนเต็ม (จำนวนเต็ม):
ไบต์ (8 บิต), สั้น (16 บิต), int (32 บิต), ยาว (64 บิต)

จำนวนจริง (จุดลอยตัว):
float (32 บิต), สองเท่า (64 บิต)

หมายเลข Javascript จะเป็นประเภทเดียวเสมอ:
สองเท่า (จุดลอยตัว 64 บิต)

คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับ ตัวเลข ในบทแนะนำนี้ในภายหลัง


จาวาสคริปต์บิ๊กอินท์

หมายเลข JavaScript ทั้งหมดจะถูกจัดเก็บในรูปแบบจุดลอยตัว 64 บิต

JavaScript BigInt เป็นประเภทข้อมูลใหม่ (ES2020) ที่สามารถใช้เพื่อเก็บค่าจำนวนเต็มที่มีขนาดใหญ่เกินกว่าจะแสดงได้ ด้วยหมายเลข JavaScript ปกติ

ตัวอย่าง

let x = BigInt("123456789012345678901234567890");

คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับ BigInt ในบทแนะนำนี้ในภายหลัง


จาวาสคริปต์บูลีน

บูลีนจะมีได้เพียงสองค่าเท่านั้น: true หรือ false

ตัวอย่าง

let x = 5;
let y = 5;
let z = 6;
(x == y)       
  // Returns true
(x == z)       // Returns 
  false

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Booleans</h2>

<p>Booleans can have two values: true or false:</p>

<p id="demo"></p>

<script>
let x = 5;
let y = 5;
let z = 6;

document.getElementById("demo").innerHTML =
(x == y) + "<br>" + (x == z);
</script>

</body>
</html>

Boolean มักใช้ในการทดสอบแบบมีเงื่อนไข

คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับ บูลีน ในบทช่วยสอนนี้ในภายหลัง


อาร์เรย์จาวาสคริปต์

อาร์เรย์ JavaScript ถูกเขียนด้วยวงเล็บเหลี่ยม

รายการอาร์เรย์จะถูกคั่นด้วยเครื่องหมายจุลภาค

รหัสต่อไปนี้ประกาศ (สร้าง) อาร์เรย์ที่เรียกว่า cars ซึ่งมีสามตัว รายการ (ชื่อรถ):

ตัวอย่าง

const cars = ["Saab", "Volvo", "BMW"];

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Arrays</h2>

<p>Array indexes are zero-based, which means the first item is [0].</p>

<p id="demo"></p>

<script>
const cars = ["Saab","Volvo","BMW"];

document.getElementById("demo").innerHTML = cars[0];
</script>

</body>
</html>

ดัชนีอาร์เรย์เป็นแบบศูนย์ ซึ่งหมายความว่ารายการแรกคือ [0] รายการที่สองคือ [1] และอื่นๆ

คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับ อาร์เรย์ ในบทแนะนำนี้ในภายหลัง


วัตถุจาวาสคริปต์

อ็อบเจ็กต์ JavaScript ถูกเขียนด้วยเครื่องหมายปีกกา {}

วัตถุ คุณสมบัติถูกเขียนเป็นคู่ของชื่อ:ค่า คั่นด้วยเครื่องหมายจุลภาค

ตัวอย่าง

const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Objects</h2>

<p id="demo"></p>

<script>
const person = {
  firstName : "John",
  lastName  : "Doe",
  age     : 50,
  eyeColor  : "blue"
};

document.getElementById("demo").innerHTML =
person.firstName + " is " + person.age + " years old.";
</script>

</body>
</html>

วัตถุ (บุคคล) ในตัวอย่างข้างต้นมีคุณสมบัติ 4 อย่าง: firstName, นามสกุล อายุ และสีตา

คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับ วัตถุ ในบทช่วยสอนนี้ในภายหลัง


ประเภทของผู้ดำเนินการ

คุณสามารถใช้ตัวดำเนินการ typeof ของ JavaScript เพื่อค้นหาประเภทได้ ของตัวแปร JavaScript

ตัวดำเนินการ typeof ส่งกลับประเภทของตัวแปรหรือนิพจน์:

ตัวอย่าง

typeof ""             // Returns 
 "string"
typeof "John"         // Returns 
 "string"
typeof "John Doe"     // Returns 
 "string"

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Operators</h1>
<h2>The typeof Operator</h2>
<p>The typeof operator returns the type of a variable or an expression.</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 
typeof "" + "<br>" +
typeof "John" + "<br>" + 
typeof "John Doe";
</script>
</body>
</html>


ตัวอย่าง

typeof 0              // Returns 
 "number"
  typeof 314            // Returns 
 "number"
  typeof 3.14           // Returns 
 "number"
  typeof (3)            // Returns 
 "number"
typeof (3 + 4)        // Returns 
 "number"

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Operators</h1>
<h2>The typeof Operator</h2>
<p>The typeof operator returns the type of a variable or an expression.</p>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 
typeof 0 + "<br>" + 
typeof 314 + "<br>" +
typeof 3.14 + "<br>" +
typeof (3) + "<br>" +
typeof (3 + 4);
</script>

</body>
</html>


คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับ typeof ในบทแนะนำนี้ในภายหลัง


ไม่ได้กำหนด

ใน JavaScript ตัวแปรที่ไม่มีค่าจะมีค่าเป็น unknown ประเภทนี้ยัง unknown อีกด้วย

ตัวอย่าง

let car;    // Value is undefined, 
    type is undefined

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Operators</h1>
<h2>The typeof Operator</h2>
<p>The value (and the data type) of a variable with no value is <b>undefined</b>.</p>

<p id="demo"></p>

<script>
let car;
document.getElementById("demo").innerHTML =
car + "<br>" + typeof car;
</script>

</body>
</html> 

คุณสามารถล้างตัวแปรใดๆ ก็ได้โดยตั้งค่าเป็น unknown ประเภทดังกล่าวจะเป็น unknown ด้วย

ตัวอย่าง

   car = undefined;    // Value is undefined, 
    type is undefined

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Operators</h1>
<h2>The typeof Operator</h2>
<p>Variables can be emptied if you set the value to <b>undefined</b>.</p>

<p id="demo"></p>

<script>
let car = "Volvo";
car = undefined;

document.getElementById("demo").innerHTML = car + "<br>" + typeof car;
</script>

</body>
</html> 

ค่าว่าง

ค่าว่างไม่เกี่ยวข้องกับ unknown

สตริงว่างมีทั้งค่าทางกฎหมายและประเภท

ตัวอย่าง

let car = "";    // The value is  "", the typeof is "string"

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript</h2>

<p>An empty string has both a legal value and a type:</p>

<p id="demo"></p>

<script>
let car = "";
document.getElementById("demo").innerHTML =
"The value is: " +
car + "<br>" +
"The type is: " + typeof car;
</script>

</body>
</html>