ホームページ > 記事 > ウェブフロントエンド > JavascriptとDHTMLの基礎知識
まず、JScript.chm マニュアルをダウンロードしてください。初心者であっても専門家であっても、特に Rhino の本をめくったことがない場合は、このマニュアルが必要になります。この言語を理解するための最初の選択肢です。以下に説明する内容のほとんどは、マニュアルに記載されていない、またはほとんど記載されていない可能性があります。
以下のチュートリアルは、上記の JScript.chm マニュアルの理解に基づいて書かれています。JScript.chm を読んでいない場合は、まずダウンロードして、マニュアルを見ながら読むことをお勧めします。チュートリアル。
JS の構文は、ほとんどの C 系言語の構文に似ています。違いは独自の特性のみです。したがって、文法の具体的な内容についてはこれ以上書きません。マニュアルを読んで理解してください。
JS の 5 つの主要なオブジェクト: String、Number、Boolean、Object、Function。
4 種類の JS ループ:
for(var i=0; i<n; i++) {} do {} while(true); while(true) {} for (var i in collection) {}
例外処理:
try {} catch(aVariable){}
JS 構文を 1 つずつ列挙することはしませんここではほんの一部を紹介します。JS のいくつかの主要なオブジェクトの説明の一部がマニュアルに記載されていない場合があります。
1. 文字列。
文字列が最も一般的に使用されます。強制的に文字列に変換するには、少なくとも 2 つの方法があります:
1. 文字列コネクタ " " を使用します。 JS では、数値が演算の場合は加算、文字列の場合は連結です。次に例を示します。
<script> var a_number = 1000 var a_string = a_number + ""; </script>
2. String を使用して変換を強制します (String)。
<script> var a_number = 1000 var a_string = String(a_number); </script>
ここで注意すべき点の 1 つは、上記は強制的な変換であり、String の前に「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 (Not a Number) が返されます。このとき、isNaN 関数を使用して内部の構文を確認できます。ところで、この関数を覚えておいてください。
3. ブール値。
これは、JS での処理がかなり奇妙であるため、少し面倒です。
JScript マニュアルの記載内容に加えて: "
値が true または false である式。必要に応じて非ブール式もブール値に変換できますが、次の規則に従う必要があります:
文字列が空の場合に限り、すべてのオブジェクトは true として扱われます。
数値がゼロの場合に限り、数値は false として扱われます。 🎜>" さらに、次の点にも注意してください:
まず、ブール型にキャストされる前、つまり true または false でない場合
1. デジタル条件判断では、一般に 3 つの状況があります: 0、負の数、正の数 0 以外である限り、次の例が当てはまります。
注: 上記の例の条件判定は、条件文を直接判定します。条件文を次のように変更すると、次のようになります。負の数 結果は大きく異なります。
<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>
2. 文字列では、
<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>
にも注意する必要があります。 注: 上記の例の条件判定は、条件文を直接判定します。条件文を次のように変更すると、まったく異なる結果になります。したがって、この側面に対処するときは注意してください。
これを見たらちょっとめまいがする友人もいるかもしれませんが、マニュアルに記載されているように、""、0、null、unknown のみが false になり得るようにするにはどうすればよいでしょうか?少なくとも 2 つの方法があります:
(1) 強制変換:
<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>2. 「not 演算子」を使用して変換します。たとえば、上の例では、
<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>
(2)、合同演算子。
恒等演算子は 3 つの等しい「===」であり、上記とは異なり、同じタイプの比較のみを実行します。上の例で述べたように、文字列または数値と比較した場合、両方とも true と比較されるだけです。例:
4. オブジェクト。
JS には、オブジェクトを作成するためのメソッドが少なくとも次の 2 つあります。
<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>1. 前述したように、new キーワードを使用します。たとえば、新しい Number(100)、新しい String("string")、新しい Object()、新しい 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的基础知识其实也有很多,知道有疏忽,但是又不便多写,写多了就烦琐了,只有走一步看一步了,看看还有什么不清楚的,才能再写出来了