요즘은 업데이트 로그가 없어서 이 글은 제가 겪은 일을 이야기한 글이라고 볼 수 있습니다. 몇 가지 팁을 간략하게 공유해 드리겠습니다. 여전히 궁금한 점이 있으면 아래에 메시지를 남겨주세요.
1. 합동 연산자
JS에서는 몇 가지 특수 변수를 제외하고 0이 아닌 모든 숫자가 true입니다. 예: 정의되지 않음, null, "" 등 이것이 대부분의 경우 우리가 기대하는 것입니다.
그러나 이 등호 연산자를 무시해서는 안 됩니다. 따라서 더 엄격한 효과가 필요한 경우 합동 연산자 ===를 사용할 수 있습니다. 다음 코드를 참조하세요.
//몇 가지 일반적인 효과
var foo = function(arg) {
if ( !arg ) {
경고("정상 false");
} else { 경고("true") }
}
foo(null); //false
foo(false ); //false
foo(""); //false
foo("never-online"); //true
//합동 효과
var foo = function(arg) {
if (arg===false) {
경고("false");
} else { 경고("false 변수가 아님") }
}
foo(null) // false 변수가 아님
foo(false); //false
foo(""); //false 변수가 아님
foo("never-online") //false 변수가 아님
2. 변수 적용 중 하나 - 웹 페이지 중첩 제거
예를 들어, Baidu.com을 자신의 iframe에 삽입하려는 경우 얻을 수 있는 결과는 다음과 같습니다. 원하는 것은
if(self!=top){top.location=self.location;}
이 코드의 의미는 다음과 같습니다. 웹 페이지가 중첩된 경우(즉, 프레임 기술을 사용하면 중첩이 제거되고 프레임의 URL이 최상위 창에 부여됩니다.)
예를 들어 일부 여유 공간에서도 위 코드가 사용됩니다. 제거되면 어떻게 되나요? 중첩을 제거하려면 이 코드를 사용하세요.
다음은 이 코드를 사용하여 중첩을 제거할 수 있는 이유를 설명합니다.
JS 변수에서 변수가 다음과 같다면
"never-online"이라는 문자열을 표시할 수 있습니다. 그리고 //var myVar 문장을 복원하면(즉, 주석 처리를 하지 않은 경우) 결과가 달라지고 정의되지 않음이 표시됩니다. var location="never-online"을 사용할 때도 마찬가지입니다. 다음 코드는 여러분의 의심을 해결할 수 있습니다.
마찬가지로 두 번째 실행 시에는 var 위치 문장을 복원하고, 비교해서 그 이유를 파악해야 합니다. 창과 문서에서도 마찬가지입니다. 관심이 있으시면 시도해 볼 수 있습니다.
3. 현재 페이지의 경로를 가져옵니다
이 목표를 달성하려면 위치 개체를 사용하는 등 여러 가지 방법이 있지만 여기서 제시하는 예는 다음과 같습니다. IMG 태그가 생성되었습니다. 코드를 보세요:
알고 있듯이 경로의 "."는 현재 폴더를 나타냅니다. 따라서 IMG를 사용하여 경로를 얻으면 경우에 따라 더 빠르게 경로를 얻을 수 있습니다.
4. !! 연산자를 사용하여 변수의 부울 값을 가져오는 것은 어느 정도 강제 변환과 동일합니다.
예를 들어
왜 이런 일이 발생할까요? Tip 1에서 답을 얻을 수 있습니다. 여기서는 반복하지 않겠습니다.
5. 조건부 컴파일.
필요하다고 생각되면 이 방법을 사용해도 됩니다. 이는 일부 강력한 언어의 조건부 컴파일과 유사합니다. 많은 경우 호환성을 위해 사용됩니다.
간단한 언급일 뿐입니다. 관심이 있으시면 MSDN을 참조하시거나 JS 조건부 컴파일에 대한 기사를 읽어보세요.
몇 가지 구문만 필요합니다.
@cc_on - 이 문장은 조건부 컴파일에 필요하며 조건부 컴파일이 활성화되었음을 나타냅니다.
@set @varname = term - 이 문장은 할당을 위한 것입니다.
여기 아래 단지 판단의 문제일 뿐입니다
@if
@else
@end
간단한 예:
/*@cc_on
document.write("JScript 버전: " @_jscript_version ".
");
/*@if (@_jscript_version >= 5)
document.write("JScript 버전 5.0 .
");
document.write("브라우저가 지원 JScript5를 사용할 때만 이 텍스트를 볼 수 있습니다.
");
@else @*/
document.write("다른 브라우저(예: Firefox, IE 4.x 등)를 사용할 때 .) 이 줄을 봤을 때 <script> <BR>var location='never-online'; <BR></script>"); <script> <BR> //<![CDATA[ <BR> myVar = "never-online"; <BR> (function () { <BR> //var myVar; <BR> alert(myVar) <BR> })() <BR> //]]> <BR> </script> /*@end <script> <BR> //<![CDATA[ <BR> alert(location); <BR> //var location; <BR> //]]> <BR> </script>@*/ <script> <BR> //<![CDATA[ <BR> var p = document.createElement("IMG"); <BR> p.src="."; alert(p.src); <BR> //]]> <BR> </script><script> <BR> //<![CDATA[ <BR> var isSupportedXMLHttp = !!new ActiveXObject("MSXML2.XMLHTTP"); <BR> alert(isSupportedXMLHttp) <BR> //]]> <BR> </script> 6. 그 외, 지금은 너무 많아서 생각이 안 나네요. 지금은 여기에만 쓰겠습니다.