前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航

JavaScript语言基础之数据类型(二)

首页
2016-07-26 21:46:43
Front-End
JavaScript

# 一、JavaScript中基本的数据类型

查看数据类型用:typeof 变量名

Javascript的数据类型有六种(ES6新增了第七种Symbol)

  • JS中的值有两种类型:原始类型(Primitive)、对象类型(Object)。

  • 原始类型包括:Undefined、Null、Boolean、Number和String等五种。

  • Undefined类型和Null类型的都只有一个值,即undefined和null;Boolean类型有两个值:true和false;Number类型的值有很多很多;String类型的值理论上有无数个。

  • 所有对象都有valueOf()和toString()方法,它们继承自Object,当然也可能被子类重写


  • 数值(number):整数和小数(比如1和3.14)
  • 字符串(string):字符组成的文本(比如"Hello World")
  • 布尔值(boolean):true(真)和false(假)两个特定值
  • undefined:表示 未定义 或不存在,即此处目前没有任何值
  • null:表示空缺,即此处应该有一个值,但目前为空
  • 对象(object):各种值组成的集合

通常,我们将数值、字符串、布尔值称为原始类型(primitive type)的值,即它们是最基本的数据类型,不能再细分了。而将对象称为合成类型(complex type)的值,因为一个对象往往是多个原始类型的值的合成,可以看作是一个存放各种值的容器。至于undefined和null,一般将它们看成两个特殊值


# 二、数据类型的转换

  • 转换函数

  • toString() 转换为字符串,在JavaScript中所有数据类型都可以转换为string类型

```javascript
    var n1 = 12;
    var n2 = true;
    var a = [1, 2, 3];
    var o = {};
    function f(){}
    n1.toString(); //"12"
    n2.toString(); //"true"
    a.toString(); //"1,2,3"
    o.toString(); //"[object Object]"
    f.toString(); //"function f(){}"
```
  • parseInt() 解析出一个string或者number类型的整数部分,如果没有可以转换的部分,则返回NaN(not a number)
```javascript
    var n1 = "12";
    var n2 = "23hello";
    var n3 = "hello";
    parseInt(n1); //12
    parseInt(n2); //23
    parseInt(n3); //NaN
```
  • parseFloat() 解析出一个string的浮点数部分,如果没有可以转换的部分,则返回NaN(not a number)
```javascript
    var n1 = "1.2.3";
    var n2 = "1.2hello"
    var n3 = "hello"
    parseFloat(n1); //1.2
    parseFloat(n2); //1.2
    parseFloat(n3); //NaN 
```
  • 强制类型转换

    • Boolean(value)- 把给定的值转换成Boolean型

          Boolean(123); //true
          Boolean(""); //false
          Boolean([]); //true
          Boolean({}); //true
          Boolean(null); //false
          Boolean(undefined); //false
      
      @前端进阶之旅: 代码已经复制到剪贴板
    • Number(value)-把给定的值转换成数字(可以是整数或浮点数)

          Number("123"); //123
          Number("123h"); //NaN
          Number(true); //1
          Number(false); //0
          Number(undefined); //NaN
          Number(null); //0
          Number([]); 
      fe
      • 一、JavaScript中基本的数据类型
      • 二、数据类型的转换
      • 总结一下==运算的规则:(隐式转换)
      • 附录:思维导图总结

      ← JavaScript语言基础之运算符(三)JavaScript语言基础之函数基础(六) →