728x90
728x90

앞 게시물에서 언급했듯이 식별자는 어떤 값을 구별해서 식별해낼 수 있는 고유한 이름을 말한다.

→ 다음과 같은 네이밍 규칙을 지켜야 함

  • 식별자는 특수문자를 제외한 문자, 숫자, 언더스코어_, 달러 기호를 포함할 수 있다
  • 단 , 식별자는 특수문자를 제외한 문자, 언더스코어, 달러 기호로 시작해야한다

→ 숫자로 시작하는 것은 허용하지 않는다

  • 예약어는 식별자로 사용할 수 없다

예약어 표

awaitbreakcasecatchclassconst

continue debugger default delete do else
enum export extends false finally for
Function if implements import in instanceof
interface let new null package private
protected public return super static switch
this throw true try typeof var
void while with vield    
  • 식별자는 대소문자를 구분한다
  • 식별자는 의미있는 단어나 약어로 작성한다
  • 변수와 상수는 명사형으로, 함수는 동사형으로 작성한다
  • 여러 단어로 이루어진 식별자는 각 단어의 첫 글자를 대문자로 작성하는 CamelCase를 사용한다
  • 상수는 모든 글자를 대문자로 작성하고 단어와 단어 사이에 언더스코어를 사용한다

→ 변수 이름도 식별자이므로 위 네이밍 규칙을 따라야 한다.

→ 쉼표로 구분해 하나의 문에서 여러개를 한꺼번에 선언할 수 있지만 가독성 때문에 추천하지 않는다

var person,$elem,_name,first_name,vail;
  • Es5부터 식별자를 만들 때 유니코드 문자를 허용함→ 알파벳 말고 한글이나 일본어도 가능

→ 권장하지 않음

참고해야 할 사항들

  • 변수의 이름은 변수의 존재 목적을 쉽게 이해할 수 있도록 의미를 명확히 표현해야 함
  • 좋은 변수 이름은 코드의 가독성을 높임
  • 변수 선언에 별도의 주석이 필요하고 그걸 봐야 이해가 된다면? 니가 변수 선언 뭣같이 한거임. 다시해

네이밍 컨벤션

  1. 카멜 케이스 ( 변수와 함수의 이름)
var firstName;

두번째 단어의 첫글자를 대문자로 바꿔준다

  1. 스네이크 케이스
var first_name;

단어 사이를 언더스코어로 구분한다.

  1. 파스칼 케이스 (생성자 함수. 클래스의 이름)
class UserInfo {}

각 단어의 첫 글자를 대문자로 작성하는 방식. 클래스 이름에 주로 사용된다.

  1. 헝가리안 케이스
var strFirstName;
var $elem = document.getElementByID('myId')
var observable$ = fromEvent(document, 'click')

헝가리안 케이스는 변수의 타입을 앞에 붙여서 표시하는 방식이다


코드 전체의 가독성을 높이려면 카멜 케이스와 파스칼 케이스를 따르는 것이 유리하다

  • 함수를 선언할때는 동사형으로 한다
function getUserInfo() {}
728x90
300x250
728x90
728x90

만약 변수에 값을 할당한 후에 새로운 값을 할당해야 한다면?

재할당 : 현재 변수에 저장된 값을 버리고 새로운 값을 저장하는 것

상수 : 값을 재할당할수 없어서 변수에 저장된 값을 변경할 수 없는 경우 (딱 한번만 할당할 수 있는 변수)

 

💡 var 키워드로 선언한 변수는 선언과 동시에 undefined 로 초기화되기 때문에 엄밀히 말하자면 변수에 처음으로 값을 할당하는 것도 사실은 재할당이다.

🤩 Es6에서 도입된 const 키워드를 사용해 선언한 변수는 재할당이 금지된다

→ Const 키워드를 사용하면 상수를 표현할 수 있다.

변수에 값을 재할당하면 score 변수의 값은 이전 값 80에서 재할당한 값 90을 새롭게 저장하는 것이 아님

→ 새로운 메모리 공간을 확보하고 그 메모리 공간에 숫자 값 90을 저장한다

가비지 콜렉터

애플리케이션이 할당한 메모리 공간을 주기적으로 검사하여 더 이상 사용되지 않는 메모리를 해제하는 기능

→ 어떠한 식별자도 참조하지 않는 메모리 공간을 의미

→ 자바스크립트는 가비지 콜렉터를 내장하고 있는 매니지드 언어로서 가비지 콜렉터를 통해 메모리 누수 방지

→ 메모리에서 언제 해제될지는 예측할 수 없다

언매니지드 언어/ 매니지드 언어

  • 언매니지드 언어 : 개발자가 명시적으로 메모리를 할당하고 해제하기 위해 malloc() / free() 같은 저수준 메모리 제어 기능을 제

→ 메모리 제어를 개발자가 주도할 수 있으므로 개발자의 역량에ㄷ 따라 최적의 성능을 확보할 수 도 있지만 그 반대의 경우 치명적 오류를 생산할 가능성도 있다

  • 매니지드 언어 : 메모리의 할당 및 해제를 위한 메모리 관리 기능을 언어 차원에서 담당하고 개발자의 직접적인 메모리 제어를 허용하지 않는다. 즉, 개발자가 명시적으로 메모리를 할당하고 해제할 수 없다

→ 더이상 안쓰는건 가비지 콜렉터가 가져간다.

728x90
300x250

'2023 공부한것들' 카테고리의 다른 글

[5-1] 용어정리 : 값  (0) 2023.06.30
[4-7] 식별자 네이밍 규칙  (0) 2023.06.30
[4-5] : 값의 할당  (0) 2023.06.30
[4-4] 변수 선언의 실행 시점과 변수 호이스팅  (0) 2023.06.29
[4-3] 변수 선언  (0) 2023.06.28
728x90
728x90

할당 연산자

변수에 값을 할당(assignment, 대입 ,저장) 할 때는 할당 연산자 =을 사용한다.

우변의 값을 좌변의 변수에 할당한다

var score;
score = 80;

변수 선언과 값의 할당을 다음과 같이 하나의 문으로 단축할수도 있다

var score = 80;

변수 선언과 할당을 2개의 문으로 나눌수도 있고, 하나의 문으로 단축할수도 있다.

→ 둘 다 똑같이 동작한다

 

💡 이때 주의할 점은 변수 선언과 값이 할당의 실행 시점이 다르다는 것 → 변수 선언은 소스코드가 순차적으로 실행되는 시점인 런타임 이전에 먼저 실행되지만 값의 할당은 소스코드가 순차적으로 실행되는 런타임에 실행된다.

 

  • 예시를 들어보자
console.log(score);

var score;
score = 80;

console.log(score);

변수 선언 : 런타임 이전에 먼저 실행됨

값의 할당 : 런타임에 실행됨

→ score 변수에 값을 할당하는 시점에는 이미 변수 선언이 완료된 상태이며, 이미 undefined로 초기화되어 있다.

score 변수에 값을 할당하면 score 변수의 값은 undefined에서 새롭게 할당한 숫자 값 80으로 변경(재할당)

→ 변수 선언과 값의 할당을 하나의 문으로 단축 표현할 수도 있으므로 동작 예시를 보자면

console.log(score);

var score = 30;
console.log(score);

변수의 선언과 값을 할당을 하나의 문장으로 단축 표현해도 자바스크립트 엔진은 변수의 선언과 값의 할등을 2개의 문으로 나누어 각각 실행하기에, 변수에 Undefined 가 할당되어 초기화되는것은 변함이 없다.

  • 변수에 값을 할당할 때:

→이전 값 undefined가 저장되어 있던 메모리 공간을 지우고 그 메모리 공간에 할당 값 80을 새롭게 저장하는 것이 아니라 새로운 메모리 공간을 확보하고 그곳에 할당 값 80을 저장한다는 점을 주의할것,

728x90
300x250
728x90
728x90
console.log(score);
var score;

변수 선언문보다 변수를 참조하는 코드가 앞에 있는 경우 : 자바스크립트 코드는 인터프리터에 의해 한 줄씩 순차적으로 실행됨

→ console.log(score)가 가장 먼저 실행됨

→ 순차적으로 다음 줄에 있는 코드를 실행함

  • console.log(score)가 실행되는 시점에는 아직 score변수의 선언이 실행되지 않았음으로 참조 에러가 발생할 것으로 보인다
  • 그러나 참조 에러가 발생하지 않고 undefined 가 출력된다

→ 변수 선언이 소스코드가 한 줄씩 순차적으로 실행되는 시점, 즉 런타임이 아니라 그 이전 단계에서 실행되기 때문

자바스크립트 엔진은 소스코드를 한 줄씩 순차적으로 실행하기에 앞서 먼저 소스코드의 평가 과정을 거침

→ 소스코드 실행을 위한 준비 단계인 소스코드의 평가 과정에서 자바스크립트 엔진은 변수 선언을 포함한 모든 선언문 (변수 선언문, 함수 선언문 등) 을 소스코드에서 찾아내 먼저 실행한다

→ 이 과정이 끝나면 비로소 변수 선언을 포함한 모든 선언문을 제욓사고 소스코드를 한 줄씩 순차적으로 실행하는 것이다.

 

💡 자바스크립트 엔진 : 변수선언이 소스코드의 어디에 있든 상관없이 다른 코드보다 먼저 실행됨. → 변수 선언이 소스코드 어디에 위치하는지와 상관없이 어디서든지 변수를 참조할 수 있음

 

변수 선언문인 var score; 보다 변수를 차조하는 코드인 console.log(score);가 앞에 있음

만약 코드가 순차적으로 실행되는 런타임에 변수 선언이 실행된다면?

→ console.log(score);가 실행되는 시점에는 아직 변수가 선언되기 이전임

→ 위 코드를 실행하면 참조 에러가 발생해야 하는데 그냥 undefined가 출력됨

→ 이는 변수 선언이 소스코드가 순차적으로 실행되는 런타임 이전 단계에서 먼저 실행된다는 증거이다.

호이스팅

→ 이처럼 변수 선언문의 코드의 앞부분으로 끌어 올려진 것처럼 동작하는 자바스크립트 고유의 특징

→ var, let, const, function, function*, class 키워드를 사용해서 선언하는 모든 식별자는 호이스팅된다.

728x90
300x250
728x90
728x90

변수 선언 : 변수를 생성하는 것

→ 값을 저장하기 위한 메모리 공간을 확보하고 변수 이름과 확보된 메모리 공간의 주소를 연결해서 값을 저장할 수 있게 준비하는 것이다.

→ 변수 선언에 의해 확보된 메모리 공간은 릴리즈되기 전까지는 누구도 확보된 메모리 공간을 사용할 수 없도록 보호되므로 안전하게 사용할 수 있다.

자바스크립트에서 변수 선언하기

변수를 선언할 때는 let, const, var 키워드 중 하나를 사용한다

// let을 사용한 변수 선언
let myVariable = 'Hello';
console.log(myVariable); // 출력: Hello

// const를 사용한 변수 선언
const myConstant = 123;
console.log(myConstant); // 출력: 123

// var를 사용한 변수 선언
var myVar = true;
console.log(myVar); // 출력: true

let은 값을 변경할 수 있는 변수를 생성할 때 사용한다. const는 값을 변경할 수 없는 상수를 생성할 때 사용한니다. var는 ES6 이전에 사용하던 변수 선언 방식으로, 현재는 let과 비슷한 용도로 사용된다.

https://insidepixce.tistory.com/145

자세한 부분이 알고싶다면? 여기 참고

💡 Es5 vs Es6- var 키워드는 여러 단점이 있다. var 키워드의 여러 단점 중에서 가장 대표적인 것이 블록 레벨 스코프를 지원하지 않고 함수 레벨 스코프를 지원한다는 것이다. 이로 인해 의도치 않게 전역 변수가 선언되어 심각한 부작용이 발생하기도 한다

 

Es6 에서 let 과 const 키워드를 도입한 이유 : var키워드의 여러 단점을 보완하기 위해서이다. 따라서 let과 const 키워드가 도입된 이유를 정확히 파악하려면 var 키워드의 단점부터 이해해야 한다.

→ 스코프와 같은 자바스크립트의 핵심 개념을 먼저 살펴봐야 함

다음 코드를 살펴보자. Var 키워드는 뒤에 오는 변수 이름으로 새로운 변수를 선언할 것을 지시하는 키워드이다

var score;

💡 키워드는 자바스크립트 코드를 해석하고 실행하는 자바스크립트 엔진이 수행할 동작을 규정한 일종의 명령어이다. 자바스크립트 엔진은 키워드를 만나면 자신이 수행해야 할 약속된 동작을 수행한다. 예를 들어, Var 키워드를 만나면 자바스크립트 엔진은 뒤에 오는 변수 이름으로 새로운 변수를 선언한다

 

변수를 선언한 이후, 아직 변수에 값을 할당하지 않았다

→ 변수 선언에 확보된 메모리 공간은 비어 있을 것으로 생각하나 확보된 메모리 공간에는 자바스크립트 엔진에 의해 Undefinedf라는 값이 암묵적으로 할당되어 초기화된다

 💡 undefined : 자바스크립트에서 제공하는 원시 타입의 값이다. 변수를 선언하면 해당 변수에 값이 할당되기 전까지는 undefined로 초기화된다. undefined는 변수가 생성되었지만 값이 할당되지 않은 상태를 나타내며, null과는 다른 개념이다.

 

[Node.js] null과 undefined: 뭔지, 뭔 차이인지?

더 알고 싶다면 여기 클릭

자바스크립트 엔진은 변수 선언을 다음과 같은 2단계에 걸쳐 수행한다

  • 선언 단계 : 변수 이름을 등록해서 자바스크릅트 엔진에 변수의 존재를 알린다
  • 초기화 단계 : 값을 저장하기 위한 메모리 공간을 확보하고 암묵적으로 Undefined를 할당해 초기화한다

💡 변수 이름은 어디에 등록되는가? 변수 이름을 비롯한 모든 식별자는 실행 컨텍스트에 등록된다. 실행 컨텍스트는 자바스크립트 엔진이 소스코드를 평가하고 실행하기 위해 필요한 환경을 제공하고 코드의 실행 결과를 실제로 관리하는 영역이다. 자바스크립트 엔진은 실행 컨텍스트를 통해 식별자와 스코프를 관리한다. 변수 이름과 변수 값은 실행 컨텍스트 내 키값형식인 객체로 등록되어 관리된다. 자바스크립트 엔진이 변수를 관리하는 메커니즘은 추후에 자세히 살펴볼 것이다. 지금은 단순이 자바스크립트 엔진이 변수를 관리할 수 있도록 변수의 존재를 알린다는 정도만 알아두자

 

Keyword : 실행 컨텍스트가 궁금하시다면

https://insidepixce.tistory.com/146 를 참고할 것

  • var 키워드를 사용한 변수 선언은 선언 단계와 초기화 단계가 동시에 진행됨
  • var score; 는 선언 단계를 통해 변수 이름 score를 등록하고, 초기화 단계를 통해 score 변수에 암묵적으로 undefined를 할당해 초기화한다.
  • 초기화란?

→ 변수가 선언된 이후 최초로 값을 할당하는 것

→ var 키워드로 선언한 변수는 Undefined라는 값으로 자동 초기화가 진행된다.

→ var키워드로 선언한 변수는 어떠한 값도 할당하지 않아도 undifined라는 값을 갖는다

if 초기화 단계를 거치지 않으면 확보된 메모리 공간에는 이전에 다른 애플리케이션이 사용했던 값이 남아있을 수 있다. 이러한 값을 쓰레기 값(garbage value : 가베지 밸류) 라고 한다. 따라서 메모리 공간을 확부한 다음, 값을 할당하지 않은 상태에서 곧바로 변수 값을 참조하면 쓰레기 값이 나올 수 있다.

→ Var 키워드는 암묵적으로 초기화를 수행하므로 이러한 위험으로부터 안전하다

변수를 사용하려면 반드시 선언이 필요하다.

→ 만약 선언하지 않은 식별자에 접근하면 ReferenceError가 발생한다.

→ ReferenceError는 식별자를 통해 값을 참조하려 했지만 자바스크립트 엔진이 등록된 식별자를 찾을 수 없을 때 발생하는 에러이다

728x90
300x250
728x90
728x90

오눌 배울 것 : Position 속성과 좌표 속성 만들기

.tstory {
  /* 버튼 스타일 정의 */
  background-color: hsl(307, 79%, 72%);
  color: #fff;
  padding: 10px 20px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  font-size: 20px;
  font-weight: bold;
  border-radius: 5px;
  text-align: center;
  position: absolute;
  top: 50%; /* 수정: 40% -> 50% */
  left: 50%;
  transform: translate(-50%, -50%);
  
  • Position
  1. 이용하면 좌표 이동이 가능하다
  2. Relative: 내가 원래 있던 자리를 기준으로
  3. fixed : 현재 위치를 기준점으로 두는것 (현재 뷰포트)
  4. fixed : 상단에 고정
  5. absolute : 내 부모가 기준점이 된다
  6. 공중에 뜬다고 생각할 수 있다

좌표 이동을 하고 싶으면 여기서 띄운다

bottom : 100px;
left: 100px

과제하기

  1. 사진 추가해서 위치 맞추기
.sub-image{
    width: 60%;
    height: 30%;
    position: absolute;
    top: 30%;
    left: 20%;

  }
<meta charset="UTF-8">
        <title>Home</title>
        <link href="css/main.css" rel="stylesheet">
    </head>
    <body>
        <div class="main-background">
            <h4 class="main-title">
                Our lifes<br>
                are<br>
                beautiful
            </h4>
            <P class="main-content"> everyday with you must be beatiful <br> the world's not perfect but it's not that bad <br>
            if we got each other that's all we have<br> i'll be your lover and i'll hold your hand <br> you should know i'll be there for you </P>
            <a href="https://insidepixce.tistory.com" class="tstory">do anything</a>
            <image src="source/kitchyroom.png" class="sub-image"></image>
            
            </div>
        </div>
    </body>
</html>

이것도 이것 나름대로 예쁘기는 한데, 우리가 원한 그림은 이게 아니자나!

.main-title{
    color : black;
    font: size 50px;
    font-weight: bold;
    text-align: center;
    top: 40%;
    left: 50%;
    transform: translate(-50%, -50%);
    Position: relative;
    font-size: 50px;
    z-index: 1;

}

.tstory {
  /* 버튼 스타일 정의 */
  background-color: hsl(307, 79%, 72%);
  color: #fff;
  padding: 10px 20px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  font-size: 20px;
  font-weight: bold;
  border-radius: 5px;
  text-align: center;
  position: absolute;
  top: 50%; /* 수정: 40% -> 50% */
  left: 50%;
  transform: translate(-50%, -50%);
  margin-top: 230px;
  z-index: 1;
  }
  
  .tstory:hover,
  .tstory:focus {
    background-color: #540430;
  }

  .main-content {
    text-align: center;
    font-size: 20px;
    margin: auto;
    margin-top: 320px;
    z-index:1;
}

  .sub-image{
    width: 60%;
    height: 30%;
    position: absolute;
    top: 30%;
    left: 20%;
    z-index:0;

  }

이렇게 z-index를 줬는데도

쓸 거 없어서 뭐넣지 뭐넣지 고민하다가 넣은 main-content가 가려진다!

이를 해결하기 위해서는 sub-image의 z-index 값을 0에서 1 이상으로 올려주면 된다는 이야기가 있어서 이렇게 바꿔보았는데도 그대로 !

.sub-image{
    width: 60%;
    height: 30%;
    position: absolute;
    top: 30%;
    left: 20%;
    z-index: 1;
}

그로부터 무한 구글링 시작

  • 해결책 : .main-content 요소를 .sub-image 위로 올리려면?
  • 💡 position: relative를 추가해야 한

 

→ z-index가 static 이외의 position 값 (relative, absolute, fixed, sticky)을 가진 요소에만 적용되기 때문이다.

.main-content {
    text-align: center;
    font-size: 20px;
    margin: auto;
    margin-top: 320px;
    z-index: 3;
    position:relative;
}

이렇게 설정해주니까 됐음 !

이미지가 없는 게 더 예뻐 보이는 건 왜일까?

이미지의 조화를 위해서 투명도를 설정하려다가, 좋은 방법이 떠올랐다. 바로 똑같은 사이즈의 흰색 div를 넣고 투명도를 낮추는 것이다. 사이즈 조정과 같이 해주었다

<a href="https://insidepixce.tistory.com" class="tstory">do anything</a>
            <img src="source/kitchyroom.png" class="sub-image"></image>
            <div class="brightning"> </div>
 

div를 추가해준 다음, css파일로 가 속성을 확인해준다

  .brightning{
    width: 60%;
    height: 60%;
    position: absolute;
    top: 20%;
    left: 20%;
    z-index:1;
    background-color: #fff;
    opacity:0.5;

  }

투명도 조절도 같이 해주었다. 원래 다른 분들은 rgba 를 사용 많이 하시던데 나는 opacity 를 사용했다. oppacity 같은 경우에는 자식 태그에까지 전부 상속되는 태그라 전체가 다 투명해질수도 있는데 나는 이 div박스 하나만 투명하게 하면 되는거라서 괜찮았다.

나름 결과물 예쁘게 잘 뽑힌 것 같다 !

 

css코드

.main-background {
  width: 100%;
  height: 2000px;
  background-image: url(../source/kitchyback.jpeg), url(../source/kichyback.jpeg);
  background-size: cover;
  background-repeat: no-repeat;
 
  
}

.main-title{
  color : black;
  font-weight: bold;
  text-align: center;
  top: 35%;
  left: 50%;
  transform: translate(-50%, -50%);
  Position: relative;
  font-size: 50px;
  z-index: 1;
  height: 50%


}

.tstory {
/* 버튼 스타일 정의 */
background-color: hsl(307, 79%, 72%);
color: #fff;
padding: 10px 20px;
border: none;
cursor: pointer;
text-decoration: none;
font-size: 20px;
font-weight: bold;
border-radius: 5px;
text-align: center;
position: absolute;
top: 50%; /* 수정: 40% -> 50% */
left: 50%;
transform: translate(-50%, -50%);
margin-top: 100px;
z-index: 1;
}

.tstory:hover,
.tstory:focus {
  background-color: #540430;
}

.main-content {
  text-align: center;
  font-size: 20px;
  position: absolute;
  z-index:1;
  display:flex;
  align-items: center;
  justify-content: center;
  height:200px;
  top: 45%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.sub-image{
  width: 80%;
  height: 60%;
  position: absolute;
  top: 10%;
  left:10%;
  max-height:70%
}

.brightning{
  width: 80%;
  height: 60%;
  position: absolute;
  top: 10%;
  left:10%;
  max-height:70%;
  background-color: white;
  opacity: 0.4; 
}

 

html 코드

<html>
    <head>
        <meta charset="UTF-8">
        <title>Home</title>
        <link href="css/main.css" rel="stylesheet">
    </head>
    <body>
        <div class="main-background">
            <h4 class="main-title">
                Our lifes<br>
                are<br>
                beautiful
            </h4>
            <P class="main-content"> everyday with you must be beatiful <br> the world's not perfect but it's not that bad <br>
            if we got each other that's all we have<br> i'll be your lover and i'll hold your hand <br> you should know i'll be there for you </P>
            <a href="https://insidepixce.tistory.com" class="tstory">do anything</a>
            <img src="source/kitchyroom.png" class="sub-image"></image>
            <div class="brightning"> </div>
            <div class="explain-box">
                
            </div>
            </div>
        </div>
    </body>
</html>
728x90
300x250

'2023 공부한것들' 카테고리의 다른 글

[4-4] 변수 선언의 실행 시점과 변수 호이스팅  (0) 2023.06.29
[4-3] 변수 선언  (0) 2023.06.28
20230628 오전 회고  (0) 2023.06.28
[4-2] 식별자  (0) 2023.06.28
[4-1] 변수란 무엇인가? 왜 필요한가?  (0) 2023.06.28
728x90
728x90

딥다이브 4장이 너무 길다 …

하나하나 안 놓치고 넘어가려 하니 힘들다

공부시간에 있어 제일 두려운 건 식곤증인 것 같다

아무리 재밌는걸 해도 식곤증이 몰려오면,,, 눈이 감긴다

심지어 새벽까지 안 자고 있다보니깐 힘들다 ㅠ

28일 오전에 작성한 딥다이브 필기 모음

https://insidepixce.tistory.com/140

https://insidepixce.tistory.com/141

https://insidepixce.tistory.com/142

https://insidepixce.tistory.com/143

https://insidepixce.tistory.com/147

https://insidepixce.tistory.com/148

해도해도 안 끝나는건 내 기분탓인가? 항상 취미가 직업이 되면 마냥 행복할 수는 없다는 걸 느꼈다.

28일 오전에 작성한 노드 개념정리 필기 모음

https://insidepixce.tistory.com/146

https://insidepixce.tistory.com/145

https://insidepixce.tistory.com/144


이제서야 점심을 먹으러 갈 거다. 보통 1시부터 2시까지 점심 먹고 오전 회고록을 작성했는데, 오전동안 공부한 내용과 느낀점을 생생하게 적지 못하는 것 같아서 오늘은 밥 먹으러 가기 전에 작성해보았다.

첫째 고민 : 수면 패턴

욕심이 너무 많아서인지… 집에 안 들어간지 버써 3일째다. 물론 공유오피스에 이불 깔고 자면 그나마 괜찮지만 그래도 …

조금은 자야 내가 살아나는데.

두번째 고민: 내가 지금 하고 있는 커리큘럼, 과연 나한테 맞을까?

조금 쉬운 감도 있다. 그러나 수강하면서 얻는 점이 아무것도 없었다는 건 아니다.

몰랐던 부분도 분명히 있었다. 완벽한 개발자가 되려면 이정도도 감수하고 가야 할 것 같다.

시간과 노력을 엄청나게 들여야 할 테니까. 분명히 플젝 할때 내 기본적인 부분에 대한 구멍들을 확인했고, 이 구멍을 메꾸기 위해 처음부터 다시 시작해야겠다고 마음을 먹었다. 하지만 강의가 지루한 부분에 대해서는 해결하지 못하였다.

728x90
300x250
728x90
728x90

식별자란 어떤 값을 구별해서 식별할 수 있는 고유한 이름

→ 변수 이름을 식별자라고 하기도 한다

→ 식별자는 어떤 값이 저장되어 있는 메모리 주소를 기억(저장)해야 한다.

식별자는 값이 아니라 메모리 주소를 기억하고 있다.

식별자로 값을 구별해서 식별한다는 것은 식별자가 기억하고 있는 메모리 주소를 통해 메모리 공간에 지정된 값에 접근할 수 있다는 의미이다.

→ 식별자는 메모리 주소에 붙인 이름이라고 볼 수 있다

→ 변수 이름에만 국한해서 사용하지 않는다

  • 변수 함수 클래스 등의 이름은 모두 식별자이다
  • 식별자인 변수 이름으로는 메모리 상에 존재하는 변수 값을 식별할 수 있다.
  • 함수 이름으로는 함수(자바스크립트에서 함수는 값이다) 를 식별할 수 있다.
  • 즉. 메모리 상에 존재하는 어떤 값을 식별할 수 있는 이름은 모두 식별자라고 부른다

% 변수, 함수, 클래스 등의 이름과 같은 식별자는 네이밍 규칙을 준수해야 하며, 선언에 의해 자바스크립트 엔진에 식별자의 존재를 알린다.

다음 게시물에는 변수를 선언하는 방법을 알아볼 것이다

728x90
300x250

+ Recent posts