Category:Javascript’
การสร้างโลกใบใหม่ใน JavaScript
- by NAzT
วันนี้มาพูดถึง Scope ใน JavaScript แบบเบาๆกันหน่อย เรื่องScope ใน JavaScript มีรายละเอียดให้เราได้เคลิบเคลิ้มกันอีกนาน
ซึ่งการสร้าง Scope ใน JavaScript สามารถทำได้ด้วยโค้ดแบบนี้ครับ
ถ้าเราไม่สร้าง scope ใหม่แล้วประกาศตัวแปรตรงๆเลย มันจะเป็น global (windows) โอกาสที่ตัวแปรจะไปชนกันกับของคนอื่นก็จะมีเยอะกว่า เพราะใน JavaScript ถึงจะประกาศตัวแปรด้านล่างก็เห็นทั้งไฟล์อยู่ดี แต่ถ้าเราสร้างโลกของเราแล้วก็จะมั่นใจมากขึ้นว่าตัวแปรของเราจะไม่ตีกับใคร
เราอาจจะได้เจอโค้ดลักษณะนี้
จากตัวอย่างคือสร้างโลกและส่งตัวแปร jQuery เข้าไปให้สิงอยู่ในตัวแปร $ ซึ่งเป็น local variable แล้วในโลกนั้นก็เรียก $ แทน jQuery ได้อย่างสบายใจไม่ต้องกลัวไปตีกับคนอื่น่
ตัวแปร this ใน javascript ทำงานยังไง (เกี่ยวกับ Function Invocation Pattern)
- by NAzT
ถ้าพูดถึงตัวแปร this ในโลกของการเขียนโปรแกรมแบบ Object Oriented ผมจะตีความตัวแปร this ว่ามันจะต้องหมายถึงตัว object นั้นๆ ที่กำลังทำงานอยู่ เป็นแน่แท้…..
แต่มันไม่ใช่แบบนั้นใน javascript น่ะสิ!! …. อ้าวอ้าว ยังไง ตอบมาให้เคลียร์เลย Read this article »
JSONP request ใน jQuery และ ExtJS
- by NAzT
jsonp request ใน ExtJS
Read this article »
Javascript สั้นๆ ตอน Array ปลอมๆ [แล้วจะรู้ได้ยังไงว่าเป็น Array หรือ Object]
- by NAzT
ใน JavaScript ไม่มีข้อมูลที่เป็น Array จริงๆ
Array ที่มีอยู่มัน array แบบหลอกๆ จริงแล้วมันเป็น object ที่มี key เป็นตัวเลข, มี method เกี่ยวกับ array, และมี property length
ถ้าเราพึ่งคำสั่ง typeof อย่างเดียวเราก็จะเจ็บอีกตามเคย
กล่าวคือถ้าเราสั่ง typeof [] และ typeof {} มันจะบอกว่า เป็น object ทั้งคู่! แบบนี้
Read this article »
มาทำโปรเจ็ค JavaScript แบบใช้ TDD กันไหมครับ .. แบบหัดๆ
- by NAzT
พอดีผมไปหา code เก่า… แล้วเจอ code ที่เขียนแบบนี้
var graph_url = '/' + pageId + '/members/' + uid;
ปวดตับมาก code แม่งดูโคตรยากเลย ต่อ string กันกระจาย…
ก็เลยคิดว่าถ้าเราเขียนฟังก์ชั่นทำ string template แบบนี้
str_parse("/${0}/members/${1}", [pageId, uid]); ก็คงจะดีไม่น้อย ได้ใช้บ่อยแน่นอน (ลอกมาจาก facebook api ของ facebook ในส่วนของ FQL)
แล้วก็จะเขียนด้วย TDD/BDD เพราะว่าจะได้ฝึกหัดการเขียนโปรแกรมแบบ TDD ไปในตัว
และสร้างความสนิทสนมกับ Jasmine ด้วย [Jasmine เป็น behavior-driven framework]
เข้าเรื่องกันเลยดีกว่า…
Javascript สั้นๆ ตอน parseInt ใช้ไม่ดี เจ็บ!
- by NAzT
JavaScript มีฟังก์ชั่น parseInt เพื่อเปลี่ยน String อย่างเช่น “8″ ให้เป็น ตัวเลข 8
แต่ถ้าเป็นตัวหนังสือแล้วใช้ operator + มันจะเอา String ไปต่อกัน เพราะ context มันเป็น string
แต่ถ้าใช้ไม่ดีเนี่ย… เราจะเจ็บ
แบบนี้
ลองสั่ง parseInt(“08″) ดูจะได้ 0 เพราะว่าถ้า parseInt เจอ 0 นำหน้าตัวเลขเมื่อไร JavaScript จะคิดว่าอยู่ในโลกของฐาน 8
อาจจะทำให้เราเกิดอาการน้ำตาตกในได้ ถ้าหาบั๊กไม่เจอ
วิธีแก้ไขก็คือ ใช้แบบกำหนด radix เข้าไปเพื่อบอกฐานด้วยเช่น parseInt(“08″, 10);
ภาพประกอบ
credit: JavaScript The Good Parts
Javascript สั้นๆ ตอน Semicolon Insertion [Awful Parts]
- by NAzT
JavaScript มีกระบวนการที่คอยแก้ไขโปรแกรมที่มีข้อผิดพลาดโดยการใส่ ; (semi colon) ซึ่งกระบวนการนี้ก็อันตรายไม่ใช่เล่น
ลองดูตัวอย่าง return statement นี้ครับ
กระบวนการแทรก ; (semi colon) จะทำงานเมื่อสิ้นสุดบรรทัดที่ไม่มี semi colon
ใน case นี้ก็ จะกลายเป็น
jQuery Tip: การ break; ออกจาก jQuery.each [ forEach ]
- by NAzT
ใน jQuery.each(); เราใช้ break เพื่อออกจาก loop แบบ for / for in ไม่ได้
ทางออกสำหรับการ break Loop jQuery.each ก็คือ… Read this article »
BDD framework สำหรับ javascript
- by NAzT
หลังจากที่ลองใช้ yui3 เป็น test framework แต่ไม่โดนเพราะมันต้องต่อเน็ต
เลยไปลองตัวอื่นดู…
ลองใช้ qunit ก็ยังไม่โดน เลยกะว่าจะใช้ jsunit ซะหน่อย Read this article »
ทำ attribute แบบ private ใน javascript
- by NAzT
บางทีเราอาจจะเข้าใจผิดว่า javascript ไม่มี attribute แบบ private.
แต่เราสร้างได้ แบบนี้. Read this article »
หัดเขียน javascript แบบ test driven development (tdd)
- by NAzT
วันนี้ได้ลองเขียน JavaScript แบบ TDD หรือ Test Driven Development หลังจากที่ตั้งท่าอยู่นาน…
เลยสรุปว่าต้องเริ่มกันด้วยโปรแกรมง่ายๆ Read this article »
ว่ากันเรื่อง Javascript scope ตอนที่ 2 [object, this, window, var]
- by NAzT
วันนี้มาว่ากันเรื่อง scope แบบดู code เอง สงสัยเองครับ
ผมมี code javascript มาให้ 4 ชุด ลองทาย output กันดูนะครับว่าได้อะไรบ้าง (พร้อมเหตุผลว่าทำไมถึงเป็นเช่นนั้น) Read this article »
ตัดคำภาษาไทยด้วย javascript [ตัดคำทาง service]
- by NAzT
Service ตัดคำภาษาไทย
มีให้บริการสองแบบคือ
ว่ากันเรื่อง Scope ใน JavaScript [ตอนที่ 1]
- by NAzT
Blog ตอนนี้แบ่งเป็น 2 Part คือ Javascript และ ภาษา C
ตอนแรกกะเขียนตอนเดียวจบแต่มันยาวแหละหนักเลยขอเรียกตอนนี้่ว่าตอนที่ 1 แล้วกัน
เริ่มเลยแล้วกันเนอะ….
ท่าพิเศษสำหรับ operator && และ operator || ใน javascript (Short-circuit evaluation)
- by NAzT
ปกติแล้วเรามอง && และ || ว่าเป็นตัวดำเนินการทางด้านตรรกะ (logical operator) Read this article »



