重重的壳裹着轻轻的仰望

I smile when I'm angry. I cheat and I lie. I do what I have to do ··· To get by.

导航

学习中。发现 javascript 数据类型的一些怪异特性:

javascript是一种十分灵活的脚本语言,除了众所周知的弱类型弱定义,还有一些不太关于javascript 数据类型 的怪异特性:

1. javascript中的String 类型是原始类型,即它是放在栈中而不是堆中的,这与其他语言不同。

2. null 和 undefine ,虽然Javascript 把他们定义为相等,alert(null==undefined)试试!
但是他们的含义不同,undefined 是声明了变量但是从未对其初始化或赋值。null则是不存在的意思。如果函数或方法要返回的是对象,那么找不到该对象时,返回的都是null。

3.null也是object对象。被认为是对象的占位符。alert(typeof null) 试试!

4.NaN(Not a Number),表示非数。但是,奇特之处在于,它与自身不相等。alert(NaN==NaN) ,返回的是false。所以,我们一般不推荐使用NaN值本身,而是使用isNaN() 来判断。

5.一般语言用双引号""表示字符串,用单引号'表示字符。而javascript不分,所以下面都是一样的。
var ss = "blue"; var ss='blue';

6.javascrip所有的对象都有toString()方法,不管它是对象还是伪对象。因为String类型属于伪对象,所以一定有toString()方法(当然除了null)
alert(document.toString()) 试试!
其实null也有转为字符串的方法:强制转换(得意地笑)
var s1=String(null);
alert(s1);