Javascript expression



Expression(표현식)이란?

정의: 자바스크립트가 파싱하여 값으로 출력할 수 있는 모든 구문들을 의미 합니다.


1. 세부지정이나 호출


  1. . [] ()

2. 산술 연산자

  1. 1 + 11 - 11 * 11 / 1
 
3. 논리연산자


많은 언어에서 논리 연산자는 좌우 항으로 불리언을 기대하며 결과값으로 불리언을 가집니다.

하지만 자바스크립트의 &&(AND)연산자는 첫번째 피연산자가 거짓(false)일 경우,
첫번째 피연자의 값을 가지고 그렇지 않은경우는 두번째 피연산자의 결과값을 갖는다.


  1. alert(1 !== 1 && 0); // false(좌측 피연산자 1 !== 1(false))
  2. alert(1 === 1 && 0); // 0(좌측 피연산자 1 === 1(true))
  3. alert(0 && 1); // 0(좌측 피연산자 0(false))
  4. alert(1 && 0); // 0(좌측 피연산자 1(true))
  5.  
  6. var div = document.createElement('div');
  7. alert(div && div); // object(좌측 피연자 div(true));
  8. alert(!div && 0); // false(좌측 피연산자 !div(false));


4. 동등연산자


  1. ['==']:
 

두 데이터값에 타입이 다르더라도 값이 일치하면 true를 반환한다.


  1. null == undefined //true
  2. 3 == '3' //true
  3. 1 == true //true
  4. 0 == false //true
  5. null == undefined //true
  6. {a: 1} == {a: 1} //false(서로다른객체)
  7. var obj1 = obj2 = {a: 1}
  8. obj1 == obj2 //true(같은객체를 참조함
  9. (function 내부라면 obj1은 지역변수 obj2 전역변수로 선언))

두 데이터값에 타입이 같고 값이 일치하면
true를 반환한다.



  1. null == undefined //false
  2. 3 == '3' //false
  3. 1 == true //false
  4. 0 == false //false
  5. null == undefined //false
  6. {a: 1} === {a: 1} //false(서로다른객체)
  7. var obj1 = obj2 = {a: 1}
  8. obj1 === obj2 //true
  9. (같은객체를 참조함(function 내부라면 obj1은 지역변수 obj2 전역변수로 선언))


5. 관계 연산자
 

  1. >, <, >=, <=

6. Instanceof 연산자

해당 객체의 생성자 일치하면 true를 반환한다.

  1. {} instanceof Object //true
  2. {} instanceof Array //false


7. 단항 연산자

  1. delete 연산자: delete window['value'];
  2. new 연산자: new function(){;}
  3. typeof 연산자: typeof 1
  4. + : +=
  5. -:-=
  6. !:!=
 

8. 삼항 연산자

  1. ?: --> var isLogin = isLogin === true ? true : false
 



Javascript Literal이란?



Literal(데이터값)이란?


정의: 모든 데이터 타입에 들어가는 데이터값 그 자체.



1. Integer Literal?


자바스크립트에서 정수는 -9007199254740992(-253)에서 9007199254740992(253) 사이에 있는(이 두 수를 포함하여) 모든 정수를 표현할 수 있다.

단, 비트 단위연산자(bitwise operator)는 -2147483648(-231)에서 2147483647(231-1)에 이르는 32비트 정수에 대해서만 작동한다.


// 앞서 말했듯이 해당 데이타 타입이 가지는 "유한 수" 보다 크거나(+) 작은 값(-)을 할당 시 JS는 그 유한 수 이상/이하를 출력하지 못한다.
console.log(parseInt(-9007199254740992 + -1, 10));
console.log(parseInt(9007199254740992 + 1, 10));


2. Floating point Literal?

자바스크립트에서에서 실수는 정수 부분과 소수점, 소수점 이하 부분으로 표현된다.



3.14
2345.789
.33333333333333
6.02e23                // 6.02 ×× 1023
1.4738223E-32      // 1.4738223 ×× 10-32


3. String Literal
?

자바스크립트에서 문자열은 0개('') 또는 하나 이상의 Unicode 문자들이 작은따옴표('') 

혹은, 큰따옴표("")로 둘러싸인 시퀀스다



"" // 빈 문자열: 문자가 없다.
'testing'
"3.14"
'name="myform"'
"wouldn't you prefer O'Reilly's book?"
"This string\nhas two lines" // 두 줄짜리 문자열
" π is the ratio of a circle's circumference to its diameter"
.



4. Function Literal이란?


자바스크립트는 함수를 정의하는 "함수 리터럴" 문법도 제공한다.



var literal = function(x) { return x; }


이름 없는 함수(익명함수)를 프로그램 내에 리터럴 형태로 포함시킬 수 있게 한 최초의 언어인 "Lisp" 프로그램 언어를 기리는 의미에서, 이러한 방식으로 정의된 함수를 람다함수(lambda function)라고 부른다.



함수 리터널을 구현하는 또다른 방식.


var literal = new Function("x", "return x;");





5. Object Literal이란?



자바스크립트는 객체를 생성하고 프로퍼티를 지정하는 객체 리터럴 문법을 제공한다.

1. 블록안에 객체 Property를 콜론(:)으로 구별한 (key: value)형태의 값을 정의하고 각각의 Property를 쉼표(,)로 분리한다.


var obj =
{
    x: 2.3
    , y: -1.2
};

2. 객체 리터널을 아래와 같이 자바스크립트만의 표현식을 사용할 수 도 있고 중첩된 객체

활용
가능하다.


var obj =
[
    {x: {x: 2.3, y:-1.2}, y: {x: 2.3, y:-1.2}}
    , {x: {x: 2.3, y:-1.2}, y: {x: 2.3, y:-1.2}}
    , {x: {x: 2.3, y:-1.2}, y: {x: 2.3, y:-1.2}}
];



3. 또한 아래와 같은 2가지 형태의 리터널 정의도 가능하다.



var obj = new Object()
obj.name = 'test';
 
var fnObj = new function(){ this.name = 'test'; return this };



6. Regexp literal(정규 표현식 리터널)이란?


var regex = /[a-z]/g;




7. Array Literal이란?

기본 형태:

var array = new Array(1, 2, 3);


확장 형태:


var array = [1, 2, 3];




동기와 비동기 차이점


동기:
 

SYSTEM: 명령이 끝날때 까지 사용자에게 제어권을 돌려 주지 않는다.
 

WEB(기본 HTTP 요청): 서버 응답이  끝날때 까지  사용자에게 제어권을 돌려 주지 않는다.


비동기:
 

SYSTEM: 명령이 끝나기전 사용자에게 제어권을 돌려 준다.
 

WEB(XMLHttpRequest 요청): 서버 응답이 끝나기전 사용자에게 제어권을 돌려 준다.



위의 설명과 같이 동기식 과 비동식을 구분하는것은 간단하다.

어떤 루틴이 끝날때까지 제어권이 돌아오지 않으면 동기식 그렇지 않으면 비동기식인 것이다.

prev 1 ··· 53 54 55 56 next