JavascriptDHTML基础知识

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JavascriptDHTML基础知识
以下的教程都是针对你对上⾯所说的JScript.chm这本⼿册了解的基础上⽽写的,如果你还没有看过JScript.chm,建议你先下载,边看⼿册,边看教程。

JS的语法与⼤多数类C的语⾔差不多的语法,差别只在它本⾝的特性上⾯。

所以语法的具体内容,我不再多写,多看看⼿册应该明⽩的。

JS五⼤对象:String, Number, Boolean, Object, Function。

JS四种循环:
for(var i=0; i<n; i++) {}
do {} while(true);
while(true) {}
for (var i in collection) {}
异常处理:
try {} catch(aVariable){}
JS语法我就不⼀⼀列举了,这⾥只JS的⼏⼤对象进⾏⼀些说明,⼿册也许是没有说到的。

⼀、字符串。

字符串是最常⽤的。

⽽强制转换成字符串的⽅式⾄少有⼏下两种:
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>
在这⾥要注意⼀点,上⾯说的是强制转型,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和没有new是有区别的。

这⼀点在Number,Boolean⾥都是如此,所以关于这样的转型,在以后中将不再多说。

⼆、数字(Number)。

这⾥也说⼀说转型的问题。

除了可以⽤Number来强制转型外,也可以⽤parseInt, parseFloat来转成整型或者浮点型。

如果转型后不是数字,那么,将返回NaN(Not a Number),这个时候可以⽤isNaN函数来判断,这⾥你可以查⼀下⼿册,看看⾥⾯的语法。

顺便记⼀下这个函数。

三、布尔型(Boolean)。

这⼀个就较⿇烦⼀些了,因为JS⾥对它的处理⽐较奇特。

除了JScript⼿册上所说的:“
⼀个值为 true 或者 false 的表达式。

如果需要,⾮ Boolean 表达式也可以被转换为 Boolean 值,但是要遵循下列规则:
所有的对象都被当作 true。

当且仅当字符串为空时,该字符串被当作 false。

null 和 undefined 被当作 false。

当且仅当数字为零时,该数字被当作 false。

”以外,还应该注意:
⾸先,在没有强制转换成布尔型之前,也就是⾮true或者也⾮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>
负数会有截然不同的结果。

<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,undefined这些才能是false呢?⽅法⾄少有两种:
(⼀)、强制转型:
1、⽤上⾯所说过的Boolean(aVar)来转型。

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>
两个取反,将aVar转成Boolean型,相当于Boolean(aVar)。

(⼆)、全等运算符。

全等运算符是三个等于"===",这与上⾯所说的不同,它只进⾏同类型的⽐较。

就上例所说,它只⽐较的是true或者false,如果与字符串或数字等⽐,都是false,只有与true相⽐,才是true。

举例:
<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>
四、对象(Object)。

JS创建对象有⾄少以下两种⽅法:
1、如上所说,⽤new关键字。

⽐如new Number(100),new String("string"),new Object(),new customFunction()等。

这种⽅法在⼿册上有很详细的说明,这⾥就不再多说。

2、还可以⽤花括号括起来。

⽐如
var o = {
m1:'',
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的基础知识其实也有很多,知道有疏忽,但是⼜不便多写,写多了就烦琐了,只有⾛⼀步看⼀步了,看看还有什么不清楚的,才能再写出来了。

相关文档
最新文档