Javascript

    [TIL] JavaScript 형변환

    Javascript는 느슨한 언어이므로 변수 선언시 타입을 지정하지 않기 때문에 개발자가 명시적으로 타입을 지정해주기도 하고, 자바스크립트 엔진 내에서 암시적으로 타입을 변한하기도 한다. 명시적 타입 변환이나 암시적 타입 변환이나 기존 원시값을 직접 변경하는 것은 아니다. 원시값은 변경 불가능한 값이므로 변경할 수 없다. 타입 변환이란 기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것이다. 자바스크립트가 느슨한 언어이기에 정확한 코드를 작성하기 위해서는 형변환의 원리를 꼭 알고 가야되겠구나 생각했다. (1) 명시적 형변환(explicit coercion) 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라고 한다. 명시적 형변환(explicit coerc..

    [TIL] 느슨한 타입의 동적 언어, 자바스크립트

    C나 자바같은 정적타입 언어는 변수를 선언할 때 변수에 할당할 수 있는 값의 종류, 즉 데이터 타입을 사전에 선언해야 한다. 이를 명시적 타입 언어(explicit type declaration)라고 한다. 정적 타입 언어는 변수의 타입을 변경할 수 없으며 변수에 선언한 타입에 맞는 값만 할당할 수 있다. 정적 타입 언어는 컴파일 시점에 타입 체크(선언한 데이터 타입에 맞는 값을 할당했는지 검사하는 처리)를 수행한다. 만약 타입 체크를 통과하지 못했다면 에러를 발생시키고, 프로그램의 실행 자체를 막는다. 이를 통해 타입의 일관성을 강제함으로써 더욱 안정적인 코드의 구현을 통해 런타임에 발생하는 에러를 줄인다. 1. 느슨한 타입(loosely typed)의 동적(dynamic) 언어 Javascript의 ..

    [TIL] 전역변수와 지역변수

    함수는 유효 범위에 따라 전역변수(Global Variable)와 지역 변수(Local Variable)로 나뉜다. 전역변수 : 함수 외부에서 선언된 변수로, 프로그램 전체에서 접근할 수 있는 변수다. 지역변수 : 함수 내부에서 선언된 변수로, 함수가 실행되면 만들어지고, 함수가 종료되면 소멸한다. 함수 외부에서는 접근할 수 없다. // 전역 변수와 지역 변수 // 전역변수 let name = "JS" let msg = "Welcome!"; function hello(name){ // 지역변수 let msg = "Hello!" console.log(name + " " + msg); } // 전역변수 출력 console.log(name + " " + msg) // JS Welcome! // 지역변수 출력 ..

    [lv.1] 문자열 내 p와 y의 개수

    [lv.1] 문자열 내 p와 y의 개수

    문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 제한 사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 입출력 예 s answer "pPoooyY" true "Pyy" false 입출력 예 설명 입출력 예 #1 'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return ..

    [lv.1] 내적

    [lv.1] 내적

    문제 설명 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 제한 사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 입출력 예 a b result [1,2,3,4] [-3,-1,0,2] 3 [-1,0,1] [1,0,-1] -2 입출력 예 설명 입출력 예 #1 a와 b의 내적은 1*(-3) + 2*(-1) + 3*0 + 4*2 = 3 입니다. 입출력 예 #2 a와 b의 내적은 (-1)*1 + 0*0 + 1*(-1..

    [TIL] 객체 리터럴

    [TIL] 객체 리터럴

    1. 객체 리터럴 (Object literal) : 배열이나 함수가 아닌 객체로, 여러 개의 변수를 하나의 변수로 묶을 때 사용한다. 객체 리터럴 내의 name, age와 같은 정보를 속성이라고 한다. 2. 속성(Property) : 속성은 속성 이름(key)과 속성 값(value)으로 이루어져 있다. 3. 배열과 객체 리터럴의 차이점 왜 배열 대신에 객체 리터럴을 사용하는 것일까? 객체 리터럴은 값에 이름이 붙어 있기 때문이다. 4. 객체 리터럴에 접근하기 .(점)또는[ ](대괄호) 로 객체와 객체 속성에 접근할 수 있다. 일반적인 속성은 '객체.속성이름' 으로 접근하고, 위의 코드처럼 '2ca'나 'c a'같은 속성이름은 [](대괄호)로 접근한다. [ ] (대괄호)를 쓸 때는 항상 ' '(따옴표)를 ..

    [TIL] 함수 기본

    [TIL] 함수 기본

    1. 함수 - 함수란 특정한 작업을 하나의 단위로 묶어놓은 것을 의미한다. - 함수를 사용하면 불필요한 소스코드의 반복을 줄일 수 있다는 장점이 있다. 2. 함수의 종류 기본적으로 제공하는 내장 함수와 개발자가 정의하여 사용할 수 있는 사용자 정의 함수가 존재한다. 1) function함수 : function 예약어 2) 화살표 함수 : => (화살표) 기호를 사용 화살표 함수는 return , {} 생략이 가능하다. 3. 함수 정의하기 • 프로그램에는 똑같은 코드가 반복적으로 사용되어야 할 때가 많다. • 함수를 사용하면 소스코드의 길이를 줄일 수 있다. function 함수명(매개변수){ 실행할 소스코드 return 반환값 }​ 매개변수 : 함수 내부에서 사용할 변수 반환 값 : 함수에서 처리된 결과..

    [lv.1] 2016년

    [lv.1] 2016년

    문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 입출력 예 a b result 5 24 "TUE" 풀이 1. 문제 분석 2016년 a월 b일이 무슨 요일인지 구해야 한다. 2. 규칙 찾기 2016년 1월 1일은 금요일이다. 1..

    [TIL] 배열

    1. 객체 객체는 자료형의 일종으로 다양한 값을 모아둔 또다른 값이다. 객체의 종류는 크게 배열, 함수, 함수가 아닌 객체로 나눌 수 있다. 2. 배열 다양한 자료형을 하나로 묶어 놓은 것이다. 같은 타입의 데이터를 연속된 공간에 저장하는 자바에서의 배열과는 다르게 현재 배열 안에 있는 값은 모두 문자열이지만, 값의 자료형이 모두 같아야 할 필요는 없다. 배열 안에 다른 배열이나 변수를 넣을 수 있다. const fruits = ['사과', '오렌지', '배', '딸기']; console.log(fruits[0]); console.log(fruits[1]); console.log(fruits[2]); console.log(fruits[3]); console.log(fruits[4]); 3. 배열의 Ind..