NECTEC
NSTDA
Home
Computer
Program
Internet & Web
Graphics
CAI
Multimedia
Electrical Power
General Education
Special Education
Links
Webmaster
JavaScript

ตัวดำเนินการ

ตัวดำเนินการ (Operator) หมายถึง เครื่องหมายกำหนดกรรมวิธีทางคณิตศาสตร์, พีชคณิต, บูลีน, การเปรียบเทียบ ระหว่างข้อมูล 2 ตัว ซึ่งเรียกว่า โอประแรนด์(Operand) โดยอาจมีค่าเป็นตัวเลข ข้อความ ค่าคงที่ หรือตัวแปรต่าง ๆ

ชนิดของตัวดำเนินการ

ตัวดำเนินการคณิตศาสตร์

ตัวดำเนินการคณิตศาสตร์ (Arithmetic operator) หมายถึง ใช้สำหรับคำนวณโอประแรนด์ที่เป็นค่าคงที่หรือตัวแปรก็ได้ โดยให้ค่าผลลัพธ์เป็นตัวเลขค่าเดียว โอประเรเตอร์ เชิงคณิตศาสตร์ที่คนส่วนใหญ่รู้จักคุ้นเคยกันมากที่สุดได้แก่

           + หมายถึง เครื่องหมายการบวก
           - หมายถึง เครื่องหมายการลบ
           * หมายถึง เครื่องหมายการคูณ
           / หมายถึง เครื่องหมายการหาร
           % หมายถึง เครื่องหมายหาเศษที่ได้จากการหารที่เรียกว่า โมดูลัส(Modulus)
           ++ หมายถึง เครื่องหมายการเพิ่มค่าที่เรียกว่า อินครีเมนต์(increment) โดยจะเพิ่มค่าครั้งละ 1
           -- หมายถึง เครื่องหมายการลดค่าที่เรียกว่า ดีครีเมนต์(decrement) โดยจะลดค่าครั้งละ 1
           (-) หมายถึง เครื่องหมายแปลงค่าให้กลายเป็นค่าตรงกันข้ามกับค่าเดิมที่เรียกว่า ยูนารีนีเกชัน (unary negation)

เช่น x = 20 % 3; ผลลัพธ์คือ x จะมีค่าเป็น 2

เช่น ถ้า x = -100 ดังนั้น -x จะมีค่าเท่ากับ 100 เป็นต้น

ตัวดำเนินการเชิงเปรียบเทียบ

ตัวดำเนินการเชิงเปรียบเทียบ (Comparison operator) หมายถึง เครื่องหมายในการเปรียบเทียบข้อมูล ผลลัพธ์ที่ได้จะมีค่าตรรกบูลลีนเป็น จริง (True) และ เท็จ (False) ได้แก่

           == หมายถึง เครื่องหมายเท่ากับ
           != หมายถึง เครื่องหมายไม่เท่ากับ
           > หมายถึง เครื่องหมายมากกว่า
           >= หมายถึง เครื่องหมายมากกว่าหรือเท่ากับ
           < หมายถึง เครื่องหมายน้อยกว่า
           <= หมายถึง เครื่องหมายน้อยกว่าหรือเท่ากับ

ตัวดำเนินการกำหนดค่า

ตัวดำเนินการกำหนดค่า (Assignment operator) หมายถึง เครื่องหมายในการกำหนดให้ตัวแปรที่อยู่ทางฝั่งซ้าย มีค่าเท่ากับค่าเดิมในตัวแปรนั้น "กระทำ" (บวก, ลบ, คูณ, หาร) กับอีกตัวแปรหนึ่งที่อยู่ทางฝั่งขวา ได้แก่

           x = y หมายถึง กำหนดค่า y ให้กับตัวแปร x
           x += y หมายถึง เพิ่มค่า y ให้กับตัวแปร x (x = x + y)
           x -= y หมายถึง ลบค่า y ออกจากตัวแปร x (x = x - y)
           x *= y หมายถึง กำหนดค่า x คูณกับค่า y ให้กับตัวแปร x (x = x * y)
           x /= y หมายถึง กำหนดค่า x หารกับค่า y ให้กับตัวแปร x (x = x / y)
           x %= y หมายถึง กำหนดเศษที่ได้จากการหารค่า x ด้วยค่า y ให้กับตัวแปร x (x = x % y)
           x <<= y หมายถึง เลื่อนบิตในตัวแปร x ไปทางซ้าย y บิต (x = x << y)
           x >>= y หมายถึง เลื่อนบิตในตัวแปร x ไปทางขวา y บิต (x = x >> y)
           x >>>= y หมายถึง เลื่อนบิตแบบซีโรฟิลล์ในตัวแปร x ไปทางขวา y บิต (x = x >>> y)
           x &= y หมายถึง เก็บค่า x AND y ในตัวแปร x (x = x & y)
           x ^= y หมายถึง เก็บค่า x XOR y ในตัวแปร x (x = x ^ y)
           x |= y หมายถึง เก็บค่า x OR y ในตัวแปร x (x = x | y)

ตัวดำเนินการเชิงตรรกะ

ตัวดำเนินการเชิงตรรกะ (Logical operator) เป็นเครื่องหมายที่ให้ค่าจริง (True) และ เท็จ (False) ในการเปรียบเทียบ ประกอบด้วยเครื่องหมาย

           && หมายถึง และ(AND) จะเป็นจริงเมื่อค่าที่ใช้เปรียบเทียบทั้ง 2 ค่าเป็นจริงทั้งคู่
           || หมายถึง หรือ(OR) จะเป็นจริงเมื่อค่าที่ใช้เปรียบเทียบทั้ง 2 ค่าเป็นจริงทั้งคู่หรือจริงเพียงค่าใด ค่าหนึ่ง
           ! หมายถึง ปฎิเสธ(NOT) เป็นการแปลงค่าตรงกันข้าม จากจริงจะเป็นเท็จ และ จากเท็จจะเป็นจริ

ตัวดำเนินการเชิงข้อความ

ตัวดำเนินการเชิงข้อความ (String operator) เป็นการเชื่อมประโยคข้อความเข้าด้วยกัน (concatenation) โดยใช้เครื่องหมายบวก (+) เป็นตัวกระทำ

เช่น Name = "Bodin";
Say = "Hey "+Name;
ผลลัพธ์ที่ได้ Say จะมีข้อความเป็น Hey Bodin

ตัวดำเนินการระดับบิต

ตัวดำเนินการระดับบิต (Bitwise operator) เป็นการดำเนินการเชิงตรรกะในระดับบิต โดยจะใช้มุมมองในแบบเลขฐาน 2 มาจัดการกับข้อมูล นั่นคือ ข้อมูลตัวเลขนั้นจะถูกแปลงเป็นเลขฐานสองในหน่วยความจำในขณะที่มีการดำเนินการเชิงตรรกะในระดับบิต ซึ่งโดยปกติแล้วการกระทำใน JavaScript จะอยู่ในระดับตัวอักษร ที่เรียกว่า ระดับไบต์ (byte) โดยตัวดำเนินการระดับบิตมีรายละเอียดดังนี้

           x & y หมายถึง ให้ผลลัพธ์การเทียบบิตแบบ AND ระหว่าง x กับ y
           x | y หมายถึง ให้ผลลัพธ์การเทียบบิตแบบ OR ระหว่าง x กับ y
           x ^ y หมายถึง ให้ผลลัพธ์การเทียบบิตแบบ XOR ระหว่าง x กับ y
           ~x หมายถึง เพิ่มค่าบิตให้ 1 จากนั้นจะให้ผลลัพธ์ของบิตมีค่าตรงข้าม
           x << y หมายถึง เลื่อนบิตในตัวแปร x ไปทางซ้าย y บิต
           x >> y หมายถึง เลื่อนบิตในตัวแปร x ไปทางขวา y บิต
           x >>> y หมายถึง เลื่อนบิตแบบซีโรฟิลล์ในตัวแปร x ไปทางขวา y บิต

ลำดับความสำคัญของตัวดำเนินการ

ลำดับที่ 1 ( )
ลำดับที่ 2 ++ -- ! ~
ลำดับที่ 3 * / %
ลำดับที่ 4 + -
ลำดับที่ 5 << >> >>>
ลำดับที่ 6 < <= > >=
ลำดับที่ 7 == !=
ลำดับที่ 8 &
ลำดับที่ 9 ^
ลำดับที่ 10 |
ลำดับที่ 11 &&
ลำดับที่ 12 ||
ลำดับที่ 13 = += -= *= /= %= <<= >>= >>>= &= ^= !=