ในโลกของจาวาสคริปต์ทุกอย่างเป็นวัตถุ
แต่วัตถุบางอย่างยังแตกต่างจากสิ่งอื่น เพื่อแยกแยะประเภทของวัตถุเราใช้ตัวดำเนินการ typeof เพื่อรับประเภทของวัตถุซึ่งมักจะส่งคืนสตริง:
ประเภทของ 123; // 'number'typeof nan; // 'number'typeof' str '; // 'string'typeof true; // 'boolean'typeof undefined; // 'undefined'typeof math.abs; // 'function'typeof null; // 'Object'typeof []; // 'Object'typeof {}; // 'วัตถุ' typeof {}; // 'วัตถุ' ดังที่เห็นได้ number string boolean function และ undefined จะแตกต่างจากประเภทอื่น ๆ ให้ความสนใจเป็นพิเศษกับประเภทของ null เป็น object และประเภทของ Array ก็เป็น object หากเราใช้ typeof เราจะไม่สามารถแยกแยะความแตกต่างของ null Array และวัตถุในแง่ปกติ - {}
วัตถุบรรจุภัณฑ์
number boolean และ string มีวัตถุห่อหุ้ม ใช่ใน JavaScript สตริงยังแยกแยะความแตกต่างระหว่างประเภท string และประเภท wrapper วัตถุห่อถูกสร้างขึ้นด้วย new :
var n = หมายเลขใหม่ (123); // 123 ประเภทบรรจุภัณฑ์ใหม่ถูกสร้าง var b = บูลีนใหม่ (จริง); // จริงประเภทบรรจุภัณฑ์ใหม่ถูกสร้าง var s = สตริงใหม่ ('str'); // 'str' มีการสร้างบรรจุภัณฑ์ใหม่ แม้ว่าวัตถุ wrapper จะดูเหมือนค่าดั้งเดิมและแสดงเหมือนกันทุกประเภท แต่ประเภทของพวกเขาก็กลายเป็น object ! ดังนั้นการเปรียบเทียบวัตถุห่อกับค่าดั้งเดิมกับ === จะส่งคืน false :
typeof หมายเลขใหม่ (123); // 'หมายเลขวัตถุ (123) === 123; // falsetypeof บูลีนใหม่ (จริง); // 'Boolean Object'new (จริง) === true; // falsetypeof สตริงใหม่ ('str'); // 'สตริง Object'New (' str ') ===' str '; // เท็จดังนั้นอย่าใช้วัตถุบรรจุภัณฑ์แม้ว่าคุณจะไม่ได้ใช้งาน! โดยเฉพาะอย่างยิ่งสำหรับประเภทสตริง! - -
วันที่
ใน JavaScript วัตถุ Date ใช้เพื่อแสดงวันที่และเวลา
เพื่อให้ได้เวลาปัจจุบันของระบบใช้:
var now = new Date (); ตอนนี้; // พุธ มิ.ย. 24 2015 19:49:22 GMT+0800 (CST) ตอนนี้. GetFulyear (); // 2015, ปี Now.getMonth (); // 5, เดือน, โปรดทราบว่าช่วงเดือนคือ 0 ~ 11, 5 หมายถึงเดือนมิถุนายนตอนนี้ getDate (); // 24 หมายถึง 24 ตอนนี้ getDay (); // 3 หมายถึงวันพุธตอนนี้ getHours (); // 19, 24 ชั่วโมงตอนนี้ getMinutes (); // 49, นาทีตอนนี้ getSeconds (); // 22 วินาทีตอนนี้ getMilliseconds (); // 875, มิลลิวินาทีตอนนี้ getTime (); // 1435146562875, การประทับเวลาที่แสดงเป็นจำนวน
โปรดทราบว่าเวลาปัจจุบันคือเวลาที่เบราว์เซอร์ได้รับจากระบบปฏิบัติการท้องถิ่นดังนั้นจึงไม่จำเป็นต้องแม่นยำเนื่องจากผู้ใช้สามารถตั้งค่าเวลาปัจจุบันเป็นค่าใด ๆ
หากคุณต้องการสร้างวัตถุ Date ด้วยวันที่และเวลาที่ระบุคุณสามารถใช้:
var d = วันที่ใหม่ (2015, 5, 19, 20, 15, 30, 123);
คุณอาจสังเกตเห็นว่ามีการหลอกลวงมากนั่นคือช่วงเดือนของจาวาสคริปต์เป็นตัวแทนของจำนวนเต็ม 0 ถึง 11, 0 ถึงมกราคมและ 1 ถึงกุมภาพันธ์ ... เพื่อเป็นตัวแทนของเดือนมิถุนายนเรากำลังผ่านไป 5! นี่เป็นสิ่งที่นักออกแบบของ JavaScript มีสมองกระตุกในเวลานั้น แต่มันเป็นไปไม่ได้ที่จะแก้ไขตอนนี้
วิธีที่สองในการสร้างวันที่และเวลาที่ระบุคือการแยกสตริงที่สอดคล้องกับรูปแบบ ISO 8601:
var d = date.parse ('2015-06-24T19: 49: 22.875+08: 00'); D; // 1435146562875 แต่มันไม่ได้ส่งคืนวัตถุ Date แต่เป็นการประทับเวลา แต่ด้วยการประทับเวลามันสามารถแปลงได้อย่างง่ายดายเป็น Date :
var d = วันที่ใหม่ (1435146562875); D; // พุธ มิ.ย. 24 2558 19:49:22 GMT+0800 (CST)
เขตเวลา
เวลาที่แสดงโดยวัตถุ Date จะแสดงอยู่เสมอตามเขตเวลาของเบราว์เซอร์ แต่เราสามารถแสดงทั้งเวลาท้องถิ่นและเวลา UTC ที่ปรับแล้ว:
var d = วันที่ใหม่ (1435146562875); d.tolocalestring (); // '2015/6/24 7:49:22 PM', เวลาท้องถิ่น (ปักกิ่งเวลาเขตเวลา +8: 00), สตริงที่แสดงนั้นเกี่ยวข้องกับรูปแบบที่กำหนดโดยระบบปฏิบัติการ d.toutcstring (); // 'WED, 24 มิ.ย. 2558 11:49:22 GMT', เวลา UTC, 8 ชั่วโมงนอกเหนือจากเวลาท้องถิ่น
ดังนั้นจะแปลงโซนเวลาใน JavaScript ได้อย่างไร? ในความเป็นจริงตราบใดที่เราผ่านการประทับเวลา number เราไม่ต้องสนใจเกี่ยวกับการแปลงโซนเวลา เบราว์เซอร์ใด ๆ สามารถแปลงการประทับเวลาเป็นเวลาท้องถิ่นได้อย่างถูกต้อง
ดังนั้นเราจำเป็นต้องผ่านการประทับเวลาหรืออ่านการประทับเวลาจากฐานข้อมูลจากนั้นแปลง JavaScript เป็นเวลาท้องถิ่นโดยอัตโนมัติ
ในการรับการประทับเวลาปัจจุบันคุณสามารถใช้:
if (date.now) {alert (date.now ()); // รุ่นเก่าของ IE ไม่มีเมธอดตอนนี้ ()} else {Alert (วันที่ใหม่ (). getTime ());}JSON
ใน JSON มีเพียงไม่กี่ประเภทข้อมูล:
•หมายเลข: มันเหมือนกับหมายเลข JavaScript;
•บูลีน: มันเป็นจริงหรือเท็จของ JavaScript;
•สตริง: สตริง JavaScript;
• NULL: เป็นโมฆะของ JavaScript;
•อาร์เรย์: มันเป็นวิธีการแสดงอาร์เรย์ JavaScript - [];
•วัตถุ: มันคือ {... } การเป็นตัวแทนของ JavaScript
และการรวมกันใด ๆ ข้างต้น
การทำให้เป็นอนุกรม
มาเป็นอันดับแรกของวัตถุ Xiao Ming ลงในสตริง JSON:
var xiaoming = {ชื่อ: 'Xiao Ming', อายุ: 14, เพศ: จริง, ความสูง: 1.65, เกรด: null, 'โรงเรียนมัธยม': '/' w3c/"โรงเรียนมัธยม ', ทักษะ: [' JavaScript ',' Java ',' Python ',' Lisp ']};使用JSON.stringify()之后:
json.stringify (Xiaoming); // '{"ชื่อ": "Xiao Ming", "อายุ": 14, "เพศ": จริง, "ความสูง": 1.65, "เกรด": null, "โรงเรียนกลาง": "/" W3C/"โรงเรียนมัธยม", "ทักษะ": "JavaScript", "Java", "Python", "Lisp"ในการส่งออกได้ดีขึ้นคุณสามารถเพิ่มพารามิเตอร์และเยื้องเอาท์พุท:
json.stringify (Xiaoming, null, '');
ผลลัพธ์:
{"ชื่อ": "Xiao Ming", "อายุ": 14, "เพศ": จริง, "ความสูง": 1.65, "เกรด": null, "โรงเรียนมัธยม": "/" w3c/"โรงเรียนมัธยม", "ทักษะ": "JavaScript", "Java", "Python", "Lisp พารามิเตอร์ที่สองใช้เพื่อควบคุมวิธีการกรองค่าคีย์ของวัตถุ หากเราต้องการส่งออกแอตทริบิวต์ที่ระบุเท่านั้นเราสามารถส่งผ่านไปยัง Array :
json.stringify (Xiaoming, ['name', 'Skills'], '');
ผลลัพธ์:
{"ชื่อ": "Xiao Ming", "Skills": ["JavaScript", "Java", "Python", "Lisp"]}นอกจากนี้คุณยังสามารถส่งผ่านฟังก์ชั่นเพื่อให้คู่คีย์ค่าคู่ของวัตถุจะถูกประมวลผลก่อนโดยฟังก์ชั่น:
ฟังก์ชั่นแปลง (คีย์, ค่า) {ถ้า (typeof value === 'สตริง') {return value.touppercase (); } ค่าส่งคืน;} json.stringify (Xiaoming, Convert, '');รหัสข้างต้นเปลี่ยนค่าแอตทริบิวต์ทั้งหมดเป็นตัวพิมพ์ใหญ่:
{"ชื่อ": "Xiao Ming", "อายุ": 14, "เพศ": จริง, "ความสูง": 1.65, "เกรด": null, "โรงเรียนมัธยม": "/" w3c/"โรงเรียนมัธยม", "ทักษะ": "JavaScript", "Java", "Python", "Lisp หากเราต้องการควบคุมวิธีการจัดอันดับ Xiao Ming อย่างแม่นยำเราสามารถกำหนดวิธี toJSON() สำหรับ xiaoming และส่งคืนข้อมูลที่ JSON ควรทำให้เป็นอนุกรมโดยตรง:
var xiaoming = {ชื่อ: 'Xiao Ming', อายุ: 14, เพศ: จริง, ความสูง: 1.65, เกรด: null, 'โรงเรียนกลาง': '/' w3c/"โรงเรียนมัธยม ', ทักษะ: [' javaScript ',' Java ',' Python ' this.name, 'อายุ': this.age}; }}; json.stringify (Xiaoming); // '{"ชื่อ": "Xiao Ming", "อายุ": 14}'การทำให้หมดจด
รับสตริงรูปแบบ JSON และเราใช้ JSON.parse() โดยตรงเพื่อเปลี่ยนเป็นวัตถุ JavaScript:
json.parse ('[1,2,3, true]'); // [1, 2, 3, true] json.parse ('{"ชื่อ": "Xiao Ming", "อายุ": 14}'); // วัตถุ {ชื่อ: 'Xiao Ming', อายุ: 14} json.parse ('true'); // truejson.parse ('123.45'); // 123.45 JSON.parse() ยังสามารถรับฟังก์ชั่นเพื่อแปลงคุณสมบัติที่แยกวิเคราะห์ได้:
json.parse ('{"ชื่อ": "Xiao Ming", "อายุ": 14}', ฟังก์ชั่น (คีย์, ค่า) {// ใส่หมายเลข * 2: if (key === 'ชื่อ') {return value + 'นักเรียน';} ค่าคืน;}); // Object {ชื่อ: 'Student Xiao Ming', อายุ: 14}บทความข้างต้นพูดสั้น ๆ เกี่ยวกับวัตถุมาตรฐานของ JavaScript เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น