자바스크립트는 숫자 데이터 타입을 int나 double등으로 구분하지 않고, Number로 표기함
var a = 15 + 20; //number끼리 더한 값으로 35
var b = "15" + "20"; //문자열끼리 더한 값으로 1520(문자열) 출력
document.write(a + ' ' + b)
var number = 5;
console.log(number++) // 5를 출력하고 +1을 함 > 현재 6
console.log(--number) // 6에서 -1한 5를 출력함
데이터를 담는 공간
var fruit; //변수 선언
fruit = “apple” //변수 초기화
var fruit = “apple”; //변수 선언 및 초기화를 한번에도 가능
fruit = “banana”; //변수 데이터 변경
console.log(fruit); //banana 출력됨
document.write(fruit); //변수의 데이터를 웹 화면에 출력할 때
var 1str; //변수명은 숫자로 시작할 수 없음
var randomNumber; //변수명은 최대한 자세하게 작성
var tmax; //의미가 불명확한 단어들의 조합은 피해야 함
<body>
script src = “index.js”
</body>
script 태그 안에 src의 속성값으로 js파일을 입력하여 html파일과 연동변수에 전달되는 데이터 타입에도 여러가지(8가지) 종류가 존재
| 문자열string | 숫자number | 함수function | 배열array |
|---|---|---|---|
| 객체object | 불린boolean | 정의되지 않음undefined | 널null |
“큰 따옴표” ‘작은 따옴표’ 안에 작성된 데이터
var str1 = "Hello World";
var str2 = 'Nice to meet you';
var str3 = "20"; //따옴표 안에 있으므로, 숫자가 아닌 문자열
var str4 = 'He's a boy' //따옴표 혼용 불가
var str5 = "He\'s a boy". //따옴표를 문자열 안에 넣고 싶으면, \를 사용할 것
별도의 기호 없이 숫자를 입력한 상태
javascript는 int, dougble처럼 숫자를 구분하지 않고 number로 지정
함수 생성 : function 이라는 키워드를 사용하여 생성
함수 호출 : 함수 안에 있는 코드를 실행시키겠다는 의미
var func1 = function() {
console.log("Func1");
} //함수생성(1)
function func2() {
console.log("Func1");
} //함수생성(2)
func1(); // 함수 호출
var area = function(width, height) {
return width * height;
}
var result = area(10, 20);
console.log(result); // result라는 결과 값 변수를 생성
console.log(area(10, 20)); // 인자를 넣은 함수를 변수로 선언해서 그 값을 확인할 수도 있음
비슷한 성격을 갖고 있는 데이터를 하나의 변수 안에서 관리
var fruit = [“사과”, “배”, “수박”];
console.log(fruit[0]); // 0번째 인덱스의 사과 추출
fruit[0] = “포도”;
console.log(fruit); // 포도, 배, 수박
프로퍼티, 메서드, 데이터로 구성, 여러 종류의 데이터 타입 삽입 가능
var student = {
name : “suki”,
age : 20,
skills : ["자바스크립트", "HTML", "CSS"],
sum: function (num1, num2) {
return num1 + num2;
// name, age, skills : 프로퍼티 : 객체가 가지고 있는 데이터
// "suki" : 데이터
// sum : 메서드 : 객체가 가지고 있는 함수
}
}
console.log(student.name); //객체명.프로퍼티명
console.log(student['name']); //객체명["프로퍼티명"]
student.name = “Kwon”; //name 프로퍼티의 데이터 변경
console.log(student.name); // Kwon 출력
document.write(student.sum(10, 20)); // 객체 안에 있는 함수 호출 가능
var unde; //선언만 하고 초기화를 하지 않음
var empty = null; //null로 초기화를 해줌
참 또는 거짓 데이터가 들어가 있는 상태
초콜릿의 종류별로 갖고 있는 고유한 성질, 자바스크립트에서 사용자를 위해 사전에 작성된 편의 기능
문자열 프로퍼티와 메서드 종류
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String
var str1 = “Hello World”;
str1.length; //문자열 길이 11
str1.charAt(0); // 문자열 H추출 :
str1.split(“ “); // 공백 기준으로 문자 나눈 후 배열 [Hello, World]로 출력
var fruit = [“사과”, “배”, “포도”];
fruit.length; // 데이터 개수
fruit.push(“딸기”); // 배열 뒤에 데이터 삽입
fruit.unshift(“레몬”); // 배열 앞에 데이터 삽입
fruit.pop(); // 배열 뒤에 데이터 제거
fruit.shift(); // 배열 앞의 데이터 제거
Math.abs(-3); // 절댓값
Math.ceil(0.3); // 올림
Math.floor(10.9); // 내림
Math.random(); // 0과 1사이의 임의의 숫자 출력
parseInt(“20.6”); // 정수 형태의 20 변환
pareFloat(“20.6”); // 실수 형태의 20.6 변환
++1씩 증가, -- 1씩 감소
var num = 10;
console.log(++num); // num+1후 num 출력. 11이 출력
console.log(--num); // num-1후 num 출력. 10이 출력
console.log(num++); // 출력 후에 +1이 됨. 10이 출력이 되지만 num에는 이제 11.
console.log(num--); // 출력 후에 -1이 됨. 11이 출력이 되지만 num에는 이제 10.
console.log(10 == 20); // 값이 같다 False
console.log(10 === 20); // 데이터 타입과 값이 같다 False
console.log(10 !== 20); // 값이 같지 않다 True
앞 뒤 조건을 비교해서 true혹은false 반환
console.log(10 === 10 && 20 === 30); // 둘 다 참인 경우에만 true반환하는 and 연산자
console.log(10 === 10 || 20 === 30); // 둘 중 하나라도 참이면 true 반환하는 or 연산자
주어진 조건에 따라 결과값을 출력하는 구문
조건으로는 비교 연산자 또는 논리 연산자 사용
if(조건) { 수행할 명령 }
만약 a<b가 참이라면 중괄호 안의 코드를 실행
var a = 20;
var b = 40;
if ( a < b ) {
console.log("a는 b보다 작다.");
}
조건이 true이면 if문, false면 else문 실행
var a = 20;
var b = 40;
if ( a > b ) {
console.log("a는 b보다 크다.");
} else {
console.log("a는 b보다 작거나 같다.");
}
여러개의 조건문을 생성할 때 사용
위에서부터 조건을 검사해서 한번이라도 참이 나오면 아래 부분은 실행 안함
var a = 20;
var b = 40;
var c = 60;
if ( a > b ) { console.log("a는 b보다 크다.");
} else if ( b > c) { console.log("b는 c보다 크다.");
} else if ( a < c) { console.log("a는 c보다 작다.");
} else if ( b < c) { console.log("b는 c보다 작다.");
} else { console.log("모든 조건을 만족하지 않는다.");
}
if 문 안에 if문을 추가로 넣을 때 사용
var a = 20;
var b = 40;
if ( a !== b ) {
if (a > b) {
console.log("a는 b보다 크다.");
} else {
console.log("a는 b보다 작다.");
}
} else {
console.log("a는 b보다 작다.");
}
ex) 구구단 출력과 같은 단순 반복이 필요한 경우
for(초기화한 변수값; 조건; 증감 표시) { 수행할 명령 }
조건이 참인 경우에는 실행, 조건이 거짓인 경우 끝나는 것!
for (var i = 0; i < 10; i++) {
console.log(i);
}
while (조건) { 수행할 명령 }
num <10이 참일 동안 중괄호 안의 코드 실행
var num = 0;
while (num < 10); {
console.log(num);
num++;
}
do { 수행할 명령 } while (조건)
while의 조건과 관계 없이, do의 명령을 무조건 실행부터 한다.
-> 무엇인가를 실행하고 안될 경우 3번 반복해야한다 이런 경우에 사용되곤 함
var i = 12;
do {
console.log(i);
i++;
} while (i < 10);
var dice = Math.floor(Math.random() * 6 ) + 1;
1) 0에서 1사이의 임의의 숫자를 출력
2) 출력된 랜덤 수 * 6
3) 내림을 해서 정수 형태로 만듦
4) +1을 해서 주사위 값을 만듦
매개변수 n이 소수라면 true를, 소수가 아니라면 false를 반환
function isPrime(n) {
var divisor = 2; //2부터 나누기 시작
if (n == 1) return false;
while(n > divisor) { //n이 나누는 수보다 클 때까지 (2부터 n-1까지)
if(n % divisor === 0) { //n과 나누는 수가 나누어 떨어지면
return false;
} else {
divisor++; //나누어 떨어지지 않는다면 나누는 수 1 증가
}
}
return true; //모두 다 나누어 떨어지지 않았기때문에 true 출력
}
for(var i = 1; i <= 20; i++) {
document.writeln(i, isPrime(i));
}
문자열 맨 뒤부터 출력해야 하므로 i가 0이 될 때까지 1씩 감소
인덱스는 0부터 (문자열 길이-1)이라는 점 유의
function reverse (str) {
var reverStr = ‘ ’; //빈 문자열
for (var i = str.length -1; i >= 0; i- -) {
reverStr = reverStr + str.charAt(i); // str의 i번째 문자를 빈 문자열에 추가
} return reverStr;
}
console.log(reverse(‘Hello’));
function timesTable(n) {
for(i=1; i<10; i++) {
document.write(n + " x " + i + " = " + (n*i) + '<br>');
}
}
timesTable(2); // 2단만 출력
timesTable(3); // 3단만 출력
// 2단부터 9단까지 출력하는 반복문
for(n=2; n<10; n++) {
for(i=1; i<10; i++) {
document.write(n+"x"+i+"="+(n*i)+'<br>');
}
}