🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
最初的JS学习已经过去大半年的时间了,至此感觉对JS的使用与理解并不是很深入,因此在最近的工作之余也开始了新一轮的JS学习。几天时间过去了,对于一些基础内容的学习还是很有必要的,就从今天的重新整理开始吧。 对于JavaScript数据类型,开始并没有全面的认识,只是简单的使用var关键字来定义变量。现在了解到使用var声明变量的方法是JavaScript的语言核心ECMAScript为JS定义的,虽然可随意改变该变量的值,不考虑其数据类型,但这就带来了后期维护的困难,以及性能不高、成本很高的问题。这样看来使用var随意声明变量有利也有弊了。 ECMAScript中定义了六种数据类型:Undefined、Null、Boolean、Number、String、Object(注意JavaScript是区分大小写的,类型的首字母都要求大写,这与后面介绍的类型值是不同的),不支持任何创建自定义类型机制,所有值都会是以上六种数据类型之一。下面我们分别来看。 ## 一、Undefined 该类型只有一个值undefined,当变量声明后但没有对其进行初始化时,则该变量的值为undefined。未初始化的变量自动赋值为undefined。 var box; alert(box);        //弹窗显示undefined值 ## 二、Null 值为null,表示空对象的引用,若定义变量用于存储对象,则可初始化为null值。在进行判断变量是否指向对象时可用null值进行等值比较。 与值undefined的关系:undefined继承于null值,ECMA规范中规定只定义未初始化的undefined值与执行空对象引用的null值是相等的,思考下,两个变量值都表示为空,比较时可理解为相等。但各自的类型还是不能混为一谈的。 ## 三、Boolean 拥有true和false两个值,但其他各类型都可显式或隐士的转换为该类型值,以用作if条件判断或者其他,这里只介绍转换规则 ![](https://box.kancloud.cn/2016-02-17_56c43e67b7495.jpg) ## 四、Number 包含整型和浮点型,输入数值字面量可分为几种格式:十进制、十六进制(以0x开头)、八进制(以0开头),而二进制表示则可采用通用的方法parseInt("**",2),输出数据时则会默认显示为十进制数。其他值:Infinity(正无穷)及-Infinity(负无穷);NaN值(Not a Number)。 ~~~       转型:                 Number():可用于任何数据类型                               alert(Number(true));//1,Boolean 类型的 true 和 false 分别转换成 1 和 0                               alert(Number(25));//25,数值型直接返回                               alert(Number(null));//0,空对象返回 0                               alert(Number(undefined));//NaN,undefined 返回 NaN                               alert(Number('')); //字符串为空,转为0                parseInt():字符串转整型、parseFloat():字符串转浮点型                                        alert(parsetInt('456Lee'));//456,会返回整数部分                              alert(parsetInt('Lee456Lee'));//NaN,如果第一个不是数值,就返回 NaN                              alert(parseInt('12Lee56Lee'));//12,从第一数值开始取,到最后一个连续数值结束                              alert(parseInt('56.12'));//56,小数点不是数值,会被去掉                              alert(parseInt(''));//NaN,空返回 NaN ~~~ ## 五、String 用于表示由零个或多个16位Unicode字符表示的字符串序列。 转型: toString()方法可将其他类型值转换为字符串,参数可选(转换数值时,可添加进制类型) String()方法,可将任何类型的值转为字符串,即使是null或undefined的情况 ## 六、Object       对象的概念在此不再多讲,后面对专门探讨。创建的方式有两种: ~~~ var box = new Object(); var  box = {}; ~~~ ## 小结: 对于数据类型的学习,以前并没有太过于重视,只是懂了简单的应用,现在学习起来这部分的内容还是感觉有很多需要值得推敲的部分,比如数据类型之间的转换,数据存储的优化等都会对程序实现起到很重要的作用,所以多深入一些基础方面的东西还是很有必要的。