Number() แปลงหมายเลข String() แปลงสตริง Boolean() แปลงเป็นบูลีน
ชนิดข้อมูล JavaScript
ใน JavaScript มี 5 ชนิดข้อมูลที่แตกต่างกันที่สามารถมีค่า:
- string
- number
- boolean
- object
- function
มี 3 ประเภทของวัตถุคือ:
- Object
- Date
- Array
และประเภทที่ 2 ข้อมูลที่ไม่สามารถมีค่า:
- null
- undefined
typeof ผู้ประกอบการ
คุณสามารถใช้ typeof ผู้ประกอบการที่จะหาชนิดข้อมูลของตัวแปร JavaScript
ตัวอย่าง
typeof "John"
// Returns string
typeof 3.14
// Returns number
typeof NaN
// Returns number
typeof false
// Returns boolean
typeof [1,2,3,4] // Returns object
typeof {name:'John', age:34}
// Returns object
typeof new Date()
// Returns object
typeof function () {} // Returns function
typeof myCar
// Returns undefined (if myCar is not declared)
typeof null
// Returns object
ลองตัวเอง» โปรดสังเกต:
- ชนิดข้อมูลของ NaN เป็นจำนวน
- ชนิดข้อมูลของ array เป็นวัตถุ
- ชนิดข้อมูลของ date เป็นวัตถุ
- ชนิดข้อมูลของ null เป็นวัตถุ
- ชนิดข้อมูลของ undefined ตัวแปรจะไม่ได้กำหนด
คุณไม่สามารถใช้ typeof เพื่อตรวจสอบว่าวัตถุ JavaScript เป็นอาร์เรย์ (หรือวันที่)
ชนิดข้อมูลของ typeof
typeof ผู้ประกอบการไม่ได้เป็นตัวแปร มันเป็นผู้ดำเนินการ ผู้ประกอบการ ( + - * / ) ไม่ได้มีชนิดของข้อมูลใด ๆ
แต่ที่ typeof ประกอบการเสมอกลับสตริงที่มีประเภทของการดำเนินการ
constructor ทรัพย์สิน
constructor สถานที่ให้บริการส่งกลับฟังก์ชันสร้างสำหรับตัวแปร JavaScript ที่ทั้งหมด
ตัวอย่าง
"John".constructor
// Returns function String() { [native code] }
(3.14).constructor
// Returns function Number() { [native code] }
false.constructor
// Returns function Boolean() { [native code] }
[1,2,3,4].constructor
// Returns function Array() { [native code] }
{name:'John', age:34}.constructor
// Returns function Object() { [native code] }
new Date().constructor
// Returns function Date() { [native code] }
function () {}.constructor
// Returns function Function(){ [native code] }
ลองตัวเอง» คุณสามารถตรวจสอบคุณสมบัติสร้างเพื่อดูว่าวัตถุเป็นอาร์เรย์ (มีคำว่า "Array" ):
ตัวอย่าง
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
ลองตัวเอง» คุณสามารถตรวจสอบคุณสมบัติสร้างเพื่อดูว่าวัตถุเป็นวันที่ (มีคำว่า "Date" ):
ตัวอย่าง
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
ลองตัวเอง» JavaScript ประเภท Conversion
ตัวแปร JavaScript ที่สามารถแปลงเป็นตัวแปรใหม่และชนิดข้อมูลอื่น:
- โดยการใช้ฟังก์ชัน JavaScript
- โดยอัตโนมัติ JavaScript ตัวเอง
แปลงหมายเลขสตริง
วิธีการทั่วโลก String() สามารถแปลงตัวเลขเป็นสตริง
มันสามารถใช้กับชนิดของตัวเลขตัวอักษรตัวแปรหรือการแสดงออกใด ๆ
ตัวอย่าง
String(x) // returns a string from a number variable x
String(123) // returns a string from a number literal 123
String(100 + 23) // returns a string from a number from an expression
ลองตัวเอง» วิธีการจำนวน toString() ไม่เหมือนกัน
ในบทที่ วิธีการจำนวน คุณจะพบวิธีการอื่น ๆ ที่สามารถนำมาใช้เพื่อแปลงตัวเลขเป็นสตริง:
วิธี | ลักษณะ |
---|---|
toExponential() | ส่งกลับสตริงที่มีจำนวนโค้งมนและเขียนโดยใช้สัญกรณ์ชี้แจง |
toFixed() | ส่งกลับสตริงที่มีจำนวนโค้งมนและเขียนด้วยจำนวนที่ระบุทศนิยม |
toPrecision() | ส่งกลับสตริงที่มีหมายเลขที่เขียนด้วยความยาวที่ระบุ |
แปลง Booleans สตริง
วิธีการทั่วโลก String() สามารถแปลง booleans สตริง
String(false) // returns "false"
String(true) // returns "true"
วิธีการบูลีน toString() ไม่เหมือนกัน
false.toString() // returns "false"
true.toString() // returns "true"
แปลงวันที่เพื่อ Strings
วิธีการทั่วโลก String() สามารถแปลงวันที่เพื่อสตริง
String(Date()) // returns Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
วิธีการวันที่ toString() ไม่เหมือนกัน
ตัวอย่าง
Date().toString() // returns Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
ในบทที่ วิธีการวันที่ คุณจะพบวิธีการอื่น ๆ ที่สามารถใช้ในการแปลงวันที่เพื่อสตริง:
วิธี | ลักษณะ |
---|---|
getDate() | ได้รับวันที่เป็นตัวเลข (1-31) |
getDay() | รับวันทำงานหมายเลข (0-6) |
getFullYear() | รับปีสี่หลัก (YYYY) |
getHours() | รับชั่วโมง (0-23) |
getMilliseconds() | รับมิลลิวินาที (0-999) |
getMinutes() | ได้รับนาที (0-59) |
getMonth() | รับเดือน (0-11) |
getSeconds() | รับวินาที (0-59) |
getTime() | ดูเวลา (มิลลิวินาทีตั้งแต่ 1 มกราคม 1970) |
แปลงสตริงเบอร์
วิธีการทั่วโลก Number() สามารถแปลงสายไปยังหมายเลข
สตริงที่มีตัวเลข (เช่น "3.14" ) แปลงเป็นตัวเลข (เช่น 3.14)
สตริงที่ว่างเปล่าแปลงเป็น 0
สิ่งอื่น ๆ ที่จะแปลงไป NaN (ยังไม่เป็นตัวเลข)
Number("3.14") // returns 3.14
Number(" ") // returns 0
Number("") // returns 0
Number("99 88") // returns NaN
ในบทที่ วิธีการจำนวน คุณจะพบวิธีการอื่น ๆ ที่สามารถใช้ในการแปลงสายไปยังหมายเลข:
วิธี | ลักษณะ |
---|---|
parseFloat() | แยกสตริงและส่งกลับจำนวนจุดลอย |
parseInt() | แยกสตริงและกลับจำนวนเต็ม |
เอก + ผู้ประกอบการ
เอก + ผู้ประกอบการสามารถนำมาใช้ในการแปลงตัวแปรจำนวน:
ถ้าตัวแปรไม่สามารถแปลงก็จะยังคงกลายเป็นตัวเลข แต่มีมูลค่าน่าน (ยังไม่เป็นตัวเลข):
แปลง Booleans เบอร์
วิธีการทั่วโลก Number() ยังสามารถแปลง booleans ไปยังหมายเลข
Number(false) // returns 0
Number(true) // returns 1
แปลงวันที่เบอร์
วิธีการทั่วโลก
d = new Date();
Number(d) // returns 1404568027739
วิธีการวันที่ getTime() ไม่เหมือนกัน
d = new Date();
d.getTime() // returns 1404568027739
แปลงชนิดอัตโนมัติ
เมื่อพยายามที่จะทำงานบน "ผิด" ชนิดข้อมูล JavaScript ก็จะพยายามที่จะแปลงค่าเป็นประเภท "สิทธิ"
ผลที่ได้คือไม่ได้เสมอสิ่งที่คุณคาดหวัง:
5 + null // returns 5
because null is converted to 0
"5" + null // returns "5null"
because null is converted to "null"
"5" + 2 // returns
52
because 2 is converted to "2"
"5" - 2 // returns 3
because "5" is converted to 5
"5" * "2" // returns
10 because "5" and "2" are
converted to 5 and 2
ลองตัวเอง» แปลง String อัตโนมัติ
JavaScript อัตโนมัติเรียกตัวแปร toString() ฟังก์ชั่นเมื่อคุณพยายามที่จะ "ส่งออก" วัตถุหรือตัวแปร:
document.getElementById("demo").innerHTML = myVar;
// if myVar = {name:"Fjohn"} // toString converts to "[object Object]"
// if myVar = [1,2,3,4] // toString converts to "1,2,3,4"
// if myVar = new Date() // toString converts to "Fri Jul 18 2014 09:08:55 GMT+0200"
ตัวเลขและ booleans จะถูกแปลงยัง แต่ตอนนี้ไม่สามารถมองเห็นมาก:
// if myVar = 123 // toString converts to "123"
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
ตาราง JavaScript ประเภท Conversion
ตารางนี้แสดงผลของการแปลงค่า JavaScript ที่แตกต่างกันไปจำนวนสตริงและบูล:
เป็นต้นฉบับ ความคุ้มค่า | แปลง ให้แก่จำนวน | แปลง กับสตริง | แปลง การบูลีน | ลองมัน |
---|---|---|---|---|
false | 0 | "false" | false | ลองมัน " |
true | 1 | "true" | true | ลองมัน " |
0 | 0 | "0" | false | ลองมัน " |
1 | 1 | "1" | true | ลองมัน " |
"0" | 0 | "0" | true | ลองมัน " |
"1" | 1 | "1" | true | ลองมัน " |
NaN | NaN | "NaN" | false | ลองมัน " |
Infinity | Infinity | "Infinity" | true | ลองมัน " |
-Infinity | -Infinity | "-Infinity" | true | ลองมัน " |
"" | 0 | "" | false | ลองมัน " |
"20" | 20 | "20" | true | ลองมัน " |
"twenty" | NaN | "twenty" | true | ลองมัน " |
[ ] | 0 | "" | true | ลองมัน " |
[20] | 20 | "20" | true | ลองมัน " |
[10,20] | NaN | "10,20" | true | ลองมัน " |
["twenty"] | NaN | "twenty" | true | ลองมัน " |
["ten","twenty"] | NaN | "ten,twenty" | true | ลองมัน " |
function(){} | NaN | "function(){}" | true | ลองมัน " |
{ } | NaN | "[object Object]" | true | ลองมัน " |
null | 0 | "null" | false | ลองมัน " |
undefined | NaN | "undefined" | false | ลองมัน " |
ค่าในคำพูดที่บ่งบอกถึงค่าสตริง
ค่าสีแดงแสดงค่า (พอใช้) โปรแกรมเมอร์ไม่อาจคาดหวัง