<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>b612_boreum.log</title>
        <link>https://velog.io/</link>
        <description>프론트 공부 중입니다:)</description>
        <lastBuildDate>Tue, 01 Nov 2022 05:20:33 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>b612_boreum.log</title>
            <url>https://images.velog.io/images/b612_boreum/profile/3fae9c3f-521a-48f2-bcfd-0fc8ced525bc/IMG_5355.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. b612_boreum.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/b612_boreum" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[React 스터디 1일차]]></title>
            <link>https://velog.io/@b612_boreum/React-%EC%8A%A4%ED%84%B0%EB%94%94-1%EC%9D%BC%EC%B0%A8</link>
            <guid>https://velog.io/@b612_boreum/React-%EC%8A%A4%ED%84%B0%EB%94%94-1%EC%9D%BC%EC%B0%A8</guid>
            <pubDate>Tue, 01 Nov 2022 05:20:33 GMT</pubDate>
            <description><![CDATA[<h1 id="🤔react를-왜-사용-하는가">🤔React를 왜 사용 하는가?</h1>
<ol>
<li>SPA(Single Page Application) 만들 때 사용된다.<ul>
<li>새로고침없이 부드럽게 동작 가능한 페이지</li>
<li>vanilla JS로 쓰기에는 소스코드가 너무 길어짐</li>
<li>다른 라이브러리에 비해 React의 사용자가 많고, 오래됨</li>
</ul>
</li>
<li>html 재사용 편리</li>
<li>같은 문법으로 앱개발 가능(React Native)</li>
<li>취업할 때 못하면 뽑지를 않는다…..😢</li>
</ol>
<hr>
<h1 id="😤react프로젝트-만들기">😤React프로젝트 만들기</h1>
<p>Power Shell창에서 <code>npx create-react-app 프로젝트이름</code> </p>
<ul>
<li>npx는 JS를 스크립트로써 실행시켜주는 환경</li>
<li>create-react-app은 react를 자동으로 만들어주는 스크립트</li>
</ul>
<p>blog 폴더 파헤치기❗</p>
<p><img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b2221c45-0b5f-4a3a-8134-4358b5e00623/Untitled.png" alt="Untitled"></p>
<ul>
<li>node_modules 폴더 : 라이브러리 코드 보관함</li>
<li>public 폴더 : static 파일 모아 놓는 곳</li>
<li>src 폴더 : 코드 짜는 곳</li>
</ul>
<p><img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a1446006-cdaa-40fd-8b3b-5784387e26f8/Untitled.png" alt="Untitled"></p>
<ul>
<li>웹페이지는 html코드로 이루어져 있는데, index.js가  js파일을 웹페이지로 변경해준다.</li>
</ul>
<hr>
<h1 id="🤗레이아웃-만들-때-쓰는-jsx-문법-3개">🤗레이아웃 만들 때 쓰는 JSX 문법 3개</h1>
<h3 id="jsx">jsx</h3>
<ul>
<li><p>.js파일에서 쓰는 html 대신 쉽게 사용할 수 있는 대체품(부가기능)</p>
<p>  jsx 미사용 시 React에서 <div>를 만드려면</p>
<p>  <code>React.createElement(&#39;div&#39;, null, &#39;Hello World&#39;)</code> ← 매우 복잡함</p>
</li>
</ul>
<h3 id="classname">className</h3>
<ul>
<li>html에서는 <div class=”이름”>으로 쓰지만, React에서는 className으로 써야 함.</li>
<li>js문법인 class와 겹침</li>
</ul>
<h3 id="-문법">{} 문법</h3>
<p><code>html</code></p>
<pre><code class="language-jsx">let post = ‘강남 우동 맛집’;
document.querySelector(&#39;h4).innerHTML = post;
.
.
.
&lt;h4&gt;&lt;/h4&gt;</code></pre>
<p><code>JSX</code></p>
<pre><code class="language-jsx">let post = ‘강남 우동 맛집’;
&lt;h4&gt;{ post } &lt;/h4&gt;</code></pre>
<h3 id="style">style</h3>
<pre><code class="language-jsx">&lt;h4 style={{color:&#39;red&#39;,  fontSize: &#39;16px&#39;}}&gt; 블로그입니다 &lt;/h4&gt;</code></pre>
<p>❗style 안에는 object만 들어 올 수 있음❗</p>
<hr>
<h1 id="😊변수와-state">😊변수와 state</h1>
<h3 id="return">return()</h3>
<ul>
<li>return() 안에 소스를 작성해야 함.</li>
<li>하나의 태그로 끝나야 함.</li>
</ul>
<h3 id="변수">변수</h3>
<ul>
<li>자료를 잠깐 저장할 때 사용 됨.</li>
</ul>
<h3 id="state">State</h3>
<pre><code class="language-jsx">import { useState } from &#39;react&#39;;

funtion App() {
    let [a,b] = useState(&#39;남자 코트 추천&#39;);</code></pre>
<p>let [a, b]</p>
<p>a: state에 보관했던 자료</p>
<p>b: 자료를 변경하는데 도움을 주는 state 변경 도와주는 함수</p>
<ul>
<li>useSate를 써도 <code>Array</code> 형태로 남는다❗</li>
</ul>
<h3 id="array">Array</h3>
<pre><code class="language-jsx">let num = [1, 2];

let a = num[0];
let c = num[1];</code></pre>
<p>Destructuring 문법</p>
<pre><code class="language-jsx">let num = [1, 2];

let [a, c] = [1, 2];</code></pre>
<h3 id="🤔그래서-왜-state를-써야-하는-거지">🤔그래서 왜 state를 써야 하는 거지?</h3>
<ul>
<li>일반 변수는 갑자기 변경되면 html에서 자동으로 변경이 안됨. → <code>state</code>는 <code>자동 재랜더링</code> 이 됨!</li>
<li><code>화면에 보여지는</code> 자주 변경되는 내용에 대해서 사용하면 편리함.</li>
<li>많이 사용하면 랜더링을 자주 하면서 느려진다.</li>
</ul>
<hr>
<h1 id="😊버튼-기능-개발--리액트-state-변경">😊버튼 기능 개발 &amp; 리액트 state 변경</h1>
<p><img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/22b8e0b7-d3be-4f5c-b225-405db49a2aa5/Untitled.png" alt="Untitled"></p>
<pre><code class="language-jsx">let [글제목, b] = useState([&quot;남자 코트 추천&quot;, &quot;강남 우동맛집&quot;, &quot;파이썬독학&quot;]);

return (
    &lt;div className=&quot;App&quot;&gt;
      &lt;div className=&quot;black-nav&quot;&gt;
        &lt;h4&gt; {logo} &lt;/h4&gt;
      &lt;/div&gt;
      &lt;div className=&quot;list&quot;&gt;
        &lt;h4&gt; {글제목[0]} &lt;/h4&gt;
        &lt;p&gt;2월 17일 발행&lt;/p&gt;
      &lt;/div&gt;
      &lt;div className=&quot;list&quot;&gt;
        &lt;h4&gt; {글제목[1]} &lt;/h4&gt;
        &lt;p&gt;2월 17일 발행&lt;/p&gt;
      &lt;/div&gt;
      &lt;div className=&quot;list&quot;&gt;
        &lt;h4&gt; {글제목[2]} &lt;/h4&gt;
        &lt;p&gt;2월 17일 발행&lt;/p&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  );</code></pre>
<p>✍️warring 메시지 없애는 법</p>
<pre><code class="language-jsx">/* eslint-disable */</code></pre>
<ul>
<li>개인적으로는 warring 보여주는 게 편합니다…</li>
</ul>
<h3 id="onclick-">onClick ={}</h3>
<ul>
<li><p>{}안에는 함수만 들어올 수 있음.</p>
<p>  function 혹은 () ⇒ {}</p>
</li>
</ul>
<h3 id="state변경-하는-법">State변경 하는 법</h3>
<ul>
<li><p>등호를 사용해서는 html상에서 변경이 적용이 안된다.</p>
<p>  <code>따봉 = 따봉 + 1</code> ← 변경 안됨.</p>
</li>
</ul>
<pre><code class="language-jsx">let [따봉, 따봉변경] = useState(0);

return (
.
.
.
{글제목[0]} &lt;span onClick={()=&gt;{따봉변경(따봉+1)}}&gt;👍&lt;/span&gt;
.
.
.
)</code></pre>
<ul>
<li><code>따봉변경</code>은 state 변경용 함수. ← state 변경 ← 재랜더링이 제대로 된다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[10장 모듈]]></title>
            <link>https://velog.io/@b612_boreum/10%EC%9E%A5-%EB%AA%A8%EB%93%88</link>
            <guid>https://velog.io/@b612_boreum/10%EC%9E%A5-%EB%AA%A8%EB%93%88</guid>
            <pubDate>Fri, 29 Jul 2022 13:05:24 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[9장 클래스]]></title>
            <link>https://velog.io/@b612_boreum/9%EC%9E%A5-%ED%81%B4%EB%9E%98%EC%8A%A4</link>
            <guid>https://velog.io/@b612_boreum/9%EC%9E%A5-%ED%81%B4%EB%9E%98%EC%8A%A4</guid>
            <pubDate>Fri, 22 Jul 2022 13:09:03 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[8장 함수]]></title>
            <link>https://velog.io/@b612_boreum/8%EC%9E%A5-%ED%95%A8%EC%88%98</link>
            <guid>https://velog.io/@b612_boreum/8%EC%9E%A5-%ED%95%A8%EC%88%98</guid>
            <pubDate>Fri, 22 Jul 2022 13:07:24 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Vue3]]></title>
            <link>https://velog.io/@b612_boreum/Vue.js-3</link>
            <guid>https://velog.io/@b612_boreum/Vue.js-3</guid>
            <pubDate>Mon, 04 Jul 2022 07:54:59 GMT</pubDate>
            <description><![CDATA[<h1 id="vue를-공부하는-이유">Vue를 공부하는 이유</h1>
<p>React, Angular, Vue라이브러리 중에서 Vue 라이브러리를 공부하는 이유</p>
<h2 id="vuejs란">Vue.js란?</h2>
<blockquote>
<p>MVVM 패턴을 사용하는 자바스크립트 프레임워크입니다.
SPA(Single Page Application) Web-App을 개발할 때 사용자 인터페이스를 만들기 위해 사용됩니다.</p>
</blockquote>
<ol>
<li><p>배우기 쉽다
- 다른 프레임워크에 비해 배우기 쉽습니다.
- 짜야할 코드가 복잡해질수록 다른 라이브러리에 비해 간편하게 소스를 적을 수 있습니다.
- 그렇다고 기능이나 성능이 떨어지지 않습니다.
- Javascript 문법에 익숙하지 않아도 쉽게 코드 작성이 가능합니다.</p>
</li>
<li><p>코드 작성 방법이 정해져 있다.
- v-if 등 문법이 정해져 있어 협업할 때 좋습니다.</p>
</li>
<li><p>HTML 렌더링이 빠르다.
- React와 Angular보다 렌더링 속도가 빠릅니다.(ms 단위여서 크게 체감될 정도는 아니라고 합니다.)</p>
</li>
<li><p>Vue3이 기본 버전이 되다.
- 22년 2월 7일부터 Vue3이 기본 버전이 되면서 Vue3 공부를 하려고 합니다.</p>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[7장 배열]]></title>
            <link>https://velog.io/@b612_boreum/7%EC%9E%A5-%EB%B0%B0%EC%97%B4</link>
            <guid>https://velog.io/@b612_boreum/7%EC%9E%A5-%EB%B0%B0%EC%97%B4</guid>
            <pubDate>Thu, 30 Jun 2022 04:44:31 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[6장 객체]]></title>
            <link>https://velog.io/@b612_boreum/6%EC%9E%A5-%EA%B0%9D%EC%B2%B4</link>
            <guid>https://velog.io/@b612_boreum/6%EC%9E%A5-%EA%B0%9D%EC%B2%B4</guid>
            <pubDate>Tue, 24 May 2022 11:12:30 GMT</pubDate>
            <description><![CDATA[<h1 id="객체">객체</h1>
<blockquote>
<p>자바스크립트의 가장 기본적인 데이터 타입</p>
</blockquote>
<p>[이번 장에서 공부할 내용]</p>
<ul>
<li>객체 생성</li>
<li>검색</li>
<li>설정</li>
<li>삭제</li>
<li>테스트</li>
<li>프로퍼티 열거</li>
</ul>
<br />

<hr>
<h2 id="61-객체-소개">6.1 객체 소개</h2>
<blockquote>
<p>객체는 복합된 값이다.</p>
</blockquote>
<p>- 객체는 여러가지 값(기본 값이나 다른 객체)을 모아서 이름을 통해 값을 저장하고 가져올 수 있게 한다.
- 객체는 <code>프로퍼티</code>의 순서 없는 집합이며 각 프로퍼티에는 이름과 값이 있다.
- <code>프로토타입</code>으로 불리는 다른 객체에서 <code>프로퍼티</code>를 상속하기도 한다.</p>
<br />

<ul>
<li><p>객체</p>
<ul>
<li><code>문자열</code>, <code>숫자</code>, <code>심벌</code>, <code>true</code>, <code>false</code>, <code>null</code>, <code>undefined</code>가 아닌 값</li>
<li>가변이며 <span style="color:red">값이 아닌 참조로 조작</span>한다.</li>
</ul>
</li>
<li><p>프로퍼티</p>
<ul>
<li><code>이름</code>과 <code>값</code>이 있다.
- <code>프로퍼티</code> 이름에는 빈 문자열과 심벌을 포함해 어떤 문자열이든 쓸 수 있다
- <code>프로퍼티</code>는<span style="color:red">같은 이름을 가질 수 없</span>다.
- 상속되지 않은 프로퍼티를 가리켜 <code>자체 프로퍼티(own property)</code>라고 부른다.</li>
</ul>
</li>
</ul>
<p>** 🔔프로퍼티 속성 **</p>
<ol>
<li>쓰기 가능(writable) - 프로퍼티에 값을 설정할 수 있는지 없는지를 나타낸다.</li>
<li>열거 가능(enumerable) - for/in 루프에 프로퍼티 이름을 반환할지 안 할지를 나타낸다.</li>
<li>변경 가능(configurable) - 프로퍼티를 삭제할 수 있는지 없는지, 속성을 바꿀 수 있는지 없는지를 나타낸다.</li>
</ol>
<br />

<hr>
<h2 id="62-객체-생성">6.2 객체 생성</h2>
<blockquote>
<p>객체를 생성할 때는 객체 리터럴, new 키워드 또는 Object.create() 함수를 사용한다.</p>
</blockquote>
<h3 id="621-객체-리터럴">6.2.1 객체 리터럴</h3>
<p><code>객체 리터럴</code></p>
<ul>
<li>가장 단순한 형태는 콜론으로 구분한 이름:값 쌍을 콤마로 구분해 중괄호로 감싼 형태</li>
</ul>
<pre><code class="language-js">let empty = {};                                // 프로퍼티가 없는 객체
let point = { x: 0, y: 0 };                    // 숫자 프로퍼티 두 개
let p2 = { x: point.x, y: ponint.y+1}        // 좀 더 복잡한 값
let book = {
  &quot;main title&quot;: &quot;JavaScript&quot;,                // 이 프로퍼티 이름에는 스페이스와 하이폰
  &quot;sub-title&quot;: &quot;The Definitive Guide&quot;,        // 들어 있으므로 문자열 리터럴을 썼습니다.
  for: &quot;all audiences&quot;,                        // for는 예약어지만 따옴표를 쓰지 않았습니다.
  author: {                                    // 이 프로퍼티의 값은
    firstname: &quot;David&quot;,                        // 객체입니다.
    surname: &quot;Flanagan&quot;
  }
};</code></pre>
<ul>
<li>마지막 프로퍼티 뒤에 <code>콤마</code>를 쓸 수 있다.</li>
<li>리터럴을 평가할 때마다 새 <code>객체</code>가 만들어진다.</li>
<li>각 <code>프로퍼티의 값</code>도 리터럴을 평가할 때마다 평가된다.</li>
<li><blockquote>
<p>반복적으로 호출죄는 함수나 루프 바디 안에 있으면, <span style="color:red">새 객체를 <strong>여러 개</strong> 만들 수</span> 있다.</p>
</blockquote>
</li>
</ul>
<br />

<h3 id="622-new">6.2.2 new</h3>
<p>- <code>new</code> 연산자는 새 객체를 생성하고 초기화한다.
- <code>new</code> 키워드 뒤에는 반스기 <code>함수 호출</code>이 있어야 한다.
- <code>생성자</code>라 부르고, 새로 생성된 객체를 초기화하는 목적으로 사용한다.</p>
<pre><code class="language-js">let 0 = new Object();    // 빈 객체를 만든다. {}와 같다.
let a = new Array();    // 빈 객체를 만든다. []와 같다.
let d = new Date();        // 현재 시간을 나타내는 Date 객체를 만든다.
let r = new Map();        // 키와 값을 연결하는 Map 객체를 만든다.</code></pre>
<br />

<h3 id="⭐623-프로토타입">⭐6.2.3 프로토타입</h3>
<p>- 자신과 연결된 두 번째 객체를 의미한다.
- <code>객체 리터럴</code>을 사용해 생성한 객테는 모두 같은 프로토타입을 가진다.
- <code>프로토타입</code> 객체는 <code>Object.prototye</code>이라는 코드로 참조할 수 있다.</p>
<table>
<thead>
<tr>
<th>객체</th>
<th align="left">상속</th>
</tr>
</thead>
<tbody><tr>
<td>new Object</td>
<td align="left">Object.prototype</td>
</tr>
<tr>
<td>new Array()</td>
<td align="left">Arry.prototype</td>
</tr>
<tr>
<td>new Date()</td>
<td align="left">Date.prototype</td>
</tr>
</tbody></table>
<br />

<h3 id="624-objectcreate">6.2.4 Object.create()</h3>
<p>- <code>Object.create()</code>는 첫 번째 인자를 프로토타입 삼아 새 객체를 생성한다.</p>
<pre><code class="language-js">let o1 = Object.create({x: 1, y: 2});    // o1은 x와 y 프로퍼티를 상속한다.
o1.x + o1.y                                // =&gt; 3</code></pre>
<ul>
<li>인자로 null을 전달하면, 기본 메서드가 없다.(+ 연산자와 함께 사용 불가능)<pre><code class="language-js">let o2 = Object.create(null);    // o2는 프로터치나 메서드를 상속하지 않는다.</code></pre>
</li>
<li>빈 객체를 만들고 싶으면 <span style="color:red">Object.prototype을 전달</span>한다.</li>
<li><blockquote>
<p>강력한 기능</p>
</blockquote>
<pre><code class="language-js">let o3 = Object.create(Object.prototype);    // o3은 {}나 new Object()와 같다.</code></pre>
- <code>Object.create()</code>를 사용하는 목적 중 하나는 서드 파티 라이브러리에서 객체를 변경하는 사고를 막는 것이다.</li>
<li>객체를 라이브러리 함수에 전달하지 않고 원래 객체를 상속하는 객체를 전달하면, 라이브러리에서 부주의하게 프로퍼티 값을 바꾸더라도 원래 객체에는 영향이 없다.<pre><code class="language-js">let o = { x: &quot;don&#39;t change this value&quot; };
library.function(Object.create(o));    // 의도치 않은 변경에 대한 방어</code></pre>
</li>
</ul>
<br />

<hr>
<h2 id="63-프로퍼티-검색과-설정">6.3 프로퍼티 검색과 설정</h2>
<p>- 프로퍼티 값에 접근할 때는 점(.)이나 대괄호([]) 연산자를 사용한다.</p>
<ul>
<li>값이 객체인 표현식<span style="color:red">.(점)</span>프로퍼티 이름(단순한 식별자)</li>
<li>값이 객체인 표현식<span style="color:red">[</span>프로퍼티 이름(문자열로 평가되는 표현식)<span style="color:red">]</span><pre><code class="language-js">let author = book.author;        // book의 author 프로퍼티를 가져온다.
let name = author.surname;        // author의 surname 프로퍼티를 가져온다.
let title = book[&quot;main title&quot;];    // book의 main title 프로퍼티를 가져온다.</code></pre>
</li>
</ul>
<p>- 프로퍼티 생성 or 설정</p>
<pre><code class="language-js">book.edition = 7;                    // book에 edition 프로퍼티를 만든다.
book[&quot;main title&quot;] = &quot;ECMAScript&quot;;    // main title 프로퍼티를 변경한다.</code></pre>
<br />

<h3 id="631-연관-배열인-객체">6.3.1 연관 배열인 객체</h3>
<br />

<hr>
<h2 id="64-프로퍼티-삭제">6.4 프로퍼티 삭제</h2>
<br />

<hr>
<h2 id="65-프로퍼티-테스트">6.5 프로퍼티 테스트</h2>
<br />

<hr>
<h2 id="66-프로퍼티-열거">6.6 프로퍼티 열거</h2>
<br />

<hr>
<h2 id="67-객체-확장">6.7 객체 확장</h2>
<br />

<hr>
<h2 id="68-객체-직렬화">6.8 객체 직렬화</h2>
<br />

<hr>
<h2 id="69-객체-메서드">6.9 객체 메서드</h2>
<br />

<hr>
<h2 id="610-확장된-객체-리터럴-문법">6.10 확장된 객체 리터럴 문법</h2>
]]></description>
        </item>
        <item>
            <title><![CDATA[5장 문]]></title>
            <link>https://velog.io/@b612_boreum/5%EC%9E%A5-%EB%AC%B8</link>
            <guid>https://velog.io/@b612_boreum/5%EC%9E%A5-%EB%AC%B8</guid>
            <pubDate>Wed, 18 May 2022 17:57:10 GMT</pubDate>
            <description><![CDATA[<h1 id="문">문</h1>
<blockquote>
<p>문은 자바스크립트의 문장이나 명령어라고 할 수 있다.</p>
</blockquote>
<p>주요 키워드</p>
<ul>
<li>조건문</li>
<li>루프</li>
<li>점프<br />

</li>
</ul>
<hr>
<h2 id="51-표현문">5.1 표현문</h2>
<blockquote>
<p>할당이나 함수호출처럼 부수 효과가 있는 표현식은 그 자체로 문이 될 수 있다.</p>
</blockquote>
<br />

<ul>
<li><p><strong>할당문</strong>
- <span style='color: red'>표현문의 주요 카테고리 중 하나이다.</span></p>
<pre><code class="language-js">greeting = &quot;Hello&quot; + name;
i *= 3;</code></pre>
</li>
<li><p><strong>증감연삼자(++, --)</strong>
- 변수의 <span style='color: red'>값을 바꾸는 부수 효과가 있다.</span></p>
<pre><code class="language-js">counter++;</code></pre>
</li>
<li><p><strong>delete</strong>
- delete 연산자에는 <span style='color: red'>객체 프로퍼티를 삭제</span>하는 중요한 부수 효과가 있다.
- 거의 하나의 문으로 사용된다.</p>
<pre><code class="language-js">delete o.x;</code></pre>
</li>
<li><p><strong>함수 호출</strong>
- 표현식이지만 프로그램의 상태나 호스트 환경에 영향을 미치는 부수적 효과가 있다.
- 함수에 부수 효과가 없다면 그 자체로는 호출에 의미가 없다. (더 큰 표현식이나 할당문의 일부 제외)</p>
<pre><code class="language-js">console.log(debugMessage);
displaySpinner();            // 웹 앱에서 스피너를 표시하는 가상의 함수</code></pre>
<br/>

</li>
</ul>
<p><strong>❗모두 <code>세미콜론</code>으로 종료 했다❗</strong>
<br/></p>
<hr>
<h2 id="52-복합문과-빈-문">5.2 복합문과 빈 문</h2>
<ul>
<li><strong>문 블록</strong>
- 문 여러 개를 묶어서 복합문으로 만든다.</li>
</ul>
<p><strong>🔔규칙</strong></p>
<ol>
<li>블록은 <span style='color: red'>세미콜론으로 끝나지 않는다.</span>
 - 블록 안에 있는 기본문은 세미콜론으로 끝난다.</li>
<li>블록에 들어 있는 행은 자신을 감싼 중괄호를 기준으로 들여쓴다.
 - 필수는 아니지만, 이해하기 쉽다.</li>
</ol>
<pre><code class="language-js">{
  x = Math.PI;
  cx = Math.cos(x);
  console.log(&quot;con(π) = &quot; + cx);
}</code></pre>
<p>- 문 블록을 사용하면 허용되는 하위 문 하나에 문 여러 개를 넣을 수 있다.
- 복합문은 자바스크립트가 문 하나를 예상하는 곳에 문 여러 개를 넣을 때 사용한다.
<br /></p>
<ul>
<li><strong>빈 문</strong>
- 문이 있을 것으로 예상되는 곳에 문을 쓰지 않는다.
- 자바스크립트 인터프리터는 빈 문을 실행할 때 아무 일도 하지 않는다.
- 빈 바디를 갖는 루프를 만들고자 할 때 유용하다.<pre><code class="language-js">// 배열 a를 초기화합니다.
for(let i = 0; i &lt; a.length; a[i++] = 0;</code></pre>
- 의도적으로 비운 것이라면 세미콜론(;)을 붙이지 말고, 주석을 달자.<pre><code class="language-js">// 개발자의 의도와 다르게 실행된 예제
if ((a === 0) || (b === 0));    // 아무 일도 하지 않는 행
  o = null;                    // 조건과 상관없이 항상 실행되는 행</code></pre>
<pre><code class="language-js">// 개발자의 의도대로 실행된 예제
for(let i = 0; i &lt; a.length; a[i++] = 0; /* 의도적으로 비움. */</code></pre>
<br />

</li>
</ul>
<hr>
<h2 id="53-조건문">5.3 조건문</h2>
<blockquote>
<p>분기점(branch)에 따라 인터프리터가 문을 실행하기도 하고, 실행하지 않기도 한다.</p>
</blockquote>
<h3 id="531-if">5.3.1 if</h3>
<p>- 자바스크립트가 조건에 따라 문을 실행할 수 있게 하는 기본적인 제어문
<br/></p>
<ol>
<li>표현식(expression) 평가 : 결과값이 true일 때<pre><code class="language-js">if (expression)
statement</code></pre>
</li>
</ol>
<ul>
<li>문 블록을 써서 여러 문을 하나로 모을 수 있다.<pre><code class="language-js">if (!address) {
address = &quot;&quot;;
message = &quot;Please specify a mailing address.&quot;;
}</code></pre>
<br /></li>
</ul>
<ol start="2">
<li>else 절 : 결과값이 false일 때</li>
</ol>
<pre><code class="language-js">if (expression)
  statement1
else
  statement2</code></pre>
<ul>
<li>else절과 함께 if 문을 중첨해 쓸 때는 <span style='color:red'>else 절이 적절한 if 문과 연결</span>되도록 주의해야 한다.</li>
</ul>
<pre><code class="language-js">if (i === j) {
  if (j === k) {
    console.og(&quot;i equals k&quot;);
  }
} else { //중괄호의 위치로 결과가 달라진다.
      console.log(&quot;i doesnt&#39;t equal j&quot;);
}</code></pre>
<br/>


<h3 id="532-else-if">5.3.2 else if</h3>
<p>- 선택지가 여러개일 때 사용되는 관용적 표현(자바스크립트 문은 아님.)</p>
<pre><code class="language-js">if ( n === 1){
    // 코드 블록 #1을 실행합니다.
} else if (n === 2) {
    // 코드 블록 #2을 실행합니다.
} else if (n === 3) {
    // 코드 블록 #3을 실행합니다.
} else { 
    // 전부 실패하면 블록 #4을 실행합니다.
}</code></pre>
<br/>

<h3 id="533-switch">5.3.3 switch</h3>
<p>- 모든 분기점이 같은 같은 표현식의 값에 사용될 때 유용하다.
- switch 문이 실행되면 먼저 expression의 값을 계산 후, case 라벨의 표현식과 같은 것을 순차적으로 찾아낸다.</p>
<pre><code class="language-js">switch(n) {
  case 1:
    // 코드 블록 #1을 실행합니다.
    break;    // 다음 case로 넘어가지 않음.
  case 2:
    // 코드 블록 #2을 실행합니다.
    break;
  case 3:
    // 코드 블록 #3을 실행합니다.
    break;
  default: // default 라벨이 없으면 case 문은 종료된다.
    // 코드 블록 #4을 실행합니다.
    break;
}</code></pre>
<p><strong>🔔switch 문 평가 방법</strong></p>
<ol>
<li>switch 키워드 다음에 있는 표현식을 먼저 평가하고, 일치하는 값을 찾을 때까지 case 표현식을 순서대로 평가한다.</li>
<li>연산자 === 사용, 타입 변환을 거치지 않고 일치해야 한다.</li>
<li><span style='color:red'>case 표현식 전체가 평가되는 것은 아니므로</span>, case 표현식에는 함수 호출이나 할당처럼 부수 효과가 있는 것은 피해야 한다.</li>
</ol>
<br />

<hr>
<h2 id="54-반복문">5.4 반복문</h2>
<blockquote>
<ul>
<li>경로를 자기 자신 쪽으로 구부린 코드 일부를 반복하는 문이며 루프라고 하기도 한다.</li>
</ul>
</blockquote>
<ul>
<li>루프는 모두 <span style=color:red>배열 요소를 순회</span>할 때 쓸 수 있다.</li>
</ul>
<h3 id="541-while">5.4.1 while</h3>
<p>- 자바스크립의 기본 루프</p>
<pre><code class="language-js">while (expression)
  ststement</code></pre>
<p><strong>🔔while 문 평가 방법</strong></p>
<ol>
<li>while 문을 실행하면 먼저 expression을 평가한다.</li>
<li>false 값이라면 루프 바디를 건너뛴다.</li>
<li>true 값이라면 statement를 실행하고, 루프 맨 위로 올라가 expression 평가를 반복한다.<br />
### 5.4.2 do/while
\- 루프 맨 위가 아니라 <span style=color:red>맨 아래</span>에서 평가된다.
```js
do
statement
while (expression);
```

</li>
</ol>
<p><strong>✅do/while과 while 차이</strong></p>
<ol>
<li>do/while 문은 루프 시작을 알리는 do와 루프 끝을 알리는 while 키워드가 모두 있어야 한다.</li>
<li>do/while 문은 항상 세미콜론(;)으로 끝나야 한다.
(while 루프는 루프 바디를 중괄호로 감싼 경우에는 세미콜론이 필요하지 않는다.)</li>
</ol>
<br />

<h3 id="543-for">5.4.3 for</h3>
<p>- 루프를 단순화 한다.
- <code>초기화</code>, <code>테스트</code>, <code>업데이트</code>를 표현식 하나로 묶고, 이들을 루프 문법에 명시적으로 표현한다.</p>
<pre><code class="language-js">//for 문은 while 문으로 변경할 수 있다.
for(initialize; test; increment)
  statement

// 같은 실행을 하는 while 문
initialize;
while(test) {
  staement
  increment;
}</code></pre>
<p>- <code>initialize</code>, <code>test</code>, <code>increment</code>은 생략 가능하지만, 세미콜론(;)은 필수이다.</p>
<pre><code class="language-js">// for 문 무한루프
for(;;)

// while 문 무한루프
while(true)</code></pre>
<br/>

<h3 id="⭐544-forof">⭐5.4.4 for/of</h3>
<p>- <code>ES6</code>에서 정의한 새 반복문.
- <code>이터러블(iterable)</code> 객체에서 동작한다. (<code>배열</code>, <code>문자열</code>, <code>세트</code>, <code>맵</code>은 이터러블)</p>
<ul>
<li><code>for</code> 키워드 + 루프가 하는 일을 괄호로 묶어서 표현 </li>
<li><code>of</code> 키워드 + 이터러블 객체로 평가되는 표현식<pre><code class="language-js">// for/of를 써서 숫자 배열을 순회하며 합을 구하는 예제
</code></pre>
</li>
</ul>
<p>let data = [1, 2, 3, 4, 5, 6, 7, 8, 9], sum = 0;
for(let element of data) {
  sum += element;
}
sum        // =&gt; 45</p>
<pre><code>
&lt;br /&gt;

\- 배열은 &lt;span style=color:red&gt;동적으로&lt;/span&gt; 순회한다.
- 반복 중간에 배열 자체에 변화가 발생한다면 반복 결과가 바뀌기도 한다.


#### for/of와 객체
\- 일반 객체(객체는 기본적으로 이터러블이 아님)에 `for/of`를 사용하려 하면 런타임에 `TypeError`가 일어난다.
```js
let o ={ x: 1, y:2, z: 3};
let keys = &quot;&quot;;
for(let k of Object.keys(o)) {
  keys += k;
}
keys    // =&gt; &quot;xyz&quot;</code></pre><ul>
<li><code>Object.key()</code><ul>
<li>객체의 프로퍼티 이름으로 이루어진 배열을 반환하며 배열은 <code>for/of</code>를 사용할 수 있는 이터러블<pre><code class="language-js">let sum = 0;
for(let v of Object.values(o)) {
sum += v;
}
sum        // =&gt; 6</code></pre>
</li>
</ul>
</li>
<li><code>Object.entries()</code><ul>
<li>객체 프로퍼티의 키와 값이 모두 필요하다면 <code>Object.entries()</code>와 분해 할당을 통해 <code>for/of</code>를 사용할 수 있다.</li>
<li>배열의 배열을 반환한다.<pre><code class="language-js">let paris = &quot;&quot;;
for (let [k, v] of Object.entries(o)) {
paris += k + v;
}
paris        // =&gt; &quot;x1y2z3&quot;</code></pre>
<br />

</li>
</ul>
</li>
</ul>
<hr>
<h3 id="545-forin">5.4.5 for/in</h3>
]]></description>
        </item>
        <item>
            <title><![CDATA[4장 표현식과 연산자]]></title>
            <link>https://velog.io/@b612_boreum/4%EC%9E%A5-%ED%91%9C%ED%98%84%EC%8B%9D%EA%B3%BC-%EC%97%B0%EC%82%B0%EC%9E%90</link>
            <guid>https://velog.io/@b612_boreum/4%EC%9E%A5-%ED%91%9C%ED%98%84%EC%8B%9D%EA%B3%BC-%EC%97%B0%EC%82%B0%EC%9E%90</guid>
            <pubDate>Thu, 12 May 2022 12:36:48 GMT</pubDate>
            <description><![CDATA[<h1 id="표현식">표현식</h1>
<blockquote>
<p>자바스크립트에서 표현식으란 어떤 값으로 평가(evaluate)되는 구절</p>
</blockquote>
<hr>
<h1 id="41-기본-표현식">4.1 기본 표현식</h1>
<p>- 가장 단순한 표현식</p>
<ul>
<li>리터럴 값</li>
<li>자바스크립트 예약어 중 표현식
-this는 일정한 값이 아니며 프로그램에서 사용한 위치에 따라 다른 값으로 평가 된다.<pre><code class="language-javascript">true        // boolean 값 ture로 평가됨
false        // boolean 값 false로 평가됨
null        // null로 평가됨
this        // &#39;현재&#39; 객체로 평 됨</code></pre>
</li>
<li>변수, 상수, 번역 객체의 프로퍼티에 대한 참조</li>
</ul>
<br />

<hr>
<h1 id="42-객체와-배열-초기화-표현식">4.2 객체와 배열 초기화 표현식</h1>
<p>- 초기화 표현식(initalize)은 그 값이 새로 생성된 객체나 배열인 표현식
(객체  리터럴 혹은 배열 리터럴로 불리기도 함.)
- 프로퍼티와 요소 값을 지정하는 다양한 하위 표현식으로 구성됨</p>
<ul>
<li><p>배열 초기화
- 대괄호( [] )와 콤마(,)로 구분</p>
<pre><code class="language-js">[]            // 빈 배열
[1,2,3+4]    //요소가 3개인 배열, 마지막은 7이다.</code></pre>
</li>
<li><p>객체 초기화
- 중괄호( {} )로를 쓰고 각 하위 표현식은 프로퍼티 이름과 콜론(:)으로 구분</p>
<pre><code class="language-js">let p ={x:2.3, y: -1.2};    // 프로퍼티가 두 개 있는 객체
let q = {};                    // 빈 객체
q.x = 2.3; q.y = -1.2;        // 이제 q의 프로퍼티는 p의 프로퍼티와 같아진다.</code></pre>
</li>
<li><p>ES6 이후에는 객체 리터럴을 중첩 가능하다.</p>
<pre><code class="language-js">let rectangle = {
upperLeft: {x: 2, y: 2},
lowerRight: {x: 4, y: 5}</code></pre>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[3장 타입, 값, 변수]]></title>
            <link>https://velog.io/@b612_boreum/3%EC%9E%A5-%ED%83%80%EC%9E%85-%EA%B0%92-%EB%B3%80%EC%88%98-p7r7jcii</link>
            <guid>https://velog.io/@b612_boreum/3%EC%9E%A5-%ED%83%80%EC%9E%85-%EA%B0%92-%EB%B3%80%EC%88%98-p7r7jcii</guid>
            <pubDate>Thu, 12 May 2022 11:30:08 GMT</pubDate>
            <description><![CDATA[<h1 id="타입-값-변수">타입, 값, 변수</h1>
<blockquote>
<p>타입: 표현하고 조작할 수 있는 값을 종류
값: 값을 사용하기 위해 변수에 값을 저장한다
변수 : 변수에는 이름이 있으며 프로그램은 변수 이름을 통해 값을 참조한다.</p>
</blockquote>
<br />

<hr>
<h1 id="31-개요와-정의">3.1 개요와 정의</h1>
<p>자바스크립트의 타입은 기본 타입과 객체 타입으로 나뉜다.</p>
<h2 id="1-기본-타입">1. 기본 타입</h2>
<ul>
<li>숫자</li>
<li>문자열</li>
<li>boolean</li>
<li>null</li>
<li>undefined<h2 id="2-객체-타입">2. 객체 타입</h2>
</li>
<li>이름 붙은 값의 순서 없는 집합</li>
<li>배열</li>
<li>기타는 11장에서 설명<h2 id="3-심벌symbol">3. 심벌(symbol)</h2>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2장 어휘 구조]]></title>
            <link>https://velog.io/@b612_boreum/2%EC%9E%A5-%EC%96%B4%ED%9C%98-%EA%B5%AC%EC%A1%B0</link>
            <guid>https://velog.io/@b612_boreum/2%EC%9E%A5-%EC%96%B4%ED%9C%98-%EA%B5%AC%EC%A1%B0</guid>
            <pubDate>Thu, 28 Apr 2022 05:04:49 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/b612_boreum/post/9e431be5-0598-419a-85ef-9a773520c593/image.png" alt=""></p>
<h1 id="프로그래밍-어휘-구조">프로그래밍 어휘 구조</h1>
<blockquote>
<p>그 언어로 프로그램을 작성할 때 지켜야 할 기본적인 규칙의 집합</p>
</blockquote>
<h2 id="자바스크립의-어휘-구조">자바스크립의 어휘 구조</h2>
<ul>
<li>대소문자 구분, 스페이스, 줄바꿈</li>
<li>주석</li>
<li>리터럴</li>
<li>식별자와 예약어</li>
<li>유니코드</li>
<li>선택 사항인 세미콜론<br />
</li>
</ul>
<hr>
<h1 id="21자바스크립트-프로그램의-텍스트">2.1자바스크립트 프로그램의 텍스트</h1>
<p>- 키워드, 변수, 함수 이름, 기타 식별자(iden-tifier)를 쓸 때 대소문자를 일관적으로 써야 한다.
<br /></p>
<ul>
<li><p>자바스크립트는 대소문자를 구별한다.
(online, Online, OnLine, ONLINE은 모두 다른 변수)</p>
</li>
<li><p>토큰 사이의 공백을 무시하며, 대부분의 경우 줄바꿈도 무시한다.
(프로그램에서 공백과 줄바꿈을 마음대로 쓸 수 있으므로 사용자에게 맞는 일관적인 형식으로 작성 가능하다.)</p>
</li>
<li><p>스페이스 문자(\u0020)외에 탭(tab), ASCII 제어 문자, 유니코드 스페이스 문자를 모두 공백으로 인식한다.</p>
</li>
<li><p>뉴라인(\n), 캐리지 리턴(\r), 캐리지리턴/라인 피드를 모두 줄바꿈 문자로 인식한다.</p>
</li>
</ul>
<br />
<br />

<h1 id="22-주석">2.2 주석</h1>
<p>- 주석은 자바스크립트 코드에 대한 설명 등을 작성 한다.
<br /></p>
<pre><code class="language-javascript">// 한 줄 주석
/* 여러 줄 주석
 * 각 행 앞의 *문자는 없어도 되지만
 * 그럴듯해 보임
*/
</code></pre>
<br/>
<br/>

<h1 id="23-리터럴literal">2.3 리터럴(literal)</h1>
<p>- 리터럴(literal)은 프로그램 안에 직접 쓴 데이터 값이다.
<br /></p>
<pre><code class="language-javascript">12                // 숫자 12
1.2                // 숫자 1.2
&quot;hello world&quot;    // 문자열
&#39;Hi&#39;            // 문자열
true            //boolean
false            //boolean
null            //객체가 존재하지 않음</code></pre>
<br/>
<br/>

<h1 id="24-식별자와-예약어">2.4 식별자와 예약어</h1>
<p>- 식별자는 이름으로 상수,변수, 프로퍼티, 함수, 클래스의 이름에 사용하고 일부 루프의 라벨로도 사용한다.
<br /></p>
<p>- 식별자 규칙
시작</p>
<ul>
<li>글자</li>
<li>밑줄(_)</li>
<li>달러 기호($)</li>
</ul>
<p>중간</p>
<ul>
<li>글자</li>
<li>숫자</li>
<li>밑줄</li>
<li>달러 기호<br />

</li>
</ul>
<h3 id="241예약어">2.4.1예약어</h3>
<p>- 예약된 키워드로 식별자로 사용할 수 없다.
<img src="https://velog.velcdn.com/images/b612_boreum/post/d978be60-1e0b-4a67-8c3a-81cc5c65bbe9/image.png" alt="">
⬆️예약어 예시
<br/>
<br/></p>
<h1 id="25-유니코드">2.5 유니코드</h1>
<p>- 자바스크립트 프로그램은 유니코드 문자셋으로 작성된다.
- 유니코드 문자는 모두 문자열이나 주석에 사용할 수 있습니다.
- 수정할 때 편리하게 사용하기 위해 ASCII글자와 숫자만 쓰는게 일반적이다.</p>
<pre><code class="language-javascript">const π = 3.14; //수학 기호를 변수로 사용
const sí = true;                //영어가 아닌 언어를 변수로 사용</code></pre>
<h3 id="251-유니코드-이스케이프-시퀀스">2.5.1 유니코드 이스케이프 시퀀스</h3>
<p>- 컴퓨터 중 유니코드 문자를 정확히 표시, 입력, 처리하지 못하는 것이 있어서 유니코드 문자를 표현하는 이스케이프 시퀀스(escaape sequence)를 정의한다.</p>
<p>- \u문자로 시작하고 정확히 네 개의 16진수 문자(0-9, A-f)를 쓰거나, 1~6개의 16진수를 중괄호 안에 쓰는 형태이다.</p>
<pre><code class="language-javascript">let café = 1;    // 유니코드 문자로 변수 정의
caf\u0029        // =&gt; 1; 이스케이프 시퀀스로 변수에 접근
caf\u{E9}        // =&gt; 1; 다른 형태의 이스케이프 시퀀스</code></pre>
<p>- ES6에서 이모지와같이 16비트 이상 필요한 유니코드 포인트를 지원하기 위해 중괄호 문법을 도입했다.</p>
<pre><code class="language-javascript">consloe.log(&quot;\u{1F600}&quot;);    // 웃는 얼굴 이모지 출력</code></pre>
<h3 id="252-유니코드-정규화">2.5.2. 유니코드 정규화</h3>
<p>- 자바스크립트 프로그램에 ASCII 문자가 아닌 문자를 사용할 때는 유니코드에 그 문자를 인코딩 방법이 하나 이상 있음을 반드시 인지해야 한다.
- 텍스트 에디터에는 똑같이 표시되지만, 이전 인코딩이 달라 자바스크립트는 다른 것으로 간주한다.</p>
<pre><code class="language-javascript">const café = 1;    // &quot;caf\u{e9}&quot;인 상수
const café = 1;    // &quot;caf\u{301}&quot;인 다른 상수
café            // =&gt; 1: 값이 1인 상수
café            // =&gt; 2: 값이 2인 상수</code></pre>
<p>- 자바스크립트는 해석하고 있는 소스코드가 이미 정규화를 마친 상태라고 가정하여, <span style="color:red">스스로 정규화를 수행하지 않는다.</span>
<br /></p>
<h2 id="26-세미콜론">2.6 세미콜론</h2>
<p>- 자바스크립트에서는 <strong>세미콜론을 굳이 넣지 않아도 된다.</strong></p>
<h3 id="261생략-가능한-경우">2.6.1생략 가능한 경우</h3>
<pre><code class="language-js">a = 3;
b = 4</code></pre>
<h3 id="262-생략이-불가능한-경우">2.6.2. 생략이 불가능한 경우</h3>
<h4 id="1-함수를-연달아-적을-때">1) 함수를 연달아 적을 때</h4>
<pre><code class="language-js">a = 3; b =4;</code></pre>
<h4 id="2-의도하지-않은-결과로-해석이-될-때">2) 의도하지 않은 결과로 해석이 될 때</h4>
<p> 입력</p>
<pre><code class="language-js">let y = x + f
(a=b).toString()</code></pre>
<p> 해석</p>
<pre><code class="language-js">let y = x + f9a+b).toString();</code></pre>
<p> 입력</p>
<pre><code class="language-js">return
true;</code></pre>
<p> 해석</p>
<pre><code class="language-js">return; true;</code></pre>
<p> 의도</p>
<pre><code class="language-js">return true;</code></pre>
<p><span style="color:red">return, break, contiue</span> 다음에 어떤 표현식을 쓴다면, 그 사이에 줄바꿈이 들어가서는 안된다.</p>
<h4 id="3----연산자">3) ++, --연산자</h4>
<p> - 후위 연산자로 사용 시 반드시 적용할 표현식과 같은 행에 작성해야 한다.</p>
<h4 id="4-화살표-함수">4) =&gt;(화살표 함수)</h4>
<p> - 반드시 매개변수 리스트와 같은 행에 있어야 한다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[1장 자바스크립트 소개]]></title>
            <link>https://velog.io/@b612_boreum/1%EC%9E%A5-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%86%8C%EA%B0%9C</link>
            <guid>https://velog.io/@b612_boreum/1%EC%9E%A5-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%86%8C%EA%B0%9C</guid>
            <pubDate>Wed, 27 Apr 2022 18:26:27 GMT</pubDate>
            <description><![CDATA[<h1 id="자바스크립트란">자바스크립트란?</h1>
<blockquote>
<p>웹의 프로그래밍 언어로 객테 지향, 함수형 프로그래밍 스타일에 적합한 고수준의 동적인 인터프리터 언어</p>
</blockquote>
<p>-자바스크립트와 자바는 완전히 다른 언어이다!
-자바스크립트의 일급 함수라는 개념은 스킴(Scheme), 프로토타입에 기반한 상속은 셀프(self)에서 가져왔다.</p>
<h2 id="자바스크립트-핵심-키워드">자바스크립트 핵심 키워드</h2>
<ul>
<li><p><strong>주석</strong>
//이중 슬래시 뒤에 나오는 내용은 모두 주석입니다.</p>
<br/>
</li>
<li><p><strong>변수 선언</strong></p>
<p>let x; //x라는 변수 선언
(자바스크립트 변수에는 <span style="color:red"><strong>타입이 없다</strong></span>.)</p>
<br/>
</li>
<li><p><strong>변수에 값 할당</strong></p>
<pre><code class="language-javascript">let x;
x = 0;

x = 1; //정수
x = 0.1; //실수
x = true; //boolean
x = false; //another boolean
x = null; //&#39;값이 없다&#39;
x = undefined; //어떤 값도 할당되지 않아서 자료형을 알 수 없음
</code></pre>
</li>
<li><p><strong>배열</strong></p>
<pre><code class="language-javascript">let book {                    //객체는 중괄호로 감싸 표현한다.
  topic: &quot;JavaScript&quot;,    //&quot;topic&quot;의 프로퍼티 값은 &quot;JavaScript&quot;이다.
  edition: 7
};</code></pre>
<br />

<ul>
<li><strong>배열</strong><pre><code class="language-javascript">let book {                    //객체는 중괄호로 감싸 표현한다.
topic: &quot;JavaScript&quot;,    //&quot;topic&quot;의 프로퍼티 값은 &quot;JavaScript&quot;이다.
edition: 7
};</code></pre>
</li>
</ul>
</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>