"안녕, 아미고!"

"안녕, 빌라보!"

"만나서 반갑습니다. 오늘 우리는 작지만 매우 유익한 수업을 가지고 있습니다. 오늘은 JavaScript 언어에 대해 알려 드리겠습니다."

자바스크립트 - 1

"새로운 언어? 재미있네요..."

"JavaScript는 현재 인터넷 덕분에 인기가 있습니다. 사실 JavaScript는 모든 브라우저에서 실행할 수 있는 유일한 언어입니다. 웹 페이지에 애니메이션이나 논리를 추가하려면 JavaScript를 사용하면 됩니다."

"JavaScript가 가장 인기 있는 언어라는 것이 사실입니까?"

"예, 하지만 가장 인기 있는 '제2의 언어'라고 말하는 것이 더 정확할 것입니다. C++, Java, C# 및 PHP 프로그래머는 웹 페이지에 활기를 불어넣기 위해 JavaScript로 작은 스크립트를 작성해야 합니다. 하지만 훨씬 적은 수의 사람들만이 JavaScript로 코드를 작성하십시오."

"JavaScript라는 이름이 붙은 이유는 무엇입니까? 거의 Java처럼 들립니다."

"사실 처음에는 LiveScript라고 불렸지만 Java가 대중화되기 시작하면서 JavaScript로 이름이 바뀌었습니다."

"Java와 JavaScript는 완전히 다른 두 언어입니다. 혼동하지 마십시오."

"Java와 달리 JavaScript에는 클래스가 없으며 정적 타이핑, 멀티스레딩 등을 지원하지 않습니다. Java는 대규모 구성 도구 세트와 같지만 JavaScript는 스위스 군용 칼에 가깝습니다. JavaScript는 문제를 해결하도록 설계되었습니다. 작은 작업이지만 Java는 크고 매우 큰 작업을 해결하기 위한 것입니다."

"다음은 JavaScript에 대한 몇 가지 사실입니다."

"첫 번째 사실은 JavaScript에 기능은 있지만 클래스는 없다는 것입니다."

"단순히 여러 함수를 사용하여 프로그램을 작성하면 됩니다. 예를 들면 다음과 같습니다."

자바스크립트
function min(a, b)
{
 return a
}
자바
public static int min(int a, int b)
{
return a
}

"새로운 함수는 «function <name>»을 사용하여 선언됩니다.

"다른 예시:"

자바스크립트
function min(ab)
{
 return a < b ? ab;
}

function main()
{
 var s = 3;
 var t = 5;
 var min = min(s, t);
}
자바
public static int min(int a, int b)
{
 return a < b ? ab;
}

public static void main()
{
 int s = 3;
 int t = 5;
 int min = min(s,t);
}

"두 번째 사실은 JavaScript에는 변수가 있지만 해당 변수에는 유형이 없다는 것입니다."

"JavaScript는 동적으로 유형이 지정되는 언어입니다. 이는 변수에 실제로 유형이 없음을 의미합니다. 모든 변수에는 모든 유형의 값을 할당할 수 있습니다(값에는 유형이 있음). 예를 들면 다음과 같습니다."

자바스크립트
function main()
{
 var s = "Bender";
 var k = 1;
 var n = s.length;
}
자바
public static void main()
{
 String s ="Bender";
 int k = 1;
 int n = s.length();
}

"그러나 동적 타이핑은 런타임 오류의 위험을 증가시킵니다."

자바스크립트
function main()
{
 var s = "Bender";
 var k = 1;
 var n = k.length;
}
자바
public static void main()
{
 String s ="Bender";
 int k = 1;
 int n = k.length();
}

"위의 예에서 우리는 s(문자열) 대신 변수 k(정수)를 사용했습니다. Java에서는 컴파일 타임에 오류가 감지되지만 JavaScript에서는 나중에 코드가 달리고 있다."

"JavaScript에서 변수를 선언하려면 «var <name>»을 작성해야 합니다. 변수 유형이 없으며 메서드/함수 또는 해당 인수에 대한 유형이 없습니다."

"JavaScript에는 엄격한 규칙이 거의 없고 무정부 상태가 많습니다."

"5개의 인수로 함수를 선언하고 2개로 호출할 수 있습니다. 나머지는 null이 됩니다. 2개의 인수로 함수를 선언하고 호출할 때 5개를 전달할 수 있습니다. 3개는 그냥 버려집니다. 최소한의 제어가 있습니다. 오류, 오타 및 변경에 대해."

"세 번째 사실은 JavaScript에 if, for 및 while 문이 있다는 것입니다."

"JavaScript에는 if, for 및 while이 있습니다. 이것은 좋은 소식입니다. 다음 예제를 보십시오."

자바스크립트
function main()
{
 var s = "Bender";

 var result = "";

 for(var i = 0; i < s.length; i++)
 {
  result += s[i] + "";
 }
 if(result.length > 10)
 {
  alert (result);
 }
 else
 {
  while(result.length <= 10)
  {
   result += " ";
  }
  alert(result);
 }
}
자바
public static void main()
{
 String s = "Bender";
 char[] s2 = s.toCharArray();
 String result = "";

 for(int i = 0; i < s.length(); i++)
 {
  result += s2[i] + "";
 }
 if(result.length() > 10)
 {
  System.out.println(result);
 }
 else
 {
  while (result.length() <= 10)
  {
   result += " ";
  }
  System.out.println(result);
 }
}

"매우 비슷합니다. JavaScript로 작성된 코드가 어떻게 작동하는지 이해할 수 있을 것 같습니다."

"당신의 낙관주의는 좋습니다."

"네 번째 사실은 JavaScript가 try-catch-finally 블록을 지원한다는 것입니다."

" JavaScript 에는 예외( Error )가 있고 좋습니다. 확인된 예외는 없고 RuntimeException 과 유사한 확인되지 않은 예외만 있습니다 . try-catch-finally 구조는 Java에서와 동일하게 작동합니다. 예를 들면 다음과 같습니다."

자바스크립트
function main()
{
 try
 {
  var s = null;
  var n = s.length;
 }
 catch(e)
 {
  alert(e);
 }
}
자바
public static void main()
{
 try
 {
  String s = null;
  int n = s.length();
 }
 catch(Exception e)
 {
  System.out.println(e);
 }
}

"문자열의 길이를 얻으려고 하면 변수가 null이기 때문에 예외가 발생합니다."

"다섯 번째 사실은 JavaScript에 배열이 있다는 것입니다."

"좋은 소식: JavaScript에는 배열이 있습니다. 나쁜 소식: 목록이나 컬렉션이 없습니다."

"또 다른 희소식은 새로운 요소가 추가될 때 배열이 동적으로 확장되고 요소가 제거될 때 감소할 수 있다는 것입니다. 배열과 목록 사이의 하이브리드에 가깝습니다. "

예를 들어:

자바스크립트
function main()
{
 var m = [1, 3, 18, 45, 'c', "roma", null];
 alert(m.length); // 7

 m.push("end");
 alert(m.length); // 8

 for (var i = 0; i < m.length; i++)
 {
  alert(m[i]);
 }
}
자바
public static void main()
{
 List m = Arrays.asList(1, 3, 18, 45,'c', "roma", null);
 System.out.println(m.size()); // 7

 m.add("end");
 System.out.println(m.size()); // 8

 for (int i = 0; i < m.size(); i++)
 {
  System.out.println(m.get(i));
 }
}

"배열 선언에 있는 대괄호는 무엇입니까?"

"그것이 바로 배열 선언입니다. 배열을 선언하려면 대괄호를 작성해야 합니다. 그런 다음 대괄호 사이에 배열의 요소를 나열합니다. 단순히 대괄호 쌍으로 빈 배열을 선언합니다."

var m = [];

"여섯 번째 사실은 JavaScript에 객체가 있다는 것입니다."

"JavaScript에는 개체가 있습니다. 사실 JavaScript의 모든 것은 기본 유형을 포함하여 개체입니다. 각 개체는 키-값 쌍의 집합으로 표현됩니다. 대략적으로 말하면 모든 JavaScript 개체는 Java의 HashMap과 동일합니다. 다음은 다음의 예입니다. 개체 선언:"

자바스크립트
function main()
{
 var m = {
  first_name : "Bill",
  last_name: "Gates",
  age: 54,
  weight: 67,
 children: ["Emma", "Catrin"],
 wife: {
  first_name : "Melinda",
  last_name: "Gates",
  age: 45,
  }
};

 alert(m.first_name); // Bill
 alert(m.age); // 54
 alert(m.wife.first_name); // Melinda

 m.age = 45;
 m.age++;
 m["first_name"] = "Stive";
 m["wife"] = null;
자바
public static void main()
{
 HashMap m = new HashMap();
 m.put("first_name", "Bill");
 m.put("last_name", "Gates");
 m.put("age", 54);
 m.put("weight", 67);

 String[] children = {"Emma", "Catrin"};
 m.put("children", children);

 HashMap wife = new HashMap();
 wife.put("first_name", "Melinda");
 wife.put("last_name", "Gates");
 wife.put("age", 45);
 m.put("wife", wife);

 System.out.println(m.get("first_name"));
 System.out.println(m.get("age"));

 HashMap w = ((HashMap)m.get("wife"));
 System.out.println(w.get("first_name")));

 m.put("age", 45);
 m.put("age", ((Integer)m.get("age")) + 1);
 m.put("first_name", "Stive");
 m.put("wife", null);

"새 개체를 만들려면 중괄호 두 개만 작성하면 됩니다: «{}»."

"중괄호 안에 다음 형식으로 개체 데이터를 지정할 수 있습니다. «키, 콜론, 값, 쉼표»."

"개체 필드는 두 가지 방법으로 액세스할 수 있습니다."

동등한 진술
m.age = 45;
m[“age”] = 45;

"지정된 필드가 존재하지 않으면 생성됩니다."

"릴리프 밸브에 과부하가 걸리거나 그렇군요. 휴식을 취해야 할 것 같습니다."

"일곱 번째 사실은 JavaScript가 웹 페이지 내에서 작동하도록 만들어졌다는 것입니다."