一. JavaScript 中有两大类数据类型:
(1). 值类型:
String,Number,Boolean,Symbol(ES2015 新增),null 和 undefined.
boolean,number,string 三种值类型, JavaScript 为之提供了对应包装类型, 包装类型和引用类型的差别在于对象的生存周期, 在读取模式下访问值类型数据的值时, 内部会自动为之创建包装类型的对象, 提供了相关方法和属性, 但是操作值类型数据的语句一经执行完毕, 就会立即销毁新创建的包装类型.
(2). 引用类型:
引用类型都是 Object 或者其子类(ES2015 新增类的概念), 比如 Date,Array,Math 和 RegExp 等.
二. 详细介绍:
(1).String 类型:
字符串类型可以使用单引号或者双引号包裹形成.
代码实例如下:
- `var` `webName =` `"爱前端"``;`
- `var` `url =` `'aiqianduan.com'``;`
(2).Number 类型:
此类型表示整型和浮点型数字, 代码如下:
- `var` `num1=88.00;` `// 使用小数点来写 `
- `var` `num2=88;` `// 不使用小数点来写 `
极大或极小的数字可以通过科学 (指数) 计数法来书写:
- `var` `y=123e5;` `// 12300000`
- `var` `z=123e-5;` `// 0.00123`
还有一种比较特殊的 NaN(not a number), 它表示一个本来要返回数值的操作数而未返回的情况.
代码如下:
`console.log(8%0);`
NaN 的特点:
(1). 任何 NaN 参与的操作返回值都是 NaN.
(2). 任何值和 NaN 都不相等, 甚至和其本身都不相等.
`console.log(NaN==NaN);`
isNaN()方法可以判断一个值是否是数值类型, 代码如下:
- `console.log(isNaN(``"antzone"``));`
- `console.log(isNaN(3));`
(3).Boolean 类型:
该类型只有两个值, false 和 true.
JavaScript 中所有类型的值都可以转换为布尔值, 如果将一个值转换为布尔值, 可以使用显式方式:
- `var` `str=``"antzone"``;`
- `console.log(Boolean(str));`
也有隐式转换, 例如在 if 语句中:
- `var` `str=``"antzone"``;`
- `if``(str){`
- `console.log(``"爱前端"``);`
- `}`
具体一个值被转换为 true 还是 false 那要看值得数据类型和其实际值, 转换规则如下:
(4).undefined 类型:
此类型只有一个值, 即 undefined.
一个变量声明但未赋值的时候, 它的缺省值就是 undefined.
- `var` `antzone;`
- `console.log(antzone);`
(5).Null 类型:
此类型和 undefined 类型一样也只有一个值, 即 null.
null 表示一个空对象, 虽然它是 Null 类型, 但是 typeof 返回值却是 object, 但是并不说明它是一个对象, 可以说这是 JavaScript 的一个小小的错误, 或许以后就会被修复.
`console.log(``typeof` `null``);`
如果我们声明一个变量用来保存对象, 那么可以将此变量设置缺省值为 null, 这样就可以判断此变量是否等于 null, 以此来判断此变量是否指向一个对象.
null 和 undefined 相等性比较返回值为 true.
`console.log(``null``==undefined);`
尽管 undefined 和 null 都表示空, 但是它们的用法确实有很大不同的, undefined 一般表示一个声明未赋值, 未声明或者属性不存在, 而 null 一般针对对象, 表示一个对象不存在. 变量声明未赋值的时候没有必要显式赋值为 undefined, 但是如果一个变量是要准备存储对象的, 那么就推荐赋值为 null.
(6).Object 类型:
关于 Object 类型和继承于它的子类这里不具体介绍了, 后续文章会有详细介绍.
下面只简单介绍一下如何创建一个 Object 类型的对象:
`var` `obj=``new` `Object();`
上面是用构造方法创建一个 Object 类型对象.
`var` `obj = {}`
上面是用直接量方式创建一个对象.
- `var` `obj = {`
- `webName:` `"爱前端"``,`
- `objective:``"前端学习"`
- `}`
Object 对象是无序键值对集合. 数组也是键值对集合, 不过是有序键值对集合.
专注全栈大前端, 爱前端整理了一批最新 Web 前端教学视频, 不论是零基础学习还是在职提升, 这些资料都会给你带来帮助, 爱前端帮助所有想要学好前端的同学, 学习规划, 学习路线, 学习资料, 问题解答. Web 全栈前端技术交流群: 137503198
来源: http://www.jianshu.com/p/eb8065459c46