JavaScript (JS) เป็นภาษาโปรแกรมชนิดหนึ่ง, ภาษามีขนาดเล็ก, อาศัยตรวจแปลภาษา, มีคุณสมบัติ first-class functions. คนส่วนใหญ่จะรู้จักว่าเป็นภาษาสคริปต์สำหรับหน้าเวบ แต่ปัจจุบันมีการนำไปใช้ใน สภาพแวดล้อมอื่นๆอีกจำนวนมากที่ไม่ใช่ browser เช่น node.js หรือ Apache CouchDB. JS เป็นภาษาแบบ prototype-based, multi-paradigm, dynamic scripting สนับสนุนสไตล์การเชียนแบบ object-oriented, imperative และ declarative ( เช่น การโปรแกรมแบบ functional) อ่านเพิ่มเติม
ส่วนนี้ของเวปไซท์มีไว้สำหรับภาษา JavaScript โดยเฉพาะ, เนื้อหายังไม่เจาะจงกับการเขียนหน้าเวป หรือ สภาพแวดล้อมอื่นๆ. สำหรับเนื้อหาเกี่ยวกับ APIs สำหรับการเขียนเวปโดยตรงนั้นสามารถดูได้ที่ Web APIs และ DOM
มาตรฐานของ JavaScript คือ ECMAScript. นับตั้งแต่ปี 2012 เป็นต้นมา browser ยุคใหม่ทั้งหมดรองรับการทำงานตามมาตรฐาน ECMAScript 5.1 อย่างสมบูรณ์ ในขณะที่ browser ที่เก่ากว่านั้นจะรองรับอย่างน้อย ECMAScript 3. ในวันที่ 17 มิถุนายน 2015 ECMA International ได้ตีพิมพ์มาตรฐาน ECMAScript รุ่นที่ 6 ซึ่งมีชื่อเรียกอย่างเป็นทางการว่า ECMAScript 2015 แต่เป็นที่รู้จักโดยทั่วไปว่า ECMAScript 6 หรือ ES6. นับตั้งแต่นั้นมาตรฐาน ECMAScript ก็จะถูกปรับปรุงทุกปี. สำหรับเอกสาร(ที่ท่านอ่าน) นี้อ้างถึงมาตรฐานฉบับร่างรุ่นล่าสุด, ซึ่งปัจจุบันคือ ECMAScript 2017.
อย่าสับสน JavaScript กับ ภาษา Java. ทั้ง "Java" and "JavaScript" เป็น ตราสินค้าจดทะเบียนของบริษัท Oracle ในสหรัฐอเมริกาและประเทศอื่นๆ. ทั้งสองภาษามีความต่างอย่างมากทั้งด้าน วากยสัมพันธ์ (syntax), ความหมาย (semantics) และการใช้งาน
บทเรียน
เรียนรู้วิธีการเขียนโปรแกรมด้วย JavaScript
เบี้องต้น
- JavaScript Guide
- ถ้าคุณไม่รู้จัก Javascript มาก่อน คู่มือนี้จะแนะนำให้คุณรู้จักภาษานี้
- JavaScript technologies overview
- บทนำเกี่ยวกับสภาพโดยทั่วไปของ Javascript บนเว็บเบราเซอร์
- Introduction to Object Oriented JavaScript
- บทนำเกี่ยวกับแนวความคิดการเขียนโปรแกรมเชิงวัตถุใน JavaScript.
ขั้นกลาง
- A re-introduction to JavaScript
- คำอธิบายคร่าวๆ สำหรับผู้ที่คิดว่ารู้จักจาวาสคริปต์มาก่อนแล้ว
- JavaScript data structures
- คำอธิบายคร่าวๆเกี่ยวกับโครงสร้างข้อมูลที่มีในจาวาสคริปต์
- Equality comparisons and sameness
- จาวาสคริปต์มีคำสั่งที่ใช้เปรียบเทียบอยู่สามแบบที่แตกต่างกัน: strict equality using ===, loose equality using == และ
Object.is()
method
ระดับสูง
- Inheritance and the prototype chain
- การอธิบายสิ่งที่มักเข้าใจผิดๆ และการใช้การสืบทอดแบบ prototype-based อย่างไม่ถูกต้อง
- Strict mode
- โหมด Strict จะทำให้คุณไม่สามารถใช้ตัวแปรใดๆ ก่อนที่จะมีการกำหนดค่าตั้งต้นให้แก่ตัวแปรนั้นได้ โหมดนี้จะควบคุมความแตกต่างของ ECMAScript 5 เพื่อประสิทธิภาพที่เร็วกว่าและง่ายสำหรับการแก้ไขจุดบกพร่อง
- JavaScript typed arrays
- ชนิดข้อมูลแบบอาเรย์มีกระบวนการสำหรับการเข้าถึงข้อมูลแบบไบนารี่
- Memory Management
- วงจรชีวิตหน่วยความจำและการกำจัดหน่วยความจำที่ไม่ใช้แล้วในจาวาสคริปต์
อ้างอิง
Browse the complete JS reference documentation.
- Standard objects
- Get to know standard built-in objects
,Array
Boolean
,Date
,Error
,Function
,JSON
,Math
,Number
,Object
,RegExp
,String
,Map
,Set
,
,WeakMap
WeakSet
, and others. - Expressions & operators
- Learn more about the behavior of JavaScript's operators
instanceof
,typeof
,new
,this
, and more. - Statements & declarations
- Learn how
do-while
,for-in
,for-of
,try-catch
,let
,var
,const
,if-else
,switch
, and more JavaScript statements and keywords work. - Functions
- Learn how to work with JS functions to develop your applications.
เครื่องมือและแหล่งที่มา
Helpful tools while writing and debugging your JavaScript code.
- Firefox Developer Tools
- Scratchpad, Web Console, JavaScript Profiler, Debugger, and more.
- Firebug
- Edit, debug, and monitor CSS, HTML, and JavaScript live in any web page.
- JavaScript Shells
- A JavaScript shell allows you to quickly test snippets of JavaScript code.
- TogetherJS
-
Collaboration made easy.
- Stack Overflow
- Stack Overflow questions tagged with "JavaScript".
- JavaScript versions and release notes
- Browse JavaScript's feature history and implementation status.
{{CommunityBox("JavaScript", "js-engine.internals", "mozilla.dev.tech.js-engine.internals", "js", "ES discuss|https://esdiscuss.org/|esdiscuss.org|ECMAScript standard discussion mailing list||SpiderMonkey|https://wiki.mozilla.org/JavaScript|Project page|Contribute to the JavaScript Engine||Twitter|https://twitter.com/SpiderMonkeyJS|@SpiderMonkeyJS|SpiderMonkey updates on Twitter")}}