프로토타입 객체를 정의하고 new연산을 통해 인스턴스객체들을 만들 수 있습니다.


function Person(name, age){
this.name = name;
this.age = age;
}
Person.prototype.walk = function(spd){
console.log(spd+" 속도로 뛰는중");
}
//Person 객체 2개 생성
var person01 = new Person('진쓰',21);
var person02 = new Person('잠와',22);
console.log(person01.name+ ' 객체의 walk(10) 호출');
person01.walk(10);




Person 프로토타입 객체를 만들려면 Person 함수를 정의해야합니다.

자바스크립트에서는 함수도 객체입니다. 함수도 객체의 역할을 할 수 있습니다.



new연산자로 호출되는 함수는 객체를만들기위한 함수로 분류되며, 이러한 함수를 생성자라합니다.



그리고 walk 메소드 할당할때

Person.walk = funcion() {..} 같은 형태가 아니라

Person.prototype.walk = function()... 같은 형태로 만듭니다.



Person이 데이터를 담기위해 만들어진게 아니라다른 인스턴스 객체를!

만들기위한 원형틀(마치 자바의 class같은)로 만들어졌기 떄문입니다.



그리고 메모리를 효율적으로 관리할수있다고도합니다.

함수뿐만 아니라 데이터를 추가할때도 prototype을 쓰면됩니다.


prototype 속성은, 객체를 생성할때 자동으로 생성됩니다.


뭐 prototype을 안써도 가능은합니다만 좀더 메모리관리에 효율적입니다.



//배열 생성
var Users = [{name:'진쓰',age:20},{name:'잠와',age:22}];

console.log('배열요소수:%d', Users.length);

for(var i=0; i< Users.length; i++){
console.log('배열 요소 #'+i+': %s', Users[i].name);
}







var Person = {

//객체를 생성할때 속성과 함수를 아래와 같이 넣을수있습니다.
age1 : 21,
add1: function(a,b){
return a+b;
}
}; //객체 생성.


//객체를생성하고나서도, 속성값들을 넣을 수 있습니다.

Person['age'] = 20; //Person 객체에 age 속성 추가및할당
Person['name'] = '진쓰';
Person.phone = '0107777'; //Person 객체에 phone 속성 추가및할당(이런식으로도 가능)


//함수도 추가할 수 있습니다.

Person.add = function(a, b){
return a+b;
};


//함수를 변수에 할당할수있습니다.

var myMin = function(a,b){
return a-b;
}


객체의 속성에 할당합니다.

Person['min'] = myMin;



console.log("나이 : %d", Person.age1);
console.log("나이 : %d", Person.age);
console.log("이름 : %s", Person.name);
console.log("전화 : %s", Person.['phone']);
console.log("더하기 : %d", Person.add(10,20));
console.log("더하기 : %d", Person.add1(10,20));
console.log("빼기 : %d", Person.min(10,5));








자료형 설명



  Boolean [기본자료형]

 true와 false의 두가지 값을 가지는 자료형

 Number [기본자료형]

 64비트 형식의 IEEE 754 값이며 정수나 부동소수값을 가지는 자료형.

    

 참고: NaN(숫자가아님.), Number.MAX_VALUE => +무한대 

 Number.MIN_VALUE - 무한대

 String [기본자료형] 

 문자열 값을 가지는 자료형

 undefined 

 값을 할당하지않는 변수의값

 null 

 존재하지않는 값을 가리키는 값

 Object 

 객체를 값으로 가지는 자료형

 객체는 속성들을 담고있는 가방(Collection)으로 볼수있으며,

 대표적객체로 Array, Date 등이 있음.


    

자바스크립트는 변수상자 크기를 명확히 알수없어서, typeof 연산자 제공합니다.


자바스크립트 변수선언은 var로 선언가능. 

자동으로 Number나 String 판단.



var age = 20;
console.log("나이 : %d", age);
var name ="걸스데이";
console.log("이름: %s", name);




이전강의

  ->  Node js 사용자 모듈 (Module) 사용하기



- 외장모듈 사용

다른사람이 만든 모듈을 사용할때는 외장모듈을 사용해야합니다.

다른사람이 올린 패키지를 다운받기 위해서는 npm 패키지를 사용하여 다운받을 수 있습니다.


npmNode Package Manager 약자로 노드 패키지를 사용하고 설치및 삭제등을 지원하는

프로그램입니다. 


nconf 라는 외장모듈을 다운로드받는 절차를 살펴보겠습니다.


명령프롬프트 입력

> npm init

> npm install nconf --save


이제 package.json 파일을 열어보고 dependenceis 속성이 추가된것을 볼 수 있습니다.


또한, 외장모듈은 node_modules 라는 폴더에 저장되는것을 확인할 수 있습니다.




만약 다른 PC에서 외장모듈을 다시 설치해야할 경우 package.json 파일만 다른PC로 옮긴후 다음과 같이

> npm install


명령만 치게되면, package.json에 정의된 외장모듈들을 설치하여 node_modules 폴더에 채우게 됩니다.




- 간단한 내장 모듈 사용하기


노드를 설치했을떄 기본적으로 들어있는 내장모듈을 살펴보겠습니다.

내장모듈은 자주사용하는 기본기능을 노드에 포함시켜 제공하는 것입니다.

외장모듈은 npm으로 설치해야하지만 내장모듈은 바로 사용할 수 있습니다.


hostname() 

 운영체제의 호스트이름을 알려줍니다.

 totalmem()

  시스템 전체 메모리 용량을 알려줍니다.

 freemem()

 시스템에서 사용가능한 메모리 용량을 알려줍다.

 cpus()

 CPU 정보를 알려줍니다.

 networkInterfaces() 

 네트워크 인터페이스 정보를 담은 배열 객체를 반환합니다.




os모듈을 사용하는 코드예제입니다.

var os = require('os');

console.log("시스템 hostname :%s", os.hostname());

console.log("시스템 메모리 :%d", os.freemem(), os.totalmem());

console.log("시스템의 CPU 정보 \b")

console.log("os.cpus());

console.log("시스템의 네트워크 인터페이스 정보\n");

console.dir(os.networkInterfaces());






파일 path를 다루는 path 모듈

  join() 

 여러개의 이름들을 모두 합쳐 하나의 파일 path로 만들어줍니다. 파일 패스를 완성할 때 구분자 등을 알아서 조정합니다.

 dirname() 

 파일path 에서 디렉터리 이름을 반환합니다.

 basename()

 파일path 에서 파일의 확장자를 제외한 이름을 반환합니다.

 extname()

 파일path 에서 파일의 확장자를 반환합니다. 



path 모듈 사용 예제입니다.


var path = require('path');


//디렉터리 이름 합치기

var dirs = ["user", "jinss", "docs"];

var docDir = dirs.join(path.sep)

console.log("문서 디렉토리 %s", docDir);


//디렉터리 이름과 파일 이름 합치기

var curPath = path.join('/user/mike', 'text.exe');

console.log("파일 path: %s", curPath);




[다음강의]

    ->    node js 외장, 내장 모듈 사용하기


 


 노드 (Node.js)에서 모듈 사용하기


main.js

    var module1 = require('module1');

    module1.func();


module1.js

    exports.func = 함수정의부분



 메인파일 코드중에 독립적인 기능은 별도파일로 분리할 수 있으며,  메인 파일에서 전체적인 실행순서나 흐름을 제어합니다.

  이렇게 분리된 파일을 노드에서는 모듈이라고 합니다.


 모듈이란 별도의 파일로 분리된 독립기능의모음이라서, 모듈을 만들어 놓으면 다른파일에서 모듈을 불러와 사용할 수 있습니다.



모듈만들어 내보내기.

exports v.s module.exports

모듈을 만들어서 다른파일에서 사용하기위해서는 exports혹은 module.exports를 사용합니다.


- exports에는 속성을 추가할 수 있어 여러개의 변수나 함수를 각각의 속성으로 추가할 수 있습니다.


- module.exports하나의 변수나 함수 또는 객체를 직접 할당합니다.




더하기함수 모듈 만들어 사용


calc.js 

exports.add = function (a,b){

   return a+b;

}


main.js

var cal = require('./calc');

console.log("모듈분리후 calc.js의 add 메소드 사용: %d ", calc.add(10,20));


[결과화면]







node.js 의 전역객체


node.js 콘솔에 로그뿌리기


console 객체는 전역 객체입니다. 코드의 어느부분에서나 사용할 수 있습니다.


console 

 콘솔창에 결과를 보여주는 객체

 process 

 프로세스의 실행에 대한 정보를 다루는 객체

 exports 

 모듈을 다루는 객체


    

 node.js의 console.log를 c언어의 printf 처럼 사용하기.


 console.log ('숫자 보여주기 :%d', 10);

 console.log ('문자열 보여주기 :%s', '소녀시대');

 console.log ('JSON객체 보여주기 :%j', {name: '소녀시대'});





console객체의 주요 메소드

 dir(object) 

 자바스크립트 객체의 속성들을 출력

 time(id)

 실행시간을 측정하기 위한 시작시간을 기록한다.

 timeEnd(id) 

 실행시간을 측정하기 위한 끝 시간을 기록한다.


   

 

 console.dir() 메소드를 이용한 객체안에 들어있는 속성확인.


    var Person = {name:"소녀시대", age:20}

    console.dir(Person); 





 console.time('id')를 이용한 시간측정 예제

    

   var result = 0;


    console.time('duration');


    for(var i = 1; i<=1000; i++){

      result += i;

    }


    console.timeEnd('duration');

    console.log('1부터 1000까지 더한 결과물 %d', result);




node.js의 전역변수

  __fiilname

 현재 실행한 파일의 이름

  __dirname 

 현재실행한 파일의 path(경로)


        

  console.log('현재실행한 파일이름 %s", __filename);

  console.log('현재실행한 파일 path %s', __dirname);



node.js 설치및 예제코드 작성해보는 시간을 가지겠습니다.



먼저 node.js 설치를 위해 다음의 공식 싸이트에 접속합니다.

https://nodejs.org/ko/download/



저는 아래그림처럼 window installer (.msi) 64-bit를 다운받고 실행하였습니다.



Next를 누릅니다.


Next를 누르시구요


설치가 진행됩니다.~!




설치가 끝났습니다.







예제코드 작성전에 Edit 프로그램을 또 다운받습니다. 

비쥬얼스튜디오코드  https://code.visualstudio.com/ 

해당 홈페이지의  download for window 를 클릭하여 받으신후 설치하시면 되겠습니다.



바탕화면에 꿩폴더를 만들고 그안에 app.js 파일을 생성합니다.


그리고 비쥬얼스튜디오 코드로 열어서 다음과 같이 작성합니다.



그 이후 꿩폴더에서 shift를 누른채 오른쪽 마우스를 클릭하시면, "여기서 명령창 열기"가 있습니다. 클릭해서 cmd 창을 뛰웁니다.



그다음 다음과 같이 명령을 칩니다.

> node app.js



화면과 같이 Hello node.js! 가 출력되면 성공적으로 node.js를 설치에 성공하신겁니다.

본격적으로 node.js 프로그래밍될 준비가 끝난겁니다.!


안녕하세요. 내일이면 일본여행가는 진쓰입니다.

자바스크립트 8장 내장객체 - String 객체의 속성과 메소드 포스팅 시작하겠습니다.



목차

1. string객체 특징

2. string객체 속성

3. string객체 메소드



1. string객체 특징

- 자바스크립트에서 문자열을 다루는 객체입니다.

문자열 객체 생성방법 2가지가 있습니다.


- 예)

 var str = new String(“Have a nice day!”)

 var str=“Have a nice day!”



2. string객체 속성

length : 문자열의 개수를 나타냅니다.


예)

- var str=“Nice to meet you!”

- cnt  = str.length

- document.write(cnt) == 17



<html>

<head>

<title> 8장 예제 </title>

<script language="javascript">

</script>

</head>


<body>

<script language="javascript">


var str = new String("Have a nice day!");

var str2 = "Have a nice day!~!";

document.write(str.length+ " " + str2.length +"<br>");

</script>

</body>

</html>

 





3. string객체 메소드 들입니다.


메소드

기능

charAt(index)

index 위칭의 문자를 알아냅니다.

concat(문자열)

두 문자열을 하나의 문자열로 만듭니다.

indexOf(문자열)

왼쪽부터 문자를 검색 후 지정된 위치의 문자를 알아냅니다.

lastIndexOf()

오른쪽부터 문자를 검색 후 지정된 위치의 문자를 알아냅니다.

slice()

문자열의 일부분을 추출해냅니다.

split()

문자열을 분리 시킵니다.

substr()

문자열을 추출 해냅니다.

subString()

문문자열을 추출 해냅니다.

toLowerCase()

문자열을 소문자로 만듭니다.

toUpperCase()

문자열을 대문자로 만듭니다.



메소드

기능

charAt(index)

index 위칭의 문자를 알아냅니다.

concat(문자열)

두 문자열을 하나의 문자열로 만듭니다.

indexOf(문자열)

왼쪽부터 문자를 검색 후 지정된 위치의 문자를 알아냅니다.

lastIndexOf()

오른쪽부터 문자를 검색 후 지정된 위치의 문자를 알아냅니다.

slice()

문자열의 일부분을 추출해냅니다.

split()

문자열을 분리 시킵니다.

substr()

문자열을 추출 해냅니다.

subString()

문문자열을 추출 해냅니다.

toLowerCase()

문자열을 소문자로 만듭니다.

toUpperCase()

문자열을 대문자로 만듭니다.


.


<html>

<head>

<title> 8장 예제 </title>

<script language="javascript">

</script>

</head>


<body>

<script language="javascript">


document.write("글자를 크게 ".big() + "글자를 작게".small() + "<p>") 

document.write("글자를 굵게 ".bold() + "글자의 타자기체".fixed() + "<p>") 

document.write("글자의 이탤릭체 ".italics() + "글자 가운데 줄(취소선)".strike() + "<p>") 

document.write("글자의 아래첨자 ".sub() + "글자의 위첨자".sup() + "<p>") 

document.write("글자크기 ".fontsize(7) + "글자색".fontcolor("red") + "<p>") 

</script>

</body>

</html> 

 




<html>

<head>

<title> 8장 예제 </title>

<script language="javascript">

</script>

</head>


<body>

<script language="javascript">

var str1 = "korean power";

var str2 = "한국인의 힘";

var str3 = "인삼드세요~";


document.write("일 : " + str1.length + "<br>") ;

document.write("이 : " + str2.length + "<br>") ;

document.write("삼 : " + str3.length );

</script>

</body>

</html>

 





감사합니다. 여러분도 어서 휴가가세요. :)



안녕하세요. 진심으로 풀스택개발자가 되고싶은 진쓰입니다.



목차입니다.

1. Date 객체 특징

2. 예제




1. Date 객체 특징


- 날짜와 시간에 대한 객체생성 할 수 있습니다.

객체 생성 형식 : today = new Date() 이용합니다.


- 현재 날짜 시간에 대한 정보 가져오는 메소드들 입니다.

    getYear(), getMonth(), getDate(), getDay(),

 getHours(), getMinutes(), getSecomds(), getTime()


- 현재 날짜 시간에 대한 정보 세팅하는 메소드들 입니다.

    setYear(), setMonth(), setDate(), setDay(), 

setHours(), setMinutes(), setSecomds(), setTime()


parse(날짜) : 1070년 1월 1일 00:00:00 이후의 경과 시간을 1000분의 1초 단위로 리턴한다.


- toLocalString() : 날짜를 문자열 형식으로 변환한다.


<html>

<head>

<title> 7장 예제 </title>

<script language="javascript">

</script>

</head>


<body>

<script language="javascript">

var Today = new Date() 

var year = Today.getFullYear()

document.write("년도: "+year+"<br>");

 


var month = Today.getMonth() + 1

document.write("월: "+month+"<br>");

 

 

var date = Today.getDate()

 document.write("날짜: "+date+"<br>");

 

 

var hour = Today.getHours()

var minute = Today.getMinutes()

var second = Today.getSeconds()


document.write("현재 시간 : ") 

document.write(hour + "시 " + minute + "분 " + second + "초 </h4>")  

</script>

</body>

</html>

 




2. 예제

- 1초마다 배경색이 달라지는 프로그램 작성해보겠습니다. (단, if문을 이요해서 작성합니다.)

<html>

<head>

<title> 7장 예제 </title>

<script language="javascript">

</script>

</head>


<body>

<script language="javascript">

  var now = new Date();

document.write(now.getSeconds()+"<br>");

if(now.getSeconds()%2==0){

document.bgColor = "pink"; 

}

else{

document.bgColor = "lightblue";

}

</script>

</body>

</html> 

 




고생하셨습니다. 저는 일본여행을 다녀오겠습니다 :)

+ Recent posts