JavaScript 数据类型及转换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linggty/article/details/78194853

数据类型

数据类型指的就是字面量的类型 在js中一共有六种数据类型

String 字符串
Number 数值
Boolean 布尔值
Null 空值
Undefined 未定义
Object 对象

其中String、Number、Boolean、Null、Undefined属于基本数据类型
而Object属于引用数据类型

Null(空值)类型的值只有一个,就是null null这个值专门用来表示一个为空的对象
使用typeof检查一个null值时,会返回object

如果使用js进行浮点运算,可能得到一个不精确的结果 所以千万不要使用js进行对精确度要求比较高的运算

Undefined(未定义)类型的值只有一个,就是undefined 当声明一个变量,但是并不给变量赋值时,它的值就是undefined

数据类型转换

数据类型转换指将一个数据类型强制转换为其他的数据类型
类型转换主要指,将其他数据类型转换为:String Number Boolean

1、转换为String

方式一:

  • 调用被转换数据类型的toString()方法
  • 该方法不会影响原变量,它会将转换的结果返回
  • 但是注意:null和undefined这两个值没有toString()方法,如果调用他们的方法会报错。

    这里写图片描述

方式二:

  • 调用String()函数,并将被转换的数据作为参数传递给函数
  • 使用String()函数做强制类型转换时,对于Number和Boolean实际上就是调用的toString()方法。但是对于null和undefined就不会调用toString()方法,它会将null直接转换为“null”;将undefined直接转换为“undefined”

2、转换为Number

方式一:

使用Number()函数,使用方法同toString()函数 字符串转数字

1、字符串转数字

  • 如果是纯数字的字符串,直接转换为数字
  • 如果字符串中有非数字的内容 则转换为NaN
  • 如果字符串是一个空串或者全是空格的字符串,则转为0

2、布尔转数字

  • true转成1
  • false转成0

3、null转数字

  • 结果为0

4、undefined转数字

  • 结果为NaN

方式二:

这种方式专门用来对付字符串

parseInt() 把一个字符串转换为一个整数
parseFloat()把一个字符串转换为一个浮点数

  • parseInt()可以将一个字符串中的有效的整数内容取出来,然后转换为Number,从左往右读,读到非整数就停止:
a = "18px";
a = parseInt(a);
console.log(typeof a);
console.log(a);

结果为:

这里写图片描述

如果将a的值换一下:

a = "12.8px";
a = parseInt(a);
console.log(typeof a);
console.log(a);

就会变成这样:
这里写图片描述

  • parseFloat()作用和parseInt()类似,不同的是他可以获得有效的小数

如果对非String使用parseInt()或parseFloat(),它会先将其转换为String,然后再操作

a = 18.23;
a = parseInt(a);
console.log(typeof a);
console.log(a);

这里写图片描述

3、其它进制的数字

在js中 如果需要表示16进制的数字,则需要以0x开头

如果需要表示8进制的数字,则需要以0开头 如果要表示2进制的数字,则需要以0b开头,但不是所有浏览器都支持

a = 0x23;//16进制数
a = 070;//8进制数
a = 0b10;//2进制数

a = "070";//这种字符串有些浏览器会当成8进制解析,有些会当成10进制解析
a = parseInt(a, 10);//可以在perseInt()中传递一个参数,来指定数字的进制
  console.log(typeof a);
  console.log(a);

4、转换为Boolean

调用Boolean()函数来将被转换对象转换为布尔值

  • 数字转布尔,除了0和NaN,其余都是true
  • 字符串转布尔,除了空串,其余都是true
  • null和undefined都会转换为false
  • 对象也会转换为true

猜你喜欢

转载自blog.csdn.net/linggty/article/details/78194853
今日推荐