2012-01-02 4 views
3

내 자바 스크립트 파일을 통해 읽고 있었다, 그리고 두 가지 질문이 내 마음에 온 : 내가 사용하는 텍스트의 26 문자열을 가지고 있고, 그들 중 일부는 여러 기능에서 반복됩니다javascript : 전역 변수에 대한 텍스트 메시지?

1). 그래서 모든 것을 글로벌 덩어리로 선언하는 것이 좋은 생각입니까?

2) 내 코드의 95 %가 javascript이고 나머지는 JQuery입니다. 논리는 매우 간단합니다. 모든 JS 코드를 JQuery로 변환 할 가치가 있습니까?

샘플 코드 :

email = document.getElementById('email').value; 
    document.myForm.submit(); 
+2

jquery는 javascript이며 전역 변수 선언은 디자인에서 필요하기 전까지는 좋은 생각이 아닙니다. – Rafay

+1

가능한 경우 5 % jQuery 코드를 일반 JavaScript로 바꾸는 것이 좋습니다. 일반 코드와 함께 전체 라이브러리로드의로드를 줄이며 대부분은 사용하거나 필요하지 않은 함수입니다. –

+0

글쎄, div와 같은 .show와 .hide 같은 JQuery 함수를 사용한다. 또한 JavaScript가 JQuery보다 빠르다는 것을 알지 못했습니다. 나는 JQuery가 브라우저 간 호환성을 위해 더 낫다는 말을 들었다. 나는 FF와 IE를 지원해야한다. – ThiagoPonte

답변

4

일반적으로 상수 변수를 한 곳에서 그룹화하면 중복되지 않고 한 번만 정의되며 쉽게보고 수정할 수 있습니다.

그러나 사전을 단일 개체 또는 모듈로 그룹화하는 것이 좋습니다. 이렇게하면 전역 네임 스페이스의 혼란을 줄일 수 있고, 변수가 연결되어 있음을 나타내며, 원하는대로 반복하고 조작 할 수 있습니다. x1, x2, ..., xn 변수 대신에 배열을 사용하는 것과 같은 이유가 있습니다.

//setting up the strings 
var strings = { 
    //string id : string value 
    'a' : 'a string', 
    'b' : 'another string' 
}; 

//using the strings 
console.log(strings.a); 
console.log(strings.['a']); 

또한, jQuery를 그냥 자바 스크립트 라이브러리입니다. 당신이 우리에게 준 정보를 감안할 때, 코드를 변환하려고하는 이유를 실제로 볼 수 없습니다.

+0

저는 JavaScript의 초보자입니다.하지만이 변경 사항에 대해 상사와 이야기하고 Object를 사용하도록하겠습니다. – ThiagoPonte

2

1) 문자열이 사방에 당신이 모든 문자열을 저장하는 하나의 글로벌 VAR을 정의하는 것이 더 될 수 있다는 액세스해야하는 경우 (그것이 array 또는 object 수) 그렇지 않으면 클로저에서 해당 함수를 그룹화 (소위 "즉시 실행되는 함수") 한 다음 생성 된 범위 내에서 해당 배열 또는 객체를 선언하는 것을 고려하십시오. 예 :

(function() { 
    var hastrings = { 
     'string1' : 'value1', 
     'string2' : 'value2', 
     ... 
    }; 

    /* all functions using common strings here */ 

}()); 

2) 달려있다 : 당신은 당신이 jQuery를 전용하는 대신 구축하여 쓰기 얼마나 많은 LOC 고려,하지만 당신은 항상 jQuery 전화 때문에 몇 가지 지침 (직선 자바 스크립트를 사용하여 더 확대됨에 될 수 있음을 유의 기능). 그래서 명확한 대답은 없습니다. 그것은 당신의 코드가하는 일, 얼마나 복잡하고 어떻게 구조화했는지에 따라 달라질 수 있습니다.

2

1) 시나리오에 따라 전역 변수로 선언 할 수 있습니다. 전역 변수는 모든 곳에서 하드 코딩하는 것보다 작성하는 것이 좋습니다.

2) JQuery와는 당신이 그에서 사용할 수있는 자바 스크립트 프레임 워크

document.getElementById('email') is faster than $("#email") 

그래서 자바 스크립트 유지하고, 당신이 JQuery와 최소한의 노력으로하고있는 복잡한 코드가 있는지 확인하는 것이 좋습니다 (아약스)이며, 장소.

관련 문제