ผลต่างระหว่างรุ่นของ "01204435/javascript"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 9: แถว 9:
 
พิจารณาโปรแกรม 3 โปรแกรมต่อไปนี้
 
พิจารณาโปรแกรม 3 โปรแกรมต่อไปนี้
  
a = 10;
+
a = 10;
{  
+
{  
  var a = 20;    // ***
+
  var a = 20;    // ***
  console.log(a);
+
  console.log(a);
}
+
}
console.log(a);
+
console.log(a);
  
a = 10;
+
a = 10;
function f() {  
+
function f() {  
  var a = 20;    // ***
+
  var a = 20;    // ***
  console.log(a);
+
  console.log(a);
};
+
};
f();
+
f();
console.log(a);
+
console.log(a);
  
a = 10;
+
a = 10;
function f() {  
+
function f() {  
  a = 20;          // ***
+
  a = 20;          // ***
  console.log(a);
+
  console.log(a);
};
+
};
f();
+
f();
console.log(a);
+
console.log(a);
  
 
อธิบายความแตกต่าง  อธิบายว่าตัวแปร a ในบรรทัด *** ของแต่ละโปรแกรมหมายถึงตัวแปรตัวใด และเพราะเหตุใด
 
อธิบายความแตกต่าง  อธิบายว่าตัวแปร a ในบรรทัด *** ของแต่ละโปรแกรมหมายถึงตัวแปรตัวใด และเพราะเหตุใด

รุ่นแก้ไขเมื่อ 06:55, 13 มิถุนายน 2556

หน้านี้เป็นการทดลอง javascript และ node.js ซึ่งเป็นส่วนหนึ่งของวิชา 01204435

เอกสารอ้างอิงประกอบการทำแลบสามารถเอกสารจาก หน้า JavaScript ของ Mozilla Developer Network ได้ โดยอาจจะดูในส่วนของ JavaScript Guide

javascript: การทดลองเกี่ยวกับ scope

scope ใน block และใน function

พิจารณาโปรแกรม 3 โปรแกรมต่อไปนี้

a = 10;
{ 
  var a = 20;    // ***
  console.log(a);
}
console.log(a);
a = 10;
function f() { 
  var a = 20;    // ***
  console.log(a);
};
f();
console.log(a);
a = 10;
function f() { 
  a = 20;          // ***
  console.log(a);
};
f();
console.log(a);

อธิบายความแตกต่าง อธิบายว่าตัวแปร a ในบรรทัด *** ของแต่ละโปรแกรมหมายถึงตัวแปรตัวใด และเพราะเหตุใด

ตำแหน่งในการประกาศ

ในการทดลองต่อไป ให้สร้างไฟล์นามสกุล js และเรียกให้ทำงานจาก command line (ไม่ใช่ทยอยป้อนใน javascript console)

พิจารณาโปรแกรมสองโปรแกรมต่อไปนี้

var a = x;
var x = 10;
console.log(x);
console.log(a);
var a = x;
console.log(a);

จากผลการทดลอง ให้อธิบายขอบเขตของตัวแปร x ในตัวอย่างแรก

javascript: functions 1

ใน javascript มีวิธีการประกาศ function ได้หลายแบบ สองรูปแบบหลัก ๆ ที่เห็นมีดังตัวอย่างด้านล่าง แบบแรกคือประกาศฟังก์ชัน a เลย

function a() {
  return 10;
}

และอีกแบบคือการประกาศฟังก์ชัน โดยไม่ระบุชื่อ จากนั้นค่อยนำไปกำหนดค่าให้กับตัวแปรที่แทนฟังก์ชันนั้น

var b = function() { 
  return 20; 
};

ในการใช้งานทั่วไป เราจะไม่ค่อยพบความแตกต่างมาก แต่ให้พิจารณาตัวอย่างด้านล่างนี้

javascript: objects

node.js: event-driven i/o