자바스크립트의 역할
- HTML : 웹의 구조
- CSS : 꾸며주는 역할
- JS : 동적 요소
변수
- 자바와 같이 변수를 변경 할 수 있다
- 변수의 이름은 숫자로 시작할 수 없음
- 자바스크립트의 변수는 타입을 지정할 필요 없으며 타입을 인식함
var 변수이름; -> 변수 선언
변수이름 = ""; 변수 초기화 ""의 경우 String
var 변수이름 = 초기화 값
console.log(변수); -> 변수 출력
자바스크립트 적용
<script src="index.js"></script>로 스크립트 코드를 연동 시킴
변수의 타입
- JS에서 타입의 특징정적 타입(static/strong type)의 언어이를 명시적 타입 선언(explicit type declaration)이라 한다
- 컴파일 시간에 변수의 타입이 결정되는 언어
- 대표적으로 C,JAVA가 있다
- 정적 언어는 변수에 들어갈 값의 형태에 따라 자료형을 지정해야 한다
- 컴파일 시에 자료형에 맞지 않는 값이 들어있을 경우 컴파일 에러가 발생
- 타입 안정성이 올라간다
- 런타임 시에 변수의 데이터 타입이 결정되는 언어
- javascript가 대표적이다
- 타입에 대해 유연하고 편하다
- 실행 도중 예상치 못한 타입이 들어와 사용자가 직접 에러를 확인하는 큰 문제가 발생
- 재할당 문제로 타입을 잘못 예측하여 오류를 불러올 수 있다. 변수가 많다면 오류 발생 확률이 올라간다
- 계속적으로 바뀌게 되면 추적이 어렵고 타입으로 인한 오류가 일어날 수 있다..
- 재할당, 초기화를 막기 위해 상수를 적극 활용한다.
- 어디서든 참조하고 변경 가능한 변수**(static 변수)**는 값이 변경될 경우 여러 코드가 참조하고 있는 변수임으로 영향을 줄 가능성이 높다
- 동적 타입의 유의사항
- 동적 타입 언어는 변수에 어떤 데이터 타입의 값이라도 자유롭게 할당할 수 있다.
- 변수를 선언할 때 변수에 할당할 수 있는 값의 종류(데이터 타입)을 사전에 선언해야 한다
- 자바스크립트는 동적 타입 언어이다.
문자열
- "", ''로 감싸주면 문자열로 인식 (혼용 불가)
- 특정 예약 문자의 경우 \를 통해 문자로 인식 시켜줘야 함
숫자
- 정수 , 음수 , 실수로 인식함
함수(메서드)
- 함수 값dd을 바로 사용 할 수도 있다 (자바와 동일)
- 변수 및 메서드 활용은 자바와 유사하다
/*
1번째 방법
*/
var func1 = function(){
console.log("Func1");
} // 함수 정의
func1();
// 함수 호출
/*
2번째 방법
*/
function func1() {
console.log("Func1");
} //함수 정의
func1(); //함수 호출
/*
1번째 방법
*/
var area = function(width, height) {
return width * height;
}
area(10, 20);
// 사용 예)
var area = function(width, height) {
return width * height;
}
//새 변수를 생성한 후, 그 변수를 console.log()로 감싸기
var result = area(10, 20);
console.log(result);
//함수 자체의 리턴 값을 console.log()로 찍기
console.log(area(10, 20));
배열
- 배열 프로퍼티 와 메서드Java의 경우 배열의 요소가 하나의 타입으로 통일 되며 서로 연속으로 인접해 있는 배열을 밀집 배열(dense array) 이라 하며
- 자바스크립트의 배열은 배열의 객체가 아닌 배열의 기능을 할 수 있는 특수 객체이다 (인덱스를 갖는 것이 아닌 문자열(’’)의 프로퍼티 키를 갖는 형식)
- 특정 인덱스에 빠르게 접근하는 Java와 같은 성질이 아니며 해시 테이블로 구현된 객체이다 따라서 인덱스로 접근하는 방식이 비교적 느리다, 하지만 값에 접근하는 탐색에는 Javascript의 배열이 유리하다.
- 특정 인덱스에 데이터를 삽입, 삭제하는 작업의 경우 일반적인 배열보다 성능이 좋다.
- Javascript의 배열은 배열의 메모리 공간이 동일한 크기를 갖지 않아도 되며 연속적이지 않을 수 있는 배열 희소 배열 (sparse array) 이라 한다.
- C와 Java의 배열은 크기를 지정해야 하는 고정 길이 이지만 Javascript의 배열은 크기가 가변적이고 담을 수 있는 데이터 타입도 자유롭다.
- 배열의 경우 자바와는 다르게 배열의 크기를 선언할 필요가 없다
- 자바스크립트의 특성 상 데이터 타입도 지정 할 필요 없다.
var fruit = [“사과”, “배”, “수박”];
console.log(fruit); //데이터 확인
자바스크립트 객체
- 데이터의 경우 프로퍼티라 부르며
- 함수의 경우 메서드라 부른다
var student = {
name : “kim”,
age : 20,
skills : [“자바스크립트”, “HTML”, “CSS”],
sum : function (num1, num2) { return num1 + num2;}
}
console.log([student.name](<http://student.name/>)); [//객체명.프로퍼티명](<https://xn--i49a66y8vn.xn--2o2bo3b123b8pag5d/>)
console.log(student[‘name’]); //객체명[“프로퍼티명”]
// 위 둘은 같은 의미
undefined와 null
var unde;
var empty = null;
/*
undefined: 변수 안에 데이터를 입력하지 않은 상태 (데이터가 없는 것)
null: 개발자가 임의로 변수 안에 빈 데이터를 삽입한 상태(빈 데이터를 지정한 것)
*/
boolean
var t = true;
var f = false;
데이터의 프로퍼티와 메서드
String 프로퍼티와 메서드
Java와 유사한 메서드와 인스턴스를 가지고 있음
var str1 = “Hello World”;
str1.length; // 문자열 길이 11
str1.charAt(0); // 문자 H 추출
str1.split(“ ”); // 공백 기준으로 문자 나눈 후 배열 [Hello, World]의 배열로 나뉘어짐
console.log(Object.getOwnPropertyDescriptors([1, 2, 3]));
/*
{
'0': { value: 1, writable: true, enumerable: true, configurable: true },
'1': { value: 2, writable: true, enumerable: true, configurable: true },
'2': { value: 3, writable: true, enumerable: true, configurable: true },
length: { value: 3, writable: true, enumerable: false, configurable: false }
}
'0','1','2' 가 프로퍼티 키
프로퍼티키에 value로 1,2,3를 가지고 있음
*/
var fruit = [“사과”, “배”, “포도”];
fruit.length; // 데이터 개수
fruit.push(“딸기”); // 배열 뒤에 데이터 삽입
fruit.unshift(“레몬”); // 배열 앞에 데이터 삽입
fruit.pop(); // 배열 뒤의 데이터 제거
fruit.shift(); // 배열 앞의 데이터 제거
Math 연산과 메서드
Java Math클래스와 유사함
Math.abs(-3); // 절대값
Math.ceil(0.3); // 올림
Math.floor(10.9); // 내림
Math.random(); // 임의의 숫자 출력
문자를 숫자로 파싱하는 메서드
parseInt(“20.6”); // 정수 형태의 20 변환
parseFloat(“20.6”); // 실수 형태의 20.6 변환
'JavaScript' 카테고리의 다른 글
await 와 async (0) | 2024.05.28 |
---|---|
Symbol (0) | 2024.01.21 |
Object 메서드 정리 (0) | 2024.01.12 |
변수와 생성자 함수 (1) | 2024.01.05 |
JavaScript에서 Object 및 this (0) | 2023.12.27 |