JavaScript让我喜欢的第一点是其松散类型的特点。(与C++比)
ECMAScript的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。
var message = 'hi';
message = 100;
除了上面这个简单的例子,JavaScript的松散类型还体现在:
1. 数组
ECMAScript数组的每一项可以保存任何类型的数据,也就是说,可以用数组的第一个位置来保存字符串,用第二个位置来保存数值,用第三个位置来保存对象。
2. 自动转换
C++中,我们说自动转换一般是在说「强转」,比如double类型转int类型,而JavaScript中,一般是说其它类型转换为某个类型。比如,JavaScript支持将非数值转换为数值(调用Number函数),null可以转、undefined可以转、字符串也可以转;再比如,JavaScript支持将任何数据类型的值转为Boolean值(调用Boolean函数)。
值得再说一下的是,之前,我说JavaScript没有「字符」的概念,是说JavaScript没有C++中char这样的数据类型,但JavaScript的字符串也是字符序列。