자바스크립트 우수 사례 (Best Practices)

전역변수(global variables), new, ==, eval()는 피한다.


전역변수(Global Variables) 피하기

전역변수 사용을 최소화합니다.

여기에는 모든 데이터 유형, 객체 및 함수(data types, objects, and functions)가 포함됩니다.

전역변수 및 함수는 다른 스크립트가 덮어쓸 수 있습니다.

대신 로컬변수를 사용하고 closures 사용 방법을 배웁니다.


항상 지역변수 선언

함수에서 사용되는 모든 변수는 지역변수로 선언해야 합니다.

지역변수는 var 키워드로 선언해야합니다. 그렇지 않으면 전역변수가 됩니다.


상단에 선언

모든 선언을 각 스크립트 또는 함수의 맨 위에 두는 것이 좋은 코딩 방법입니다.

이것은:

  • 더 깨끗한 코드 제공
  • 지역변수를 찾을 수 있는 단일 장소 제공
  • 원하지 않는(내재된) 전역변수를 쉽게 피할 수 있음
  • 원하지 않는 재선언(re-declarations) 가능성 감소

이것은 루프 변수에도 적용됩니다:


변수 초기화(Initialize Variables)

변수를 선언할 때 변수를 초기화하는 것이 좋습니다.

이것은:

  • 더 깨끗한 코드 제공
  • 변수를 초기화하는 단일 장소 제공
  • undefined 값 피하기


Number, String 또는 Boolean 객체 (Objects) 선언 금지함

numbers, strings 또는 booleans은 항상 원시 값(primitive values)으로 취급하십시오. 객체(objects)가 아닙니다.

이러한 유형(types)을 객체로 선언하면 실행 속도가 느려지고, 불쾌한 부작용이 발생합니다:

Example

strings을 객체로 생성하지 않습니다.

Strings과 객체(objects)는 쉽게 비교할 수 없습니다.

false

더 나쁜 방법은:

Example

strings을 객체로 생성하지 않습니다.

자바스크립트는 객체(objects)를 비교할 수 없습니다.

false


new Object() 사용금지

  • new Object() 대신 { }을 사용합니다.
  • new String() 대신 “”을 사용합니다.
  • new Number() 대신 0을 사용합니다.
  • new Boolean() 대신 false를 사용합니다.
  • new Array() 대신 [ ]을 사용합니다.
  • new RegExp() 대신 / ( ) /를 사용합니다.
  • new Function() 대신 function( ) { }를 사용합니다

Example

x1: object
x2: string
x3: number
x4: boolean
x5: object
x6: object
x7: function


자동 유형 변환(Automatic Type Conversions) 주의

숫자가 뜻하지 않게 문자열이나 NaN (Not a Number)으로 변환될 수 있습니다.

자바스크립트는 유형을 느슨하게 사용합니다(JavaScript is loosely typed). 변수는 다른 데이터 유형(type)을 포함 할 수 있으며, 변수는 데이터 유형을 변경할 수 있습니다:

Example

number

수학 연산을 수행할 때, 자바스크립트는 숫자를 문자열로 변환할 수 있습니다:

Example

테스트하려면 각 행 앞에 있는 comment(//)를 제거합니다:

5 number

문자열에서 문자열을 빼면 오류는 발생하지 않지만 NaN(Not a Number)을 반환합니다.:

Example

NaN


=== 비교(Comparison) 사용

== 비교 연산자는 항상 비교하기 전에 (일치하는 유형으로) 변환합니다.

=== 연산자는 값과 유형(type)을 비교합니다:

Example

테스트하려면 각 행 앞에 있는 comment(//)를 제거합니다:

undefined


매개변수 기본값(Parameter Defaults) 사용

인수(argument)를 누락하고 함수를 호출하면, 누락된 인수의 값은 undefined로 설정됩니다.

정의되지 않은(Undefined) 값은 코드를 손상시킬 수 있습니다. 인수에 기본값을 할당하는 것이 좋은 습관입니다.

Example

함수의 매개변수(parameter)를 기본값(default value)으로 설정합니다.

0

Function Parameters에서 함수의 매개변수 및 인수(parameters and arguments)에 대해 더 읽어보십시오


Switches문은 Defaults로 종료

switch 문은 항상 default로 종료하십시오(필요가 없다고 생각할지라도).

Example


eval() 피하기

eval() 함수는 텍스트를 코드로 실행하기 위해 사용합니다. 대부분의 경우, 이것은 사용할 필요가 없습니다.

코드가 제멋대로 실행될 수 있기 때문에, 보안 문제가 있을 수도 있습니다.

출처: JavaScript Best Practices

댓글 남기기