Tag: javascript’

การสร้างโลกใบใหม่ใน JavaScript

 - by NAzT

วันนี้มาพูดถึง ใน แบบเบาๆกันหน่อย เรื่องScope ใน มีรายละเอียดให้เราได้เคลิบเคลิ้มกันอีกนาน

ซึ่งการสร้าง Scope ใน JavaScript สามารถทำได้ด้วยโค้ดแบบนี้ครับ

ถ้าเราไม่สร้าง scope ใหม่แล้วประกาศตัวแปรตรงๆเลย มันจะเป็น global (windows) โอกาสที่ตัวแปรจะไปชนกันกับของคนอื่นก็จะมีเยอะกว่า เพราะใน JavaScript ถึงจะประกาศตัวแปรด้านล่างก็เห็นทั้งไฟล์อยู่ดี แต่ถ้าเราสร้างโลกของเราแล้วก็จะมั่นใจมากขึ้นว่าตัวแปรของเราจะไม่ตีกับใคร

เราอาจจะได้เจอโค้ดลักษณะนี้

จากตัวอย่างคือสร้างโลกและส่งตัวแปร เข้าไปให้สิงอยู่ในตัวแปร $ ซึ่งเป็น local แล้วในโลกนั้นก็เรียก $ แทน jQuery ได้อย่างสบายใจไม่ต้องกลัวไปตีกับคนอื่น่

ตัวแปร this ใน javascript ทำงานยังไง (เกี่ยวกับ Function Invocation Pattern)

 - by NAzT

ถ้าพูดถึงตัวแปร ในโลกของการเขียนโปรแกรมแบบ Oriented ผมจะตีความตัวแปร ว่ามันจะต้องหมายถึงตัว object นั้นๆ ที่กำลังทำงานอยู่ เป็นแน่แท้…..

แต่มันไม่ใช่แบบนั้นใน น่ะสิ!! …. อ้าวอ้าว ยังไง ตอบมาให้เคลียร์เลย Read this article »

Javascript สั้นๆ ตอน Array ปลอมๆ [แล้วจะรู้ได้ยังไงว่าเป็น Array หรือ Object]

 - by NAzT

ใน ไม่มีข้อมูลที่เป็น จริงๆ

Array ที่มีอยู่มัน array แบบหลอกๆ จริงแล้วมันเป็น ที่มี key เป็นตัวเลข, มี method เกี่ยวกับ array, และมี property length

ถ้าเราพึ่งคำสั่ง typeof อย่างเดียวเราก็จะเจ็บอีกตามเคย

javascript-phony-array

กล่าวคือถ้าเราสั่ง typeof [] และ typeof {} มันจะบอกว่า เป็น object ทั้งคู่! แบบนี้
NAzT_s Blog Read this article »

มาทำโปรเจ็ค JavaScript แบบใช้ TDD กันไหมครับ .. แบบหัดๆ

 - by NAzT

พอดีผมไปหา code เก่า… แล้วเจอ code ที่เขียนแบบนี้

graph_url = '/' + pageId + '/members/' + uid;

ปวดตับมาก code แม่งดูโคตรยากเลย ต่อ string กันกระจาย…

ก็เลยคิดว่าถ้าเราเขียนฟังก์ชั่นทำ แบบนี้
str_parse("/${0}/members/${1}", [pageId, uid]); ก็คงจะดีไม่น้อย ได้ใช้บ่อยแน่นอน (ลอกมาจาก api ของ ในส่วนของ FQL)

แล้วก็จะเขียนด้วย / เพราะว่าจะได้ฝึกหัดการเขียนโปรแกรมแบบ ไปในตัว
และสร้างความสนิทสนมกับ ด้วย [ เป็น behavior-driven ]

เข้าเรื่องกันเลยดีกว่า…

Read this article »

Javascript สั้นๆ ตอน parseInt ใช้ไม่ดี เจ็บ!

 - by NAzT

มีฟังก์ชั่น เพื่อเปลี่ยน String อย่างเช่น “8″ ให้เป็น ตัวเลข 8

แต่ถ้าเป็นตัวหนังสือแล้วใช้ + มันจะเอา String ไปต่อกัน เพราะ context มันเป็น string

แต่ถ้าใช้ไม่ดีเนี่ย…​ เราจะเจ็บ

แบบนี้

ลองสั่ง parseInt(“08″) ดูจะได้ 0 เพราะว่าถ้า parseInt เจอ 0 นำหน้าตัวเลขเมื่อไร JavaScript จะคิดว่าอยู่ในโลกของฐาน 8

อาจจะทำให้เราเกิดอาการน้ำตาตกในได้ ถ้าหาบั๊กไม่เจอ

วิธีแก้ไขก็คือ ใช้แบบกำหนด เข้าไปเพื่อบอกฐานด้วยเช่น parseInt(“08″, 10);

ภาพประกอบ

Nat%20Weerawan

 

credit:  JavaScript The Good Parts

Javascript สั้นๆ ตอน Semicolon Insertion [Awful Parts]

 - by NAzT

มีกระบวนการที่คอยแก้ไขโปรแกรมที่มีข้อผิดพลาดโดยการใส่ ; (semi colon) ซึ่งกระบวนการนี้ก็อันตรายไม่ใช่เล่น

ลองดูตัวอย่าง return statement นี้ครับ

%E0%B9%80%E0%B8%A3%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%87%20%E2%80%B9%20NAzT_s%20Blog%20%E2%80%94%20%E0%B9%80%E0%B8%A7%E0%B8%B4%E0%B8%A3%E0%B9%8C%E0%B8%94%E0%B9%80%E0%B8%9E%E0%B8%A3%E0%B8%AA

กระบวนการแทรก ; (semi colon) จะทำงานเมื่อสิ้นสุดบรรทัดที่ไม่มี semi colon

ใน case นี้ก็ จะกลายเป็น

return; Read this article »

BDD framework สำหรับ javascript

 - by NAzT

หลังจากที่ลองใช้ yui3 เป็น แต่ไม่โดนเพราะมันต้องต่อเน็ต

เลยไปลองตัวอื่นดู…

ลองใช้ qunit ก็ยังไม่โดน เลยกะว่าจะใช้ jsunit ซะหน่อย Read this article »

หัดเขียน javascript แบบ test driven development (tdd)

 - by NAzT

วันนี้ได้ลองเขียน แบบ หรือ หลังจากที่ตั้งท่าอยู่นาน…

เลยสรุปว่าต้องเริ่มกันด้วยโปรแกรมง่ายๆ Read this article »

ว่ากันเรื่อง Javascript scope ตอนที่ 2 [object, this, window, var]

 - by NAzT

วันนี้มาว่ากันเรื่อง แบบดู code เอง สงสัยเองครับ

ผมมี code มาให้ 4 ชุด ลองทาย output กันดูนะครับว่าได้อะไรบ้าง (พร้อมเหตุผลว่าทำไมถึงเป็นเช่นนั้น) Read this article »

ว่ากันเรื่อง Scope ใน JavaScript [ตอนที่ 1]

 - by NAzT

Blog ตอนนี้แบ่งเป็น 2 Part คือ และ ภาษา

ตอนแรกกะเขียนตอนเดียวจบแต่มันยาวแหละหนักเลยขอเรียกตอนนี้่ว่าตอนที่ 1 แล้วกัน

เริ่มเลยแล้วกันเนอะ….

Read this article »

ดูกล้อง CCTV ทั่วกรุงเทพ ด้วย Traffy API [Wrapper/Proxy] + jQuery + JSONP

 - by NAzT

ดูภาพจากกล้อง CCTV ทั่วกรุงเทพด้วย API [Proxy/Wrapper]

คราวนี้ใช้วิธีฉลาดขึ้น และตรงจุดมากขึ้น ใช้ traffy api / /

ลองใช้จากข้างล่างเลยคร้าบ Read this article »

มาทำโปรแกรมแปลภาษาอังกฤษ ->ภาษาไทย กันดีกว่า (Google Translation API)

 - by NAzT

API

Google มี ระบบแปลภาษา หรือ google translate ให้เราใช้

เท่านั้นยังไม่พอ!! พี่กู(เกิ้ล)แกยังมี goole / ให้เราเอามาเขียนโปรแกรมกันอีกด้วย

Read this article »