๐น๋ณ์ ์ ์ธ
var ๊ฐ ํ์ฅ์ด ๋์ด let์ผ๋ก ๋ณํ๊ณ ์์.
const(์์) : ์ด๊ธฐํ๋ฅผ ์ ์ธํ๊ณ ๊ฐ์ ๋ณ๊ฒฝ์ํฌ ์ ์๋ ๊ฐ.
var a = 10;
console.log(a);
let b = 20;
console.log(b);
const c = 30;
console.log(c);
10
20
30
๐นtypeof
typeof() : ๋ณ์์ ํ์ ์ ํ์ธํ๋ ํจ์.
let a = 10;
let b = 'Tiger';
let c = true;
let d = 3.14;
let e = []; // object type
let f = {}; // object type
let g = function(){} // function
let h = undefined; // ์ ์๋์ง ์์ ํ์
// number, string, boolean, object, function
console.log('a : ' + typeof(a));
console.log('b : ' + typeof(b));
console.log('c : ' + typeof(c));
console.log('d : ' + typeof(d));
console.log('e : ' + typeof(e));
console.log('f : ' + typeof(f));
console.log('g : ' + typeof(g));
console.log('h : ' + typeof(h));
a : number
b : string
c : boolean
d : number
e : object
f : object
g : function
h : undefined
๐น{ } - Key : Value
JSON - ์ด์ข ๊ฐ์ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ๋ฐ์ดํฐ ํฌ๋งท ํ์
JSON์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๊ฒ์ ์ง๋ ฌํ(Serializable) ํ๋ค๊ณ ํํ.
- JSON์ ํ ์คํธ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฏ๋ก, ์ฌ๋๊ณผ ๊ธฐ๊ณ ๋ชจ๋ ์ฝ๊ณ ์ฐ๊ธฐ ์ฝ๋ค.
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํ๋ซํผ์ ๋ ๋ฆฝ์ ์ด๋ฏ๋ก, ์๋ก ๋ค๋ฅธ ์์คํ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๊ตํํ๊ธฐ์ ์ข๋ค.
https://ko.wikipedia.org/wiki/JSON
1๏ธโฃ java ์ง๋ ฌํ
1. Serializable ์ธํฐํ์ด์ค ๋ด๋ถ๋ ๋น์ด์์ง๋ง JVM์ด ์์์ ๋ฌด์ธ๊ฐ๋ฅผ ํ๋ค.
JSON์ผ๋ก ๋์ถฉ ๋ง๋ค๊ณ (์ง๋ ฌํ) ๋์ถฉ ๊ฐ์ ธ์จ๋ค(์ญ์ง๋ ฌํ)
2. FileOutputStream(byte์ ์ฅ) >> FileWriter(๋ฌธ์ ์ ์ฅ)
3. java ์ง๋ ฌํ(java๋ผ๋ฆฌ๋ง), JSON ์ง๋ ฌํ(์ธ์ด์๊ด X)
FileOutputStream์ Serializable์ ์์ํ์ง ์์ผ๋ฉด Exception ๋ฐ์
// java ์ง๋ ฌํ
class Tiger implements Serializable{
String name = "ํธ๋์ด";
int age = 1000;
}
public class Hello {
public static void main(String[] args) {
Tiger tiger = new Tiger();
try {
// save
FileOutputStream fos = new FileOutputStream("sample.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(tiger);
fos.close();
oos.close();
// load
FileInputStream fis = new FileInputStream("sample.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
Tiger t2 = (Tiger)ois.readObject();
System.out.println(t2.name + " " + t2.age);
fis.close();
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
ํธ๋์ด 1000
2๏ธโฃ JSON ์ง๋ ฌํ
// key : value -> JSON(์ด์ข
๊ฐ์ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ๋ฐ์ดํฐ ํฌ๋งท ํ์)
let obj = {
a:10,
b:'tiger',
c:true,
d:[],
e:{},
f:function(){},
g:undefined
}
console.log(typeof(obj));
console.log(typeof(obj.a));
console.log(typeof(obj.b));
console.log(typeof(obj.c));
console.log(typeof(obj.d));
console.log(typeof(obj.e));
console.log(typeof(obj.f));
console.log(typeof(obj.g));
object
number
string
boolean
2 object
function
undefined
JSON ๊ฐ๋จ ์์
let obj = {
a:{
b:{
c:{
d:10
}
}
},
}
let obj2 = {
a:1000,
b:'tiger', // ๋ณดํต (,) ๋ก ๋๋ด๋ ๊ฒ์ด ์ฌ๋ฌ๋ชจ๋ก ํธํ๋ค.
}
console.log(typeof(obj.a.b.c.d));
console.log(obj.a.b.c.d);
number
10
๐น๋์ ํ์ ๋ณ๊ฒฝ
๐ต but, ๋น์ฉ ๋ฐ์
let apple = 10;
console.log(apple, typeof(apple));
/// ๋ด๋ถ ์์
// ๋ฉ๋ชจ๋ฆฌ ์์ฑ
// apple = new number();
// ์ฌ์ฉํ ์ ์๋ค.
// ๋ฉ๋ชจ๋ฆฌ ํด์
// delete(apple);
// apple = 'tiger'; ๋ก ์ธํด
// number type์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ญ์ ๋๊ณ
// string type์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ฑ๋๋ค.
apple = 'tiger';
console.log(apple, typeof(apple));
10 number
tiger string
๐นvar vs let
var : ์ง์ญ์ฑ์ ์ ์งํ์ง ์๋๋ค.
// var : ์ง์ญ์ฑ์ ์ ์งํ์ง ์์.
{
var a = 10;
}
console.log(a);
10
let : ์ง์ญ์ฑ์ ์ ์งํ๋ค.
// let : ์ง์ญ์ฑ์ ์ ์งํจ.
{
let b = 20;
// console.log(b); ๊ฐ๋ฅ
}
console.log(b);
์๋ฌ๋ฐ์
๐นconst
์์
// const
const a = 10;
console.log(a);
a = 20;
console.log(a);
10
์๋ฌ๋ฐ์
๐นundefined, null
undefined : ํ์ ์ด ์ ์ ๋์ง ์์. (return์ ๊ทธ๋๋ง ์์ฃผ ์ฐ์)
null : ํ์ ์ ์ ํด์ก์ง๋ง(Object), ์ฐธ์กฐํ๋ ๊ฐ์ด ์๋ค.
// undefined, null
// ํ์
์ด ์ ์ ๋์ง ์์๋ค.
// a์ ํ์
์ undefined
let a = undefined;
// ํ์
์ ์ ํด์ก๋ค.(Object)
// ์ฐธ์กฐํ๋ ๊ฐ์ด ์๋ค.
let b = null;
console.log(typeof(a));
console.log(typeof(b));
undefined
object
๐น๋ฌธ์์ด ์ฐ๊ฒฐ
๋ฌธ์์ด ์ฐ๊ฒฐ
let str = 'Hello';
str += ' world';
console.log(str);
let s = '100';
let n = 100;
console.log(s + n); // ๋ฌธ์์ด ์ฐ๊ฒฐ
console.log(typeof(s + n));
console.log(Number(s) + n);
console.log(typeof(Number(s) + n));
console.log(String(n) + 200);
console.log(typeof(String(n) + 200));
Hello world
100100
string
200
number
100200
string
๋ฌธ์์ด์ ์ซ์๋ก ๋ณํ
1. Number()
2. parseInt()
// ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํ
// 1. Number();
// 2. parseInt();
let s1 = '100';
let s2 = '200';
console.log(Number(s1) + 1);
console.log(parseInt(s2) + 1);
let s3 = '100์';
let s4 = '200์';
console.log(Number(s3) + 1);
console.log(parseInt(s4) + 1);
101
201
NaN
201
์๊ฐ ์ฝ๋
๋ฌธ์์ด ์์ (+)
let s5 = '10';
let s6 = +'10';
let s7 = +s5;
let s8 = 999 + +s5;
console.log(typeof(s5));
console.log(typeof(s6));
console.log(typeof(s7));
console.log(s7);
console.log(typeof(s8));
console.log(s8);
string
2 number
10
number
1009
๐น์ฐ์ฐ์
๐ ๋ชจ๋ ์๋ฐ์ ๋ฌธ๋ฒ์ด ๋์ผ ํ๋ค
(์ฐ์ , ๊ด๊ณ, ๋
ผ๋ฆฌ ์ฐ์ฐ
์ฆ๊ฐ, ๊ฐ์ ์ฐ์ฐ์
+=, ๋ณตํฉ ๋์
์ฐ์ฐ์
true, false
4๋ ์ ์ด๋ฌธ
์ผํญ์ฐ์ฐ)
๐ ๋ค๋ฅธ ๋ถ๋ถ
console.log(Math.pow(2, 3));
console.log(2 ** 3);
console.log(2 ** 3 ** 2);
console.log((2 ** 3) ** 2);
2 8
512
64
๐น์ง์, ์ง๋ฒ
let a = 10;
let b = 0x10; // 16์ง์ ํ๊ธฐ
let c = 0o777; // 8์ง์ ํ๊ธฐ
let d = 0b1111011; // 2์ง์ ํ๊ธฐ
console.log(a);
console.log(b);
console.log(c);
console.log(d);
10
16
511
123
๐น==, ===
== : ๊ฐ์ด ๊ฐ์๊ฐ?
=== : ๊ฐ๊ณผ ํ์ ๋ชจ๋ ๊ฐ์๊ฐ?
// ๊ฐ์ด ๊ฐ์๊ฐ?
console.log(10 == 10);
// ๊ฐ์ด ๊ฐ๊ณ ํ์
๋ ๊ฐ์๊ฐ?
console.log(10 === '10');
console.log(10 == '10');
true
false
true
๐น/ , %
console.log(7 / 4); // ์ ํํ ๊ฒฐ๊ณผ๊ฐ์ด ๋์จ๋ค.
console.log(7 % 4);
1.75
3
๐น' ', " ", ` `
' ' : ๋ฌธ์์ด
" " : ๋ด๋ถ์ ' ' ํํ ๊ฐ๋ฅ
` ` : ๋ด๋ถ์ ๊ฐ์ ๊ฐ์ ธ์ฌ ์ ์๋ค.
console.log('ํ๊ธ');
console.log("ํ๊ธ'๊ณผ'์ปดํจํฐ");
let first = 'tiger';
let last = 'lion';
console.log(`My name is ${first} or ${last}`);
let a = 3;
let b = 4;
console.log(`${a + b}`);
console.log(`${a} + ${b} = ${a + b}`);
ํ๊ธ
ํ๊ธ'๊ณผ'์ปดํจํฐ
My name is tiger or lion
7
3 + 4 = 7
๐นSymbol
์ฃผ๋ก ์ด๋ฆ์ด ์ถฉ๋ํ ์ํ์ด ์๋ ๊ฐ์ฒด์ ์ ์ผํ ํ๋กํผํฐ ํค๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉ.
์ฌ๋ฒ ๊ฐ์ ๋ค๋ฅธ ๊ฐ๊ณผ ์ค๋ณต ๋์ง ์๋ ์ ์ผ๋ฌด์ดํ ๊ฐ์ด๋ค.
// SYMBOL type
// 1)
let obj = {
a : 10,
};
// ์คํ์๊ฐ์ ํ์์ ๋ฐ๋ผ์ ํค๊ฐ์ ์ถ๊ฐํ ์ ์๋ค.
obj.b = 20;
console.log(obj.a);
console.log(obj.b);
console.log('----------');
// 2)
let obj2 = {
a : 10,
};
// ์คํ์๊ฐ์ ํ์์ ๋ฐ๋ผ์ ํค๊ฐ์ ์ถ๊ฐํ ์ ์๋ค.
obj2['b'] = 20;
console.log(obj2['a']);
console.log(obj2['b']);
console.log('----------');
// 3) obj3 ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ๊ณต ๋ ๊ฐ์ฒด ์ผ ๋.
// obj3['b'] = 30; ๊ฐ ์๋ก ๋ง๋ค๊ธฐ ์ํ ๊ฒ์ธ์ง
// ๊ธฐ์กด์ ์๋ ๊ฒ์ ์
๋ฐ์ดํธ ํ๊ธฐ ์ํ ๊ฒ์ธ์ง ์ ์๊ฐ ์๋ค.
let obj3 = {
a : 10,
b : 20,
};
obj3['b'] = 30;
console.log(obj3['a']);
console.log(obj3['b']);
console.log('----------');
// 4)
let obj4 = {
a : 10,
b : 20,
myfunc:function(){
return this.a + this.b;
},
};
// ํจ์๋ฅผ ์ฌ์ฉํ ๋ณธ์ธ์ ํค๋ฅผ ์๋ก ๋ง๋ค์๋ค๊ณ ์๊ฐํ๊ณ ์ฝ๋ฉ์ ํ์๋ค.
// ํ์ง๋ง b๊ฐ์ด ์ค์ฒฉ๋ ๊ฒ์ธ์ง ์๋์ง ์ ์ ์๋ค.
// ๊ต์ฅํ ์ ๋งค๋ชจํธํ ์ํฉ(obj4๋ ๊ฐ๋ฐ์์๊ฒ ๋
ธ์ถ๋์ด ์์ง ์๋ค๊ณ ๊ฐ์ .)
obj4['b'] = 30;
console.log(obj4.myfunc(), obj4['b']);
console.log('----------');
// 5)
let obj5 = {
a : 10,
b : 20,
myfunc:function(){
return this.a + this.b;
},
};
let b = Symbol('b');
obj5[b] = 999;
// ํจ์๋ ๋ณธ์ธ์ด ๊ฐ์ ๋ฐ๊พธ๋ ์๋ฐ๊พธ๋ ์ ์ผํ๊ฒ ์คํ๋๋ค.
console.log(obj5.myfunc(), obj5[b]);
10
20
----------
10
20
----------
10
30
----------
40 30
----------
30 999
'IT EDU > JAVA SCRIPT' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] map, reduce ๋ฉ์๋ (2) | 2022.03.23 |
---|---|
[JavaScript] JavaScript ํ๊ฒฝ ์ค์ (0) | 2022.03.21 |
๋๊ธ