[ES6 노트] 문자열과 템플릿 문자열
문자열 새 API
let text = '';
console.log(text.charAt(0)) // ''
console.log(text.charAt(1)) // ''
console.log(text.charCodeAt(0)) // 55362
console.log(text.charCodeAt(1)) // 57271
console.log(text.codePointAt(0)) // 134071
console.log(text.codePointAt(1)) // 57271
console.log(String.fromCodePoint(134071)); // ''
let message = 'hello world!';
console.log(message.includes('o')); //true “o”
console.log(message.startWith('hello')); //true ‘hello’
console.log(message.endWith('!')); //true “!”
console.log(message.startWith('o',4)); //true 4 “o”
console.log(message.endWidth('o',8)); //true 7 “o” 8 1 , 7 “o”
console.log(message.includes('o',8)); //false 8 , “o”
템플릿 글자량
템플릿의 글자 양도 문자열의 확장이라고 할 수 있지만 비교적 중요하고 실용적이기 때문에 단독으로 열거하여 필기를 한다.문제 해결: 1.여러 줄 문자열: 공식적인 여러 줄 문자열의 개념ES5에서 처리해야 할 문자열이 비교적 길면 줄을 바꾸는 것이 비교적 번거롭다.2. 기본 문자열 포맷: 변수의 값을 문자열에 삽입하는 능력.ES5는 문자열에 변수를 추가할 때 주로'+'로 연결한다.3. HTML 이스케이프: 안전하게 변환된 문자열을 HTML에 삽입하는 기능전방의 XXS 공격을 효과적으로 해결했다.
let message = ` hello world ! `;
console.log(message); // hello world !
let message = ` hello world !
This is ES6!`;
console.log(message);
// hello world !
//This is ES6!
*hello ,
let name = 'King';
let message = ' Hello, ${name}';
console.log(message) ; //Hello,King
let name = 'King';
let language = 'ES6';
let message = tag`Hello ${name},
welcome to ${language} world!`;
function tag(literals,...substitutions){
* , 。
* , JS , 。
console.log(`literals:`,literals);
//["Hello ", ",↵ welcome to ", " world!", raw: ["Hello ", ",
welcome to ", " world!"]]
* literals: , ,
, ? , 。
* , raw , , message 。
literals[0] ,
literals[1] ,
literals[2] world 。
,literals ${ } 。
literals[1] message ‘
’ , '
' 。
* , ?ES6 。
raw , ES6 , 。
:literals[1] literals.raw[1]
literals[1] ==> ",↵ welcome to " //
literals.raw[1] ==> ",
welcome to " //
console.log(`substitutions:`,substitutions);
//["King", "ES6"]
* substitutions: , 。
}
위에서 이렇게 긴 해석 내용을 썼는데, 일부 학우들은 아직도 비교적 곤혹스러울 수 있는데, 이 라벨 템플릿은 도대체 무슨 소용이 있습니까?사실은 템플릿 글씨체의 각 항목을 분리하면 당신을 더욱 자유롭게 하거나 복잡하게 이 정보를 처리할 수 있고 그 안에 업무에 유용한 정보를 추가할 수 있다.예를 들어 함수에서substitutions의 두 번째 값을 판단하고 만약 값이 ES6라면 그것을Javascript로 바꾸고literals와substitutions의 각 항목을 다시 조합하면 출력 결과는 "Hello King,welcome to Javascript world!"로 변한다.물론 이것은 단지 하나의 예일 뿐, 실제로는 틀림없이 나처럼 이렇게 심심하지 않을 것이다.
주의: 여기 몇 가지 팁이 있습니다
${name},
welcome to ${language} world!
로 바꾸면 literals[0]의 값은'빈 문자열'이 된다. 마치literals[literals.length-1]는 항상 문자열의 끝과 같다.let message1 = `Hello
World`;
let message2 = String.raw`Hello
World`;
console.log(message1);
//Hello
//World
console.log(message2); //Hello
World
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.