javascript

JavaScript: ข้อควรระวังในการใช้ parseInt

วันนี้เจอบัคในการใช้ function parseInt() นั่นคือ
ถ้าเรียก parseInt('08') หรือ parseInt('09') จะได้ค่า 0 กลับมาเสมอ

เพราะอะไร???

คำตอบ parseInt ไม่ได้มี parameter แค่ตัวเดียว
แต่มี 2 ตัว โดยตัวที่สองคือเลขฐานนั่นเอง
เช่นถ้าเราต้องการแปลงตัวเลขฐาน 10 ก็ให้ใส่ 10 เป็น parameter ที่สองเช่น

Code

a = parseInt('08', 10);
document.write(a);

Output

8

ซึ่งปรกติเราจะไม่ได้ใส่ parameter ตัวที่สองไว้ ทำให้ javascript ต้องหาฐานของเลขเอง
โดยถ้า string ขึ้นต้นด้วย 0x จะคิดว่าเป็นเลขฐาน 16
ถ้าขึ้นต้นด้วย 0 จะคิดว่าเป็นเลขฐาน 8

How to correctly embed script into HTML

<script type="text/javascript">
<!-- <![CDATA[

alert('Yow!');

// ]]> -->
</script>

Double exclamation point (!!) in JavaScript -- !! มันคืออะไร?

วันนี้ผมลองดู code ของ prototype.js (http://prototypejs.org/)
เห็นตรงนี้ครับ

  BrowserFeatures: {
    XPath: !!document.evaluate,
    SelectorsAPI: !!document.querySelector,
    ElementExtensions: !!window.HTMLElement,
    SpecificElementExtensions:
      document.createElement('div')['__proto__'] &&
      document.createElement('div')['__proto__'] !==
        document.createElement('form')['__proto__']
  },

ก็งงว่า !! คืออะไร เป็นเครื่องหมายที่ผมไม่รู้จักเหรอ
พอนึก ๆ ดู อืม... มันก็คือ not not ซึ่งก็คือทำให้ได้ค่า boolean เหมือนเดิม

JavaScript Coding Convention - รูปแบบมาตรฐานของการเขียน JavaScript

ขอบคุณ Douglas Crockford ครับผม
Credit: Douglas Crockford - http://javascript.crockford.com/code.html

JavaScript File
- ชื่อ file จะต้องลงท้ายด้วย .js เสมอ
- ไม่ควร embed JavaScript code ใน HTML ถ้า code นั้นไม่ได้ใช้กับ file นั้น file เดียว
เพื่อประโยชน์ในการใช้งาน cache ให้เต็มที่
- tag script ควรจะอยู่ท้ายที่สุดเท่าที่จะทำได้ เพื่อไม่ให้ไปรบกวนการโหลด static element ของหน้านั้น

Indentation - การย่อหน้า
Crockford แนะนำให้ใช้ 4 space แต่ผมใช้แค่ 2 ครับ

JSON is not Jason

JSON (JavaScript Object Notation) ไม่ใช่ Jason ชื่อคนนะอิอิ

http://www.json.org/js.html

Syndicate content