数据类型

弱类型特性

我们知道在js中定义变量的时候无需指定类型,比如说指定一个变量num,赋值为32

 var num=32;

稍后也可以马上将一个字符串复制给这个变量

num='this is a string';

这样也是合法的。

有的人可能认为,oh my god,js好简单,定义变量时,连类型都不用管。

真的是这样的吗? 带着这样的疑问,我们来看一下下面这个例子:

32+32                // 64

32+32的运算结果,当然是64

稍微做一点修改,把左边的32用双引号引起来表示一个字符串:

'32'+32             // 3232
这次的运行,会理解为字符串的拼接,运行结果就是3232



同样是字符串与数字运算,稍微做些改变,将+号变成-号;

'32'-32           // 0

这次又会理解为数字的运算,结果时0


我们看到,JavaScript虽然说不需要指定数据类型,但是就是因为没有显示的指定变量的类型,反而在一些js的操作符,运算符,进行一些运算的时候,背后有着一套复杂的隐式转换逻辑。




JavaScript常见的数据类型

我们把一些常见的、比较基础简单的类型称之为:原始类型,主要有

                    number
                    string
                    boolean
                    null
                    undefined

这5种

除了这5种原始类型呢,剩下的呢就只有一种,叫做对象类型 object。
此处先暂时忽略es6引入的新的原始数据类型Symbol)。

可能有的朋友会问,咦? 函数啊、数组啊哪去了?


在JavaScript中, FunctionArrayDate,... 等也是对象,尤其是函数呢是一种比较特殊的对象,因为我们知道函数是可以调用的,并且有它自己的作用域等一些相关内容。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容