Development (국비 복습 )/자바

[2023-02-21]연산자

Puddingforever 2023. 2. 21. 11:24

복습

 

1) undefined와 object는 값은 같지만 타입이 다르다. 

var myValue1; // undefined
var myValue2 = null // object
(myValue1 == myValue2) : true : 값만 비교하는 거라서 ! 
(myValue1 === myValue2) : false : 값과 타입을 다 비교해서 false !
             2) var 변수 = "" ; 는 값은 안들어있지만, 안에 값이 있고, null과 undefined랑은 다르다. String 타입 
var myValue1 ; //undefined
var myValue2 = null; // object
var myValue3 = "" ; // string타입 , 길이가 0
(myValue1 == myValue3) : false
(myValue2 == myValue2) : false
3)날짜 함수 
var nowDate = Date()
var resultP = document.getElementById("dateP")
resultP.innerHTML = nowDate;
 

4)escape character '앞에 \넣기 

var str = "\'pudding\' is ";
document.write(str); // 'pudding' is

 

 

5) infinity, NaN 

infinity : 타입은 number , 의미는 무한대로 큰 값을 의미 , ( 0이 아닌 숫자를 0으로 나눌 때) 
NaN : Not a Number : 타입은 number , 의미는 0~9 아닌 문자로 구성된 값은 내부적으로 NaN으로 처리 


 

 

 

1.산술연산자 

 

a%b : a를 b로 나눈 수의 나머지값 

var x =5;
var y =2;
console.log(x%y); // 1
var x =5;
var y =2;
console.log(String(x)+y); // 52

숫자 x를 String문자형으로 변환해서 +가 되서 y도 문자형으로 변환

var x =5;
var y =2;
console.log(String(x)*y); // 10

x가 문자형이 되도. * 산술연산자가 나왔기 때문에, 숫자로 계산된다. 

 

여러개의 산술 연산자가 사용된 경우 

var a = b = c = 5;
// c변수 선언 후 , 5 대입->b변수 선언 후, c의 값을 대입 ...
 

 

 

 

2.대입연산자

 

var x = 10;
x = x - 5;
console.log(x); //5

x = x -5 -> x-5를 실행 후, 변수 x에 대입 

 

var x=10;
var y =20;

var b = x>y; 
console.log(b); //false

비교연산자가 들어가서 조건문을 판멸하는 연산자가 된다.

 

    var y=20;
    y=y+2;//22
    y+=2; //24
    y=y-2; //22
    y-=2;//20
    y=y*2;//40
    y*=2;//80
    y=y/2;//40
    y /=2;//20
    y = y%2//0

3.증감연산자 (++,-- 일항연산자) 

 

var x = y = a = b = 10;

var result = ++x - 3;
console.log(result); //8

++가 앞에 있으면 , x에 이미 1이 포함되있는거라 ++x는 11이 된다 

 

var x = y = a = b = 10;
var result = x++ -3;
console.log(result); //7

++가 x뒤에 있으니까. x는 아직 10이다. 하지만 다음 계산부터 x는 11로 되서 계산된다. 

 

var x = y = a = b = 10;
var result = --x +3
console.log(result); //12
--가 x앞에 있으니까 x의 값은 9에서 계산된 것이다.
var x = y = a = b = 10;
var result = x-- +3
console.log(result); //13

--가 x뒤에 있으니까 x는 아직 10이고 , 다음 계산부터 x가 9인 상태로 시작된다. 

 

var x =10;
var y = x-- + 5 + --x;

console.log(y); // 10 + 5 + 8

x-- => 아직 10이지만 , 다음 계산부터 9가 되는데, 다음에 나오는 x는 --x라서 9인상태에서 -1을 더 빼서 8이다.

 

4.비교연산자 & 논리연산자 

 

<기본>

1.비교연산식

==: 값 같으면 true

===:타입 모두 같아야 true

!=:값이 같지 않으면 true

!==: 값이나 타입이 같지 않으면 true

2.논리연산식

a&&b : a랑 b가 무조건 같아야함  AND

a||B : a랑 b중 둘중에 하나만 같아야 함 or 

 

var x = 1;
var y = 0;

console.log(!(x==y)); //true

 

var x = 3;
var y = 5;
console.log(x+6>y+"<br>"); //false

뒤에 "<br>" 때문에 y+"<br>" 은 문자형이 된다.

즉,다른 타입의 비교가 일어나서 false이다.

var x = 3;
var y = 5;
console.log((x+6>y)+"<br>"); //true

이를 막기 위해 괄호부터 계산을 시작할 수 있다. 

 

문자형을 비교할 수 있다. 소문자 a~z 의 값이 대문자보다 크다(소문자가 더 먼저 만들어짐)

var a = "abc";
var b = "ab";
var c = "Xyz";

console.log(a>b); // true
console.log(b>c); //true a랑 X비교
console.log(a<c); //false

제일 앞에 있는 문자를 가지고 비교한다.

 

console.log("3">"a"); // false
console.log("10"<"a"); //true

문자값이 숫자보다 크다 

console.log(11>"11"); //false

다른 타입 비교는 false 

 

console.log(true!="a");//true

다른 타입 변화라 false이지만 !=의 비교이기 때문에 true

 
console.log("11">"2"); //false 
console.log("22">"1"); // true
문자형으로 비교로 되서 , 첫번쨰 코드는 1이랑 2를 비교하고 , 두번째 코드는 2와 1을 비교한다 
 
 
console.log(true=="true"); //false
console.log(true != "true"); //true

타입이 다르면 비교못해서 false나옴 

console.log(true == Boolean("true")); // true
console.log(String(true) == "true"); //true
 
 
 
var x = true;
var y = false;

console.log((x&&y)); //false 
console.log((x||y)); //true
&&은 둘다 true 여야 함 , ||은 한쪽만 true여도 괜찮음 

 

변수 대입된 값 0 : false

변수 대입된 값 0이 아닌 모든 숫자  : true

var x = 0;
console.log(Boolean(x));//false
var x = 1;
console.log(Boolean(x));//true

 

var 변수 = "" , undefined, null 모두 false 

var str =""; 
console.log(Boolean(str));//false
 
var str;
console.log(Boolean(str));//false
 
var str = null;
console.log(Boolean(str));//false
 
입력값 알고리즘에서 쓸 수 있음
만약 입력된 값 없이 button을 누르면 else문이 나오게 한다.
var str = "";
 
if(str){
    console.log("조건참")
}else{
    console.log("조건 거짓");
}
//조건 거짓 출력