먼저 JScript.chm 매뉴얼을 다운로드하세요. 초보자든 전문가든 매뉴얼은 필수입니다. 특히 Rhino 책을 끝까지 읽어보지 않으셨다면 이 매뉴얼은 필수입니다. 이 언어를 이해하기 위한 첫 번째 선택입니다. 아래에 언급된 대부분의 사항은 설명서에 언급되지 않거나 거의 언급되지 않을 수 있습니다.
다음 튜토리얼은 위에서 언급한 JScript.chm 매뉴얼에 대한 이해를 바탕으로 작성되었습니다. JScript.chm을 먼저 읽어보신 후, 매뉴얼을 시청하시는 것을 권장합니다. 지도 시간.
JS의 구문은 대부분의 C 계열 언어와 유사하며 차이점은 그 자체의 특성뿐입니다. 그러므로 문법의 구체적인 내용에 대해서는 더 이상 쓰지 않겠습니다. 매뉴얼을 읽어보시고 이해하시기 바랍니다.
JS의 5가지 주요 객체: 문자열, 숫자, 불리언, 객체, 함수.
JS 루프의 네 가지 유형:
for(var i=0; i<n; i++) {} do {} while(true); while(true) {} for (var i in collection) {}
예외 처리:
try {} catch(aVariable){}
JS 구문을 하나씩 나열하지는 않겠습니다. , 여기에 몇 가지가 있습니다. JS의 여러 주요 객체에 대한 일부 설명은 매뉴얼에 언급되지 않을 수 있습니다.
1. 문자열.
문자열이 가장 일반적으로 사용됩니다. 강제로 문자열로 변환하는 방법에는 최소한 두 가지가 있습니다.
1 문자열 커넥터 " "를 사용합니다. JS에서는 숫자가 연산이면 덧셈이고, 문자열이면 연결입니다. 예:
<script> var a_number = 1000 var a_string = a_number + ""; </script>
2. 문자열을 사용하여 강제 변환(문자열)합니다.
<script> var a_number = 1000 var a_string = String(a_number); </script>
여기서 한 가지 주의할 점은 위의 내용은 강제 변환이고 String 앞에 "new" 키워드가 없다는 점입니다. new 키워드를 추가하면 String 객체가 생성됩니다. 객체는 속성과 메서드를 포함할 수 있지만 문자열은 다음과 같이 비교할 수 없습니다.
<script> var a_number = 1000 var a_string = String(a_number); a_string.property = "js"; alert(a_string.property) //将提示undefined var a_object = new String(a_number) a_object.property = "js"; alert(a_object.property) //将提示js </script>
따라서 new와 no new 사이에는 차이가 있습니다. 이는 Number와 Boolean의 경우에도 마찬가지이므로 앞으로는 이 변환에 대해 더 이상 언급하지 않겠습니다.
2.
여기서 우리는 변화의 문제에 대해서도 이야기합니다.
Number를 사용하여 강제로 변환하는 것 외에도parseInt 및parseFloat를 사용하여 정수 또는 부동 소수점 유형으로 변환할 수도 있습니다. 변환 후 숫자가 아닌 경우 NaN(숫자가 아님)이 반환됩니다. 이때 isNaN 함수를 사용하여 내부 구문을 확인할 수 있습니다. 그런데 이 기능을 기억해두세요.
3. 부울.
이것은 JS에서 처리하는 것이 다소 이상하기 때문에 좀 더 까다롭습니다.
JScript 매뉴얼에 나와 있는 내용 외에: "
값이 true 또는 false인 표현식. 필요한 경우 부울이 아닌 표현식도 부울 값으로 변환할 수 있지만 다음 규칙을 따라야 합니다.
문자열이 비어 있는 경우에만 모든 개체가 true로 처리됩니다.
숫자가 0인 경우에만 false로 처리됩니다. 🎜>" 또한 주의할 점은 다음과 같습니다.
우선 불리언형으로 캐스팅되기 전, 즉 참이나 거짓이 아닐 때
1. 디지털 조건부 판단에서는, 일반적으로 0, 음수, 양수 세 가지 상황이 있습니다. 0이 아닌 한 다음은 true입니다.
참고: 위 예의 조건문은 조건문을 다음과 같이 변경하면
<script> var a = 0; var b = -1; var c = 1; function assert (aVar) { if (aVar) alert(true); else alert(false); } assert(a) // false assert(b) // true assert(c) // true </script>
이 됩니다. 음수 매우 다른 결과입니다.
<script> var a = 0; var b = -1; var c = 1; function assert (aVar) { if (aVar==true) alert(true); else alert(false); } assert(a) // false assert(b) // false assert(c) // true </script>
2. 문자열에서는
도 주의해야 합니다. 참고: 위 예의 조건부 판단은 조건문을 직접 판단합니다. .조건문을
<script> function assert (aVar) { if (aVar) alert(true); else alert(false); } var a="undefined"; var b="false"; var c=""; assert(a) // true assert(b) // true assert(c) // false </script>
으로 바꾸면 전혀 다른 결과가 나옵니다. 그러므로 이 부분을 다룰 때에는 주의해야 합니다.
<script> function assert (aVar) { if (aVar==true) alert(true); else alert(false); } var a="undefined"; var b="false"; var c=""; assert(a) // false assert(b) // false assert(c) // false </script>혹시 친구들이 보면 좀 어지러울 수도 있는데, "", 0, null, undefine만 false가 될 수 있다고 매뉴얼에 명시된 대로 어떻게 만들 수 있을까요? 최소한 두 가지 방법이 있습니다.
(1) 강제 변환:
1. 위에서 언급한 Boolean(aVar)을 사용하여 변환합니다.
2. "not 연산자"를 사용하여 변환합니다. 예를 들어 위의 예에서
는 두 개의 부정을 사용하여 aVar를 Boolean(aVar)과 동일한 부울 유형으로 변환합니다.
<script> function assert (aVar) { if (!!aVar==true) alert(true); else alert(false); } var a="undefined"; var b="false"; var c=""; assert(a) // true assert(b) // true assert(c) // false </script>(2), 합동 연산자.
항등 연산자는 3개의 같음 "==="로 위에서 말한 것과는 다릅니다. 동일한 유형의 비교만 수행합니다. 위의 예에서 언급했듯이 true와 false만 비교하며, 문자열이나 숫자와 비교하면 둘 다 false입니다. 예:
4. 개체.
<script> function assert (aVar) { if (aVar===true) alert(true); else alert(false); } var a="undefined"; var b=true; var c=1; assert(a) // false assert(b) // true assert(c) // false </script>
1. 위에서 언급했듯이 new 키워드를 사용합니다. 예를 들어 new Number(100), new String("string"), new Object(), new customFunction() 등이 있습니다.
이 방법은 매뉴얼에 자세히 설명되어 있으니 여기서는 자세히 다루지 않겠습니다.
2. 중괄호를 사용할 수도 있습니다. 예를 들어
var o = { m1:'never-online.net', m2:'blog' }
这种方法就比较省时省力了。利用这种方法来创建对象,需要注意的就是,
每个成员后有一个":"冒号,冒号后是该成员的内容。
其次就是,成员内容后有一个逗号",",但仅最后一个成员是没有逗号的。
五、函数(Function)。
函数在JS里的作用有两个,
一是做为一个普通函数一样被调用。
二是可以做为一个"类"(class)来使用。
第一条就没有什么可说明的了,手册上说得很清楚了,第二条就简要说明一下。
上面第四点里说到对象,除了创建JS本身的对象之外,需要创建一个类的实例,那么就必须先把“类”写出来。这个类就是Function。
比如:
<script> function myclass() { this.m1="member--m1"; this.m2="member--m2"; } var o = new myclass(); </script>
六、关于this和new关键字。
也许有些朋友还不太清楚这个this的作用是什么。这是面向对象里所提及的内容
这里也简单说一下,this就是“自己”的意思,而上面的的“自己”,就是指myclass。
举个例子来说myclass这个类就是一个模具,模具上有一个名字(m1),还有一个螺丝(m2),而new关键字就可以理解成“生产”。那么就可以把上面的代码理解成:
(模具 myclass)function myclass() { (模具myclass的名字是)this.m1="member--m1" (模具myclass上面的螺丝是)this.m2="member--m2"; }
按照模具myclass的样式生产一个产品o
var o= new myclass();
这个刚出炉的产品就有模具myclass的所有特性了。当然,我们可以按照这个模具的样式生产成千上万个。
如果我们愿意,我们还可以修改一下他的属性,比如,我生产完一个产品,想把他的名字换了。我们也可以这么做
var product = new myclass(); product.m1 = "newProduct"
上面这样讲解,希望能清楚一些。
基本把要说的基础知识简单的说了一些,JS的基础知识其实也有很多,知道有疏忽,但是又不便多写,写多了就烦琐了,只有走一步看一步了,看看还有什么不清楚的,才能再写出来了