public class student{
// 필드 -> 멤버 변수
private String name; // 인스턴스 변수
public static String schoolName; // 스태틱 변수, 클래스 변수
// 메서드
public void method( String name ){
// 매개변수 (파라미터)
int num = 10; // 지역변수
if(num > 10){
int a = 10; // 지역 변수
}
}
}
script 태그 내부 // js 파일
var num1; // 전역변수
num2; // 전역변수(변수명 앞에 키워드 아무것도 없으면 전역변수)
function test(){
var num3; // 지역변수
num4; // 전역변수(function이 끝나도 사용 가능함)
if(조건식){
var num5 // 지역변수 --> 펑션 안에까지 다 가능
num6 // 전역변수
}
}
Javascript는 변수 선언 시 자료형이 아닌
var, let, const 혹은 미작성 중 하나를 골라서 작성한다
var : 변수, 변수명 중복가능(덮어쓰기), 함수 레벨 scope
let : 변수, 변수명 중복안함 , 블록 레벨 {} scope
const : 상수, 변수명 중복안함, 블록 레벨 {} scope
1순위 : const (JS는 HTML 상에서 특정 요소를 선택해 지속적으로 추적하는 경우가 많다.
그래서 상수형 변수에 저장해 고정적으로 사용)
2순위 : let
3순위 : var
비추천 : 미작성
JS는 변수 선언 시 별도의 자료형을 지정하지 않음.
-> 변수에 대입되는 값(== 리터럴)에 의해서 자료형이 결정됨.
- string(문자열 / "",'')
- number(숫자 / 100(정수), -3.14(실수))
- boolean(논리값 / true, false)
- object(객체 / 배열(array), js객체 {K:V, K:V} )
- function (함수)
- undefined (자료형이 정의 되지 않은 변수) -> 값이 대입되지 않은 변수
* null은 참조하는 게 없음을 나타냄 -> 자바랑 비슷하네? (자료형 X)
function test() { // test 함수 정의
var num3 = 300; // 지역변수
num4 = 400; // 전역변수
console.log("함수 내부 num3 " + num3);
console.log("함수 내부 num4 " + num4);
if(true){
var num5 = 500; // 지역변수
num6 = 600; // 전역변수
}
console.log("if문 종료 후 num5 " + num5);
console.log("if문 종료 후 num6 " + num6);
}
test(); // 함수 호출
// console.log("함수 외부 num3 " + num3); num3 is not defined
// --> 이게 에러인데 밑에 코드(num4)
// 가 안 읽히는 이유는 스크립트 언어는 중간에 에러가 발생하면 멈추기 때문.
// -> 즉 인터프리터가 한 줄씩 읽어 내려 가기에 에러 발생하면 멈춤
// 함수 종료 후에는 사용 불가