따옴표 문자열, 벡터 문자열

oYJo·2025년 3월 21일

JavaScript

목록 보기
24/52
post-thumbnail

문자열

1️⃣ 따옴표 문자열(””, ‘’)

문자열을 표현해주기 위해 사용한다
문자열을 작성할 때 값을 따옴표로 묶어야 한다.
감싸주지 않은 텍스트는 변수 이름, 속성 이름, 예약어 등으로 간주된다.
페이지 인코딩 방식 상관없이 항상 UTF-16 형식을 따른다

✔️ASCII(아스키 코드)
ASCII : 영문 알파벳을 사용하는 대표적인 문자 인코딩
숫자, 문자를 매칭시키는 국제적인 규칙
7비트로 구성된 인코딩, 128개 문자들
근데 8비트로 구성되어 있는데 7자리만 사용한다

❓왜? 한 자리는 패리티 비트라고 부르는데, 데이터 에러를 탐지하기 위해 사용한다
1바이트로 문자들을 표현할 수 있다
'A' 문자 : 10진수로 65,
'@' 문자 : 10진수로 64

❗️A는 American 즉, 아스키 코드에는 영어만 존재한다
→ 그래서 유니코드 등장

✔️UNICODE
UNICODE : 유니코드 협회가 제정
전 세계 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준
= 전세계 언어가 대응할 수 있는 공통

기존 1바이트 ASCII 문자셋 표현할 수 있는 문자들이 부족해지면서 많은 문자셋이 필요해짐

대표적인 인코딩 포멧이 바로 UTF-8UTF-16

❗️인코딩을 하는 이유
인코딩은 1. 데이터표준화, 2. 저장 공간 절약, 3. 처리 속도 향상, 4. 보안 등 때문에 한다

✔️UTF-8, UTF-16, UTF-32
UTF-8 : 가장 많이 사용되는 가변 길이 유니코드 인코딩, 웹에서 가장 많이 사용하며, XML, HTML 기본 인코딩으로 권장

아스키 문자들은 1바이트
중동, 유럽 언어들은 2바이트
한글 등 아시아 언어들은 3바이트


UTF-16 : 2~4바이트가 필요한 가변길이 인코딩 방식, 자바 프로그래밍에서 많이 사용한다
이때, 영문 & 한글은 2바이트 사용한다

UTF-8보다 더 용량 넓어서 저장 공간 효율성
하지만 UTF-8보다 사용하는데 복잡하다


UTF-32 : 모든 문자를 4바이트(32비트) 고정 길이로 인코딩한다.

변형규칙, 가변길이를 고려하지 않아도 되기에 일관성 있고, 단순하다.
= 인코딩 변환 처리가 따로 필요없다
하지만 많은 저장 공간을 사용한다는 단점이 있다

✔️EUC-KR, EUC-JP
Extended Unix Code(확장 유닉스 코드)
아시아계 문자 표시를 위한 확장 부호
한글을 표현하기 위해 2바이트 인코딩 방식
EUC-JP도 존재함
이 둘은 서로 비트가 같아서 호환이 잘 안되기에 이 또한 유니코드의 등장 이유 중 1개

✔️CP949(코드 페이지 949)
한글 완성형 인코딩
EUC-KR에서 표현 못한 문자 표현하기 위해 만들어졌다
자바 환경 이외 대부분 호환 가능하지만, 유니코드와는 호환되지 않는다.

⭐️참고사이트
유니 코드 문자 변환기
https://ko.rakko.tools/tools/89/#google_vignette


http://terms.tta.or.kr/dictionary/dictionaryView.do?word_seq=059151-5


let a = ""안녕하세요"";
document.write(a); // 오류발생
// 따옴표로 감싼 문자열 안에 그대로 따옴표를 사용하면 안된다
// 따옴표 안에 다른 따옴표로 사용해야 오류가 생기지 않는다.

let b = "'b님' 안녕하세요?";
document.write(b); // 'b님' 안녕하세요?

let c = '"c님" 안녕하세요?';
document.write(c); // "c님" 안녕하세요?
console.log(" "); // " "
console.log("       "); // "       "
console.log(" abc     "); // " abc     "
console.log("오늘 저녁은  " "카레라이스");
let food1 = '"카레라이스"';
let food2 = "카레라이스";
console.log("오늘 저녁은  " + food1 + "");
// 오늘 저녁은 "카레라이스"

console.log("오늘 저녁은  " + food2 + "");
// 오늘 저녁은 카레라이스

쌍따옴표, 홑따옴표 각각 같이 표현하고 싶을 때?
이스케이프(escape)문자 사용한다

let a = "\"a님\" 안녕하세요?";
// "a님" 안녕하세요?
// \"a님\"
// 앞에 이스케이프 문자를 붙인다
let b = '\'b님\', 안녕하세요?';
// 'b님' 안녕하세요?
// \'b님\'

✔️이스케이프 시퀀스 vs 이스케이프 캐릭터
1. 이스케이프 캐릭터 (Escape Character)

  • 특수한 기능을 하는 문자로, 보통 백슬래시(\\)를 의미
  • 이 문자 자체로는 아무런 의미를 가지지 않지만, 특정 문자와 결합하면 특별한 동작을 수행할 수 있다.
  1. 이스케이프 시퀀스 (Escape Sequence)
  • 이스케이프 캐릭터(\\)와 특정 문자가 결합하여 특정 기능을 수행하는 문자열이다.
  • 즉, 이스케이프 캐릭터를 포함한 하나의 문자열 조합이다.

차이점 정리

구분설명예시
이스케이프 캐릭터이스케이프 시퀀스를 시작하는 문자 (\\)\\
이스케이프 시퀀스이스케이프 캐릭터와 특정 문자가 결합된 문자열\\n, \\t, \\"

2️⃣ 벡터 문자열(``)

템플릿 리터럴(=템플릿 문자열)이란 특수 종류 문자열
더욱 간편한 방법 : 따옴표를 포함할 때 이스케이프 문자를 사용하지 않아도 된다.

✔️템플릿 리터럴
내장된 표현식을 허용하는 문자열 리터럴
태그가 지정된 템플릿
es6 문법
상수를 제외한 나머지 문자열을 입력 그대로 반환

let a = `"안녕하세요"`;
document.write(a); // "안녕하세요"

let b = `'b님' 안녕하세요?`;
document.write(b); // 'b님' 안녕하세요?

let c = `'c님' "안녕하세요?"`;
document.write(c); // 'c님' "안녕하세요?"

let d = ``안녕하세요``;
document.write(d); // 오류발생

let a = `안녕
하세요`;
document.write(a); // 안녕 하세요
// 쌍따옴표, 홑따옴표에서는 괜찮았는데 벡틱은 괜찮다

문자열 뿐만 아니라 표현식도 넣을 수 있다
$와 중괄호( $ {expression} ) 로 표기

let a = 5;
let b = 15;
document.write(`20은 ${a + b}이다, 
${2 * a + b}은 아니다`);

// 20은 20이다, 25은 아니다

✔️표현식?
표현식은 으로 평가될 수 있는 이다.

//리터럴(변수에 넣는 변하지 않는 데이터) 표현식 
// → 값을 생성하기 위해 미리 약속한 표기법이다.
10
'Hello'
// 식별자 표현식(선언이 이미 존재한다고 가정)
sum
person.name
arr[1]
//연산자 표현식
10 + 20
sum = 30
sum !== 10

표현식은 값으로 평가 되므로 값이 위치할 수 있는 자리에는 표현식이 위치할 수 있다.

var x = 1 + 2;
x + 3 // 6

https://velog.io/@dbwjdrkddls/%ED%91%9C%ED%98%84%EC%8B%9Dexpression


✔️문?
프로그래밍을 구성하는 가장 기본 단위이자 최소 실행 단위
문이 실행되고 나면 무슨 일인가가 일어나게 되므로 문은 명령문이라고도 부른다.

profile
Hello! My Name is oYJo

0개의 댓글