javascript学习笔记(一)

我从我的其它博客中转载过来的学习记录。

看的书是 JavaScript The Definitive Guide 作者: David Flannagan

一、Null值

javascript的关键字null是一个很特别的“值”,它代表“没有值”。当然,从语言的技术上说,null是一个object类型的值,所以当一个变量的值是null时,你就应该说它不是一个合法的对象或者数组等。
C和C++程序员可能说javascript里的null和0是一样的,其实在某些特定的情况下也许null会转化为0,但它们的确是不同的,不要将它们搞混。

二、undefined

在自己编写javascript或者看别人的javascript代码时,你可能常常遇到"undefined"这样的字符串。其实当一个变量不存在;或者定义了但是还没有给它赋过值时;或者指向一个对象不存在的成员时,都会返回这个字符串。
它和null不同。在javascript里没有专门为未指定值的变量提供一个“undefined”关键字。所以我们写javascript代码时可能就在判断一个变量的值时有些困难。尽管"undefined"和null不同,但是通常情况下我们可以将它们等同对待。因为当我们写下面代码判断时:
my.prop == null
如果my.prop不存在或者它的值就是null时,那么返回结果为true。
在较新的浏览器里你可以较方便地区分undefined和null了。因为有typeof运算符可以使用了。typeof运算返回的是它的参数的类型。所以有如下的运算和等式:
type = typeof null; //type的值将为"object"。
/*当typeof的参数为未赋值的或者未定义的变量时,它就返回"undefined"*/
var a_undefined_varable;
type = typeof a_undefined_varable; //type的值将为"undefined"。
/*有趣的实践:*/
type = typeof typeof x; //不论x为什么,都将返回"string",所以type将为"string"。
-----注:typeof可以返回的值:"number", "string", "boolean", "object", "function",和 "undefined"
-----对于Array类型,也将返回"object",由此可以看出javascript是如何对待Array类型的。
-----其实你可以将typeof的参数的括号括起来使它看起来更像函数;或者来改变运算的优先级别:
-----var a=30, b=10;var type = typeof (a+b); //type的值将为"number"。

三、new 和 delete

在javascript里使用new 操作符可能对大家是经常的事儿。“但是在javascript里还有一个delete操作,你知道吗?当然它的作用可不是像在C++里时那样把它所占用的内存都清空,而是将对象从当前的命名空间里除去(注意在早期的javascript里是将对象赋值为null)。这样做是因为javascript自己有垃圾回收机制,它可以自动把无用的东西回收。”你可能想:“是这样的吗?”本人经过实际测试,认为当今主流浏览器(IE 7,firefox 2)都忽略delete运算。

四、with语句

如果你使用过delphi,你会很熟悉这样的语法。delphi中有unit和uses关键字来处理名字空间,在delphi程序中可以使用with来减少“编码”,增加可读性。在javascript里也有命名空间的概念,因些使用with语句也可以达到像在delphi中一样的效果。
with(Math) {
    x = sin(i * PI / 20);
    y = cos(i * PI / 30);
}
with(document) {
    write("<h2>hello from with</h2>");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值