x
<script src="1.js" charset="UTF-8">
alert("^_^");
</script>
o
<script src="1.js" charset="UTF-8"></script>
<script>
alert("^_^");
</script>
x
<script>
alert("1")
[0,1,2,3,4].forEach(alert);
</script>
o
<script>
alert("1")
alert("2");
[0,1,2,3,4].forEach(alert);
</script>
o
let abc; //문자
let z123; //숫자로 시작안하는 숫자
let $ = 1; //달라
let _ = 2; //언더바
alert($+_);
x
let 1a; //숫자로시작x
let cole-lar; //하이픈x
let let; //예약어x
let class; //예약어x
let return; //예약어x
let function; //예약어x
x
const a1 = 3.142562;
a1 = 1.14; //error
\\\대문자 상수 활용
const COLOR_RED ="#F00";
const COLOR_GREEN ="#0F0";
const COLOR_BLUE= "#00F";
const COLOR_ORANGE = "#FF7F00";
let color = COLOR_ORANGE;
alert(color);
const BIRTHDAY ='03.13.1994';
const age = fxt(BIRTHDAY);
5.자료형
\\\숫자형
alert(1/0); //무한대 어떤숫자건 0으로 나누면
alert(Infinity); //무한대직접참조
alert(한글/2); //NaN 부정합한수학연산
const HIGH_SCORE =123456789123456789615165161651n;//BigInt
\\\문자형
let str = "안녕";
let str2 = '이럴수가';
let phrase = `nope, ${str}`;//표현식은 `(역따옴표)만가능
let name = "제리";
alert(`hello, ${name}!`);
alert(`1 plus 2 is ${1+2}`);
x
let name = "제리";
alert("hello, ${name}!"); //error
alert('1 plus 2 is ${1+2}');//error
\\\불린형
let isGood = 5>4;
alert(isGood);//true;
\\\null
let age = null;
\\\undefined
let age;
alert(age); //undefined
let age = 14;
age =undefined;
alert(age); //undefined
\\\object
\\\typeof
typeof undefined;
typeof(0);
typeof 10n;
typeof(true);
typeof "foo";
typeof Symbol("id");//symbol
typeof(Math); //object
typeof null; //object But x
type of alert; //function
alert("hello");
result =prompt(title, [default]); //[] <-선택값
let age = prompt('나이를 입력하세요', 100);
alert(`당신의 나이는 ${age}살 입니다.`);
\\\IE
let test = prompt("test",'');//IE는 기본값이 필수
\\\confirm
//result = confirm(question);
let isBoss = confirm("당신이 주인인가요");
alert(isBoss);
\\\문자형변환
let value = true;
alert(typeof value); //boolean
value = string(value);
alert(typeof value); //string
\\\숫자형으로변환
alert("10"/"2"); //5 <-수학관련 표현연산에서 자동 변형
let str="123";
alert(typeof str); //string
let num = Number(str);
alert(typeof num); //number
let age = Number("문자열 23");
alert(age); //NaN <- 숫자이외문자열이 있는경우 NaN
Number(undefined) //nan
Number(null) //0
Number(true) //1
Number(string) //nan <-(1)공백제거(2)문자없으면0
alert(number(" 123 "); //123
alert(number("123z"); //NaN
alert(number(true); //1
alert(number(false); //0
\\\불린변환
alert(boolean(1)); //true
alert(boolean(0)); //false
alert(boolean("gi")); //true
alert(boolean("")); //false
alert(boolean("0")); //true
alert(5%2) //나머지 1
alert(8%3) //나머지 2
alert(2**2)// (2*2)
alert(2**3)// (2*2*2)
alert(2**4)// (2*2*2*2)
alert(2**(1/2)}); 2의(1/2)승
alert(2**(1/3)}); 2의(1/3)승
let s = "my" + "string";
alert(s); //mystring
alert('1'+2); //"12"
alert(2 +'1'); //"21"
alert(2+2+'1'_; //"41"
alert(6-'2'); //4
alert('6'/'2') //3
let x = 1;
alert (+x); //1
alert(+true); //1
alert(+""); //0
let apples="2";
let oranges="3";
alert(apples+oranges); //23
alert(+apples +oranges); //5
let n =2;
n+=5; //n==7
n*=2; //n==14
let a++;
varr b--;
const x //error
5++ //error
let counter2 =0;
alert(++counter2); //1
let counter1 =0;
alert(counter1++); //0
let counter =1;
alert(2*++counter); //4
let counter2 =1;
alert(2*counter2++); //2
recomand
let counter =1;
alert(2*counter);
counter++;
and(&)
or(|)
xor(^)
not(~)
Lshift(<<)
Rshift(>>)
NRshift(>>>)
let a =(1+2,3+5);
alert(a); //8 (1+2의결과는 버려짐)
for(a=2,b=3,c=a*b;a<10;a++){
}
""+1+0 ="10"
""-2+0 = -2
true+false =1
6/"3" =2
"2"*"3"=6
4+5+"px"="9px"
"$"+4+5="$45"
"4"-2=4
"4px"-2=NaN
7/0=Infinity
" -9 " +5 = " -9 5"
" -9 " -5 = -14
null +1 =1
undefined +1 =NaN
" \t \n" -2 = -2
9 비교연산자
>
<
>=
<=
==
!=
alert('z'>'a'); //true
alert('glow'>'glee'); //true
alert('Bee' <'be'); //true
alert('2'>1); //true
alert('01'==1); //true
alert(true==1); //true
alert(false==0); //true
let a =0;
alert(Boolean(a)); //false
let b = "0";
alert(Boolean(b)); //true
alert(a==b); //true
alert(""==false) //true
alert(0==false); //true
alert(0===false); //false
alert(null===undefined);//false
alert(null==undefined); //true
alert(null>0); //false <-널을 문자0으로봄
alert(null==0); //false
alert(null>=0); //true <-널을 문자0으로봄
alert(undefined>0); //false <-NaN
alert(undefined<0); //false <-NaN
alert(undefined==0); //false
10 if,조건부연산자?
if(0){};
if(1){};
if(par){};
var par = (2022>1994);
let result = condition ? value1 : value2;
let result = (age>18) ? 1 : 2;
let result = age>18 ? 1 : 2;
let message = (Age<3) ? 'bebe' :
(age<18) ? 'ho' :
(age<100) ? 'hello' :
'input real age';
alert(message);
11논리연산자
|| or
&& and
! not
alert( true||true); //true
alert( true||false);//true
alert( false||true);//true
alert( false||false);//false
if((1||0){ //true||false
alert('truth');
}
let hour = 9;
if(hour <10 || hour >18{
alert('영업시간이 아닙니다.');
}
let isWeekend=true;
if(hour<10||hour>18||isWeelend){
alert('x');
let firstName="";
let lastName="";
let NickName="바이올렛";
alert(firstName||lastName||nickName||"익명")//바이올렛
true||alert("not printed");
false||alert("printed");
alert(true && true); //true
alert(false && true); //false
alert(true && false); //false
alert(false && false); //true
alert(1&&5); //5 앞이 true면 뒤 반환
alert(1&&2&&3); //3 앞이 true면 마지막값 반환
(x>0)&&alert('0보다 큽니다!');
if(x>0) alert('0보다 큽니다!');
alert(!true);//false
alert(!0);//true 부정
alert(!!"non empty"); //true
alert(!!null); //false 불린값반환
alert(alert(0))//0,indefined => alert는 undefined반환
if(14<=age && age<=90){}
if(!14<age && !age<90){}
if(!(14<age && age<90)){}
if(14>age && age>90){}