- 동적 타입이 가능하다
// 변수에 어떠한 타입의 값을 넣을수있다
var a = 1
console.log(a)
a = "진용화" //정수를 담았던 배열에 문자열을 담아도 문제가 없음
console.log(a)
//변수에 함수를 담을수도 있다
a = function () {
console.log('이것은 변수에 할당된 함수')
}
a()
//함수를 다른 변수에 할당 할 수도 있다
var b = a
b()
- 자유로운 Object,Array 형태
var person = {
firstName: "용화",
lastName: "진"
}
console.log(person.firstName + " " + person.lastName)
var arr = []
var person = {
firstName: "용화",
lastName: "진"
}
function test() {
console.log("이것은 test함수")
}
arr.push(test) //배열에 함수를 담을수있음
arr.push(person) //하나의 배열에 다른 타입의 데이터를 담을수있음
console.log(arr)
arr[0]()
console.log(arr[1])
- Non-block
console.log("나는")
setTimeout(function () {
console.log("진용화")
}, 1000)
console.log("입니다")
var axios = require('axios')
console.log("URL 가져오기")
axios("http://ip.jsontest.com")
.then(response => {
console.log(response.data)
})
console.log("완료")
var axios = require('axios')
async function getUrl() {
console.log("URL 가져오기")
var response = await axios("http://ip.jsontest.com")
console.log(response.data)
console.log("완료")
}
getUrl()
- Non-blocking io
var startTime
function timer() {
startTime = new Date().getTime()
console.log('timer 시작시간: ' + startTime)
setTimeout(function () {
var endTime = new Date().getTime()
console.log('timer 종료시간: ' + endTime)
console.log('걸린시간: ' + (endTime - startTime))
timer()
}, 1000)
}
timer()
![image](https://private-user-images.githubusercontent.com/21700482/311971569-f80dd22d-403c-43f8-9a19-1e936711b42b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk4NjcwMzQsIm5iZiI6MTcxOTg2NjczNCwicGF0aCI6Ii8yMTcwMDQ4Mi8zMTE5NzE1NjktZjgwZGQyMmQtNDAzYy00M2Y4LTlhMTktMWU5MzY3MTFiNDJiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAxVDIwNDUzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIyODBiMWY2ODZkMjI5YjEzZDI4MmM4Njc5ODk1YmM1NjY1NGY2N2Y0Mjk5NWRmMmY0N2NmZThjN2IwOGQ4YTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.LcZaSNSJ08VupMYSAgCxdqQeCB1JgRZy6az34gmVahE)