2.1 변수와 고통
가장 흥미로운 것부터 시작합시다. JavaScript에는 변수가 있지만 해당 변수에는 유형이 없습니다. 모든 변수는 절대적으로 모든 값을 할당할 수 있습니다. 유형이 필요할 때까지 무해하거나 편리해 보입니다.
키워드는 변수를 선언하는 데 사용됩니다 var
.
var name;
var name = value;
JavaScript에서 변수 작업의 예:
var a = 10, b = 20;
var c = a*a + b*b;
var s = "Diagonal equals:";
console.log( s + Math.sqrt(c));
훌륭하고 명확한 코드죠? 아마도 이것이 아름답고 이해하기 쉬운 JavaScript 코드를 보는 인생의 마지막 시간일 것입니다. 이 순간을 기억하세요 :)
2.2 자바스크립트 입력
위에서 언급했듯이 JavaScript 언어의 변수에는 유형이 없습니다. 그러나 변수의 값에는 유형이 있습니다. JavaScript에서 가장 일반적인 5가지 유형은 다음과 같습니다.
# | 유형 | 예 | 설명 |
---|---|---|---|
1 | 숫자 |
|
임의의 숫자 포함 |
2 | 끈 |
|
문자열을 포함 |
삼 | 부울 |
|
참 또는 거짓 포함 |
4 | 정렬 |
|
요소 배열을 포함합니다. |
5 | 날짜 |
|
날짜 포함 |
6 | 물체 |
|
키, 값 쌍으로 구성된 개체를 포함합니다. Java의 HashMap과 유사한 것 |
7 | 기능 |
|
기능 |
typeof 키워드는 객체의 유형을 결정하는 데 사용됩니다. 예를 들면 다음과 같습니다.
var s = "134";
var x = (typeof s == "String") ? s*1 : s;
2.3 함수와 반환
물론 JavaScript에는 기능이 있습니다. 클래스가 없으므로 함수는 코드 어디에서나 선언할 수 있습니다. 다른 기능에서도. 일반적인 형식은 다음과 같습니다.
function name(a, b, c) {
// function code
return result;
}
함수에 유형이 없습니다. 언어 자체에 유형 호환성 제어가 없다면 왜 그렇습니까? 함수 매개변수도 누락되었을 수 있습니다. 값을 반환하는 반환 명령도 마찬가지입니다.
함수를 호출할 때 모든 유형의 매개변수를 얼마든지 전달할 수 있습니다 . 초과분은 폐기되고 누락된 항목은 동일합니다 null
.
기능 예시:
function getValue(name)
{
return this[name];
}
function setValue(name, value)
{
this[name] = value;
}
2.4 JavaScript의 배열
JavaScript의 배열은 Java의 배열과 매우 유사합니다. 예:
var array = [1, 2, 3, 4, 5];
array[3] = array[2];
console.log (array[0]);
모든 유형의 값을 가질 수 있으며 다른 배열도 가질 수 있습니다.
var array = [1, "Hello", 3.14, [4, 5] ];
array[3] = array[2];
console.log (array[0]);
또한 배열은 컬렉션처럼 동작합니다. 배열에 요소를 동적으로 추가할 수 있습니다.
var array = [];
array.push(100);
array.push(101);
array.push(102);
array[1] = array[2];
console.log (array[0]);
2.5 JavaScript의 객체
JavaScript의 객체는 Java의 HashMap과 매우 유사합니다. 여기에는 키-값 쌍이 포함되어 있습니다. 예:
var obj = {
name: "Bill Gates",
age: 67,
company: "Microsoft"
};
console.log (obj.age);
개체 필드는 두 가지 방법으로 액세스할 수 있습니다.
var x = obj.age;
var x = obj["age"];
HashMap과 마찬가지로 필드를 생성하고 삭제할 수 있습니다. 예:
var obj = {};
obj.name = "Bill Gates";
obj.age = 67;
obj.company = "Microsoft";
delete obj.age; //remove field