'string text'
"string text"
"中文 español Deutsch English देवनागरी العربية português বাংলা русский 日本語 norsk bokmål ਪੰਜਾਬੀ 한국어 தமிழ் עברית"
String(thing)
thing
: 문자열로 변환할 아무 값.
`hello world` `hello! world!` `hello ${who}` tag `<a>${who}</a>`
작성한 코드가 매우 긴 문자열을 포함해야 하는 경우, 끝 없이 뻗어나가는 한 줄이나 편집기의 재량에 따라 자동으로 줄을 넘기는 대신 직접 여러 줄로 나누되 내용에는 영향을 주지 않고 싶을 때가 있을겁니다. 이런 상황에는 두 가지 방법을 사용할 수 있습니다.
+
연산자let longString = "여러 줄에 걸쳐 작성해야 할 정도로 " +
"긴 문자열인데 왜 한 줄에 다 적으면 안되냐면 " +
"코드를 읽기 힘들어지니까요.";
let longString = "여러 줄에 걸쳐 작성해야 할 정도로 \
긴 문자열인데 왜 한 줄에 다 적으면 안되냐면 \
코드를 읽기 힘들어지니까요.";
function user(first, last) {
this.firstName = first;
this.LastName = last;
}
user.prototype.getFullName = function() {
return `${this.firstName} ${this.LastName}`
}
const sungdae1 = new user('sungdae', 'jin');
const amy1 = new user('Amy', 'Clarke');
const neo1 = new user('Neo', 'Smith');
console.log(amy1.getFullName());
console.log(neo1.getFullName());
console.log(sungdae1.getFullName());
prototype 속성
과 객체 맴버인 proto
속성이 참조하는 숨은 링크가 있다.일반(Normal)함수는 호출 위치에 따라 this를 정의한다.
화살표(Arrow)함수는 자신이 선언된 함수 범위에서 this를 정의한다.
const sungdae2 = {
name: 'Sungdae',
normal() {
console.log(this.name);
},
arrow: () => {
console.log(this.name);
}
}
sungdae2.normal();
sungdae2.arrow();
const amy3 = {
name: 'Amy',
normal: sungdae2.normal,
arrow: sungdae2.arrow
}
amy3.normal();
amy3.arrow();
function User2(name) {
this.name = name;
}
User2.prototype.normal = function() {
console.log(this.name);
}
User2.prototype.arrow = () => {
console.log(this.name);
}
const sungdae4 = new User2('Sungdae');
sungdae4.normal();
sungdae4.arrow();
ex) 타임 함수
const timer = {
name: 'Sungdae!!',
timeout: function() {
setTimeout(() => {
console.log(this.name);
}, 2000)
}
}
timer.timeout();
class User {
constructor(first, last){
this.firstName = first;
this.lastName = last;
}
getFullName() {
return `${this.firstName} ${this.lastName}`
}
}
const sungdae = new User('sungdae', 'jin');
const amy = new User('Amy', 'Clarke');
const neo = new User('Neo', 'Smith');
console.log(sungdae);
console.log(amy.getFullName());
console.log(neo.getFullName());
class Vehicle{
constructor(name, wheel) {
this.name = name;
this.wheel = wheel;
}
}
const myVehicle = new Vehicle('운송수단', 2);
console.log(myVehicle);
class Bicycle extends Vehicle {
constructor(name, wheel) {
super(name, wheel);
}
}
const myBicycle = new Bicycle('삼천리', 2);
const daugtersBicycle = new Bicycle('세발', 3);
console.log(myBicycle);
console.log(daugtersBicycle);
class Car extends Vehicle {
constructor(name, wheel, license) {
super(name, wheel);
this.license = license;
}
}
const myCar = new Car('벤츠', 4, '1종 보통');
const yourCar = new Car('bmw', 4, '2종 보통');
console.log(myCar);
console.log(yourCar);
const doubleArrow = (x) => {
return x * 2;
}
console.log('doubleArrow: ', doubleArrow(7));
const double = function (x) {
return x * 2;
}
console.log('double: ' , double(7));
const doubleArrow2 = x => x * 2;
console.log('doubleArrow2', doubleArrow2(7));
const doubleArrow3 = x => ({
name: "jinsungadae"
});
console.log('doubleArrow3: ', doubleArrow3(7));
(function () {
console.log(a * 2);
})();
(function () {
console.log(a7 * 2);
}());
const a8 = 8;
double3();
function double3() {
console.log(a8 * 2);
}
setTimeout(function() {
console.log('sungdae jin!');
}, 3000);
const timer = setTimeout(() => {
console.log('sungdae jin!');
}, 3000);
const h1El = document.querySelector('h1');
h1El.addEventListener('click', () => {
clearTimeout(timer);
});
const timer = setInterval(() => {
console.log('sungdae jin!');
}, 3000);
const timer = setInterval(() => {
console.log('sungdae jin!');
}, 3000);
const h1El = document.querySelector('h1');
h1El.addEventListener('click', () => {
clearInterval(timer);
});
function timeout(cb) {
setTimeout(() => {
console.log('sungdaeJIn!');
cb();
}, 3000);
}
timeout(() => {
console.log('Done!');
});
export
and default
Keyword를 통해서 다른 js file에서 사용할 수 있도록 해준다.
export default function getType(data) {
return Object.prototype.toString.call(data).slice(8, -1);
}
import - from
Keyword
import getType from "./getType";
console.log(1 + 2);
console.log(1 - 2);
console.log(1 * 2);
console.log(1 / 2);
console.log(1 % 2);
let a = 2;
a += 1;
console.log(a);
const x = 1;
const y = 1;
console.log(x === y);
function isEqual(x , y) {
return (x === y);
}
console.log(isEqual(10, 10));
const a1 = 1 === 1;
const b1 = 'AB' === 'AB';
const c1 = true;
console.log(a1);
console.log(b1);
console.log(c1);
console.log('&&: ', a1 && b1 && c1);
console.log('|| : ' , a1 || b1);
const a = 1 < 2;
if (a) {
console.log('참');
} else {
console.log('거짓');
}
console.log(a ? '참' : '거짓');
const a3 = random();
if (a3 === 0) {
console.log('a is 0');
} else if (a3 % 2 === 0) {
console.log('a is 짝수');
} else {
console.log('rest....');
}
for (let i = 0; i < 3; i++) {
console.log(i);
}
function scope() {
if (true) {
const a4 = 123
}
console.log(a4);
}
scope();
function scope() {
if (true) {
console.log(a4);
const a4 = 123
}
}
scope();
--undefined--
function scope() {
if (true) {
var a4 = 123
}
console.log(a4);
}
scope();
const a5 = 1;
const b5 = '1';
console.log(a5 == b5);
==
: 동등 연산자
type변환을 통해서 결과값을 출력
true
, {}
, []
, 1
, 2
, 'false'
, -12
, '3.14'
...false
, ''
, null
, undefined
, 0
, -0
, NaN
nvm arch [32|64]
: Show if node is running in 32 or 64 bit mode. Specify 32 or 64 to override the default architecture.nvm check
: Check the NVM4W process for known problems.nvm current
: Display active version.nvm install <version> [arch]
: The version can be a specific version, "latest" for the latest current version, or "lts" for the most recent LTS version. Optionally specify whether to install the 32 or 64 bit version (defaults to system arch). Set [arch] to "all" to install 32 AND 64 bit versions. Add --insecure to the end of this command to bypass SSL validation of the remote download server.nvm list [available]
: List the node.js installations. Type available at the end to show a list of versions available for download.nvm on
: Enable node.js version management.nvm off
: Disable node.js version management (does not uninstall anything).nvm proxy [url]
: Set a proxy to use for downloads. Leave [url] blank to see the current proxy. Set [url] to "none" to remove the proxy.nvm uninstall <version>
: Uninstall a specific version.nvm use <version> [arch]
:Switch to use the specified version. Optionally use latest, lts, or newest. newest is the latest installed version. Optionally specify 32/64bit architecture.nvm use <arch>
will continue using the selected version, but switch to 32/64 bit mode. For information about using use in a specific directory (or using .nvmrc), please refer to issue #16.nvm root <path>
: Set the directory where nvm should store different versions of node.js. If <path>
is not set, the current root will be displayed.nvm version
: Displays the current running version of NVM for Windows.nvm node_mirror <node_mirror_url>
: Set the node mirror.People in China can use https://npmmirror.com/mirrors/node/nvm npm_mirror <npm_mirror_url>
: Set the npm mirror.People in China can use https://npmmirror.com/mirrors/npm/window 용 nvn https://github.com/coreybutler/nvm-windows
npm install parcel-bundler -D
: 개발용 의존성
npm install lodash
: 일반 의존성
-D
dev dependency에 설치 하는 flag - 개발용 의존성 패키지 설치
npm install
을 사용하면 node_modules에 package 가 추가 된다.
node_modules를 삭제 한다 하더라도 다시 npm install을 하면 한번 설치한 패키지는 내역으로 남게 되고 그걸 바탕으로 다시 추가 된다.
package.json
은 직접적으로 관리를 할 수 있지만 package-lock.json
은 직접 관리할 수 가 없다.
npm install lodash@4.17.20
npm update lodash