본문 바로가기

공부/TIL

연산자,조건문,형변환

논리 연산자

항상 true false만을 리턴하진 않는다.

not은 항상 불리언값을 반환한다

typeof = 연산자다

typeof('1') < 여기서 ()는 그룹연산자

typeof 뒤에느 표현식이 오겠네? 생각하면 된다

typeof null = object

function(){} = function

선언하지 않은 식별자를 typeof 연산자로 연산해 보면 ReferenceError가 발생하지 않고 “undefined”를 반환한다.

{블록레벨 스코프를 선언하지 않아서

var foo=10;}은 전역변수가 되고, 의미가 없다

-블록문은 같이 실행될 놈들이다

{

코드블록문 : 같이 실행될 문들의 집합이다}

자바스크립트 내에선 함수단위에만 스코프가 있다

if(true ,false로 올 표현식) - > 이 표현식이 안올 경우 자바스크립트로 바꿀려고

노력을하고, 그안에 안되면 에러

가장 대표적 : 비교연산자

if (num > 0) kind = '양수'; else if (num < 0) kind = '음수'; else kind = '영';

어차피 실행할 코드가 한줄인데 왜 코드블록으로 묶는가?

삼항 연산자를 쓰는게 좋다 (할당연산자가 3개나있다)

var kind = num ? (num > 0 ? '양수' : '음수') : '영';

() 그룹연산자 안의 값 하나로 평가, 그후에 다시 평가

if는 조건식 switch는 문자열 또는 숫자여도 됨 (조건이 다양할때)

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

if문은 할지 말지, for문은 하긴할건데 몇번할건지

` 백틱 ${i} 스트링 인터폴레이션 i =표현식(무조건 문자열로 변경)

while은 변수선언을 밖에다 해둠

(var i = 0; i < string.length; i++) 문자열은 '유사배열이다'

문자열이라는 원시타입을 자바스크립트 내부에서 객체로 변경시켜놓고

사용한후 다시 문자열로 돌려놓는다

객체와 배열의 차이 : 메서드존재유무

`(10).toString()`보다 `10 + ''`이 더욱 간결하고 이해하기 쉬울 수 있다.

자바스크립트를 잘아는사람에게는 암묵성 타입변환이 가독성이 더좋다

'암묵적 형변환'을 통해

'10' + 2 // '102' 문자열이 아닌 것을 문자열로 표현식이 담은 값을 형변환했다

5 * '10' // 50 숫자형이 아닌것을 숫자형으로 표현식이 담은 값을 형변환했다

!0 // true 불리언값이 아닌 것을 불리언값으로 표현식이 담은 값을 형변환했다 +'100' 숫자형이 아닌 값을 숫자형으로 형변환

ㅡㅡㅡㅡㅡㅡㅡㅡ

function(){} (함수명이 없는) = 함수 리터럴 = 함수 선언문 같은게 나옴

falsy값

  • false

  • undefined

  • null

  • 0, -0

  • NaN

  • ’’ (빈문자열)

truthy값:

빈객체 ,빈배열

is로 시작하는 함수 리턴값이 불리언값이다

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

함수가 객체를 만들고 함수도 객체다 (객체를 객체가 만든다)

원사타입은 (변경불가, pass by value)

객체타입은 (변경가능, pass by reference)

리터럴 : 값을 만드는 방법

객체 vs 주체

주체가 바라보는 모든것

내가 허범성을 보는 (27살, 남성,신장183체중 77kg 발사이즈270 )특징 지어구분

(속성들의 집합) 명사형 속성(프로퍼티)

허범성은 걷는다, 숨쉰다 (동작) 동사형 속성 메소드

프로퍼티 vs 어트리뷰트 ( 둘다 해석으론 속성)

어트리뷰트는 특성 프로퍼티 :자산이라는 뉘앙스가 나옴

객체가 가지고 있는 자산 -> 데이터랑 연관지어서

프로퍼티중 동작을 나타내는것 (메소드 결국 메소드도 프로퍼티다)

프로퍼티는 값을 갖는다, 메소드도 값을 갖는다 (단, 함수를 갖는다)함수는 값이다

키는 값을 가져올 수 있는 수단

변수에서는 값을 가져올려면 변수명(식별자)

객체에서는 값을 가져올려면 프로퍼티 ' 키'

우리가 관심 있는 데이터만 모아서 추상화(사람)

메소드는 주로 자신의 프로퍼티들을 가져와서 활용, 그렇게 만드는게 좋음

붕어빵틀 (클래스) 붕어빵((객체)인스턴스)

  • 프로퍼티 키 : 빈 문자열을 포함하는 모든 문자열 또는 symbol 값

  • 프로퍼티 값 : 자바스크립트에서 사용할 수 있는 모든 값

this는 메소드를 호출한 객체를 가리킨다

다른언어는 클래스를 통해서 만들어서 프로퍼티나 메소드 추가 x

추가하려면 다른 클래스를 만들어야됨

자바스크립트는 프로퍼티를 동적으로 프로퍼티를 생성할 수 있고

객체 완성후에도 프로퍼티 수정,삭제 가능 *동적 프로퍼티 생성*

반응형

'공부 > TIL' 카테고리의 다른 글

객체지향 프로그래밍,객체,프로토타입,프로토타입 체인  (0) 2019.05.09
스코프 , 객체  (0) 2019.05.08
변수 ~ 연산자  (0) 2019.05.03
var, let, const의 차이는?  (0) 2019.05.02
자바스크립트, 동작원리  (0) 2019.05.01