JavaScript的数据类型介绍、JavaScript各类型数据转换

目录

1、JavaScript的数据类型介绍

JavaScript的数据类型:

1、JavaScript中设计了5种简单数据类型:

2、JavaScript中的特殊类型值:

3、JavaScript 数据类型

转换为数值型

方法 一 number法则

代码

1、未定义类型转数值型:

 2、布尔型转数值型

3、 数值加字符串转换

4、空字符串类型

 5、都是数字类型

方法 二 数学运算符号中的+号和-号来转换

代码

1、+号 

2、-号 

方法 三 通过parseInt(需要转换的字符串)/parseFloat(需要转换的字符串)

代码

1、partInt

2、partFloat 

3、特殊数据类型 

转换为字符串型

方法 一 toString()方法

代码

方法 二 String()函数

代码

方法 三 利用字符串拼接

代码

转换为布尔型

方法 一 特殊类型转换为布尔值

代码

方法  二 数组转换为布尔类型

代码


1、JavaScript的数据类型介绍

JavaScript的数据类型:

1、JavaScript中设计了5种简单数据类型:

  • Number        数据类型
  • String        字符串类型
  • Boolean        布尔类型
  • Undefined        未定义的
  • Null         空值
  • Object        和复杂数据类型

ES6新增的Symbol数据类型,Symbol在开发中很少遇到,一般在写类库、或保证对象键不重复,这里不做讨论

2、JavaScript中的特殊类型值:

0、NaN、空字符串""、false、undefined、null

这6个值在 Boolean转型函数中,结果均为false。由于程序控制语句 if 自动使用Boolean函数转换为布尔值,因此这6个值非常重要。

  • 对于Number类型,特殊的值有 0、NaN;(Infinity转换结果与一般Number类型值转换结果一致)
  • 对于String类型,特殊的值为空字符串 "",
  • 对于Boolean类型 ,只有true、false两种,false为特殊值;
  • 对于Undefined类型,只有一种类型,特殊值为undefined;
  • 对于Null类型,只有一种类型,特殊值为null。

3、JavaScript 数据类型

在 JavaScript 中有 6 种不同的数据类型:

  • string
  • number
  • boolean
  • object
  • function
  • symbol

3 种对象类型:

  • Object
  • Date
  • Array

2 个不包含任何值的数据类型:

  • null
  • undefined

转换为数值型

方法 一 number法则

通过Number(常量or变量)方式来转换

注意: 

  1. 如果字符串中都是数值,那么就正常转换
  2. 如果字符串中没有数据(空字符串)""/" ",那么转换的结果为0
  3. 如果字符串中的数据不仅仅是数值,那么转换的结果是NaN
  4. 如果是布尔类型的true,那么转换的结果是1
  5. 如果是布尔类型的false,那么转换的结果是0
  6. 如果是空类型(null),那么转换的结果是0
  7. 如果是undefined(未定义)类型,那么转换的结果是NaN

代码

1、未定义类型转数值型:

// 如果是undefined(未定义)类型,那么转换的结果是NaN
let str = undefined;
let num = Number(str);
console.log(num);  // NaN
console.log(typeof num);  // number

 2、布尔型转数值型

// 如果是布尔类型的true,那么转换的结果是1
// 如果是布尔类型的false,那么转换的结果是0
// 如果是空类型(null),那么转换的结果是0
let str = true;
let str1 = false;
let str2 = null;
let num = Number(str);
let num1 = Number(str1);
let num2 = Number(str2);
console.log(num, num1, num2);  // 1 0 0
console.log(typeof num);  // number
console.log(typeof num1);  // number
console.log(typeof num2);  // number

3、 数值加字符串转换

// 如果字符串中的数据不仅仅是数值,那么转换的结果是NaN
let str = "13px";
let num = Number(str);
console.log(num);     // NaN
console.log(typeof num);  // number

4、空字符串类型

// 如果字符串中没有数据(空字符串)""/"   ",那么转换的结果为0
let str = "  ";
let num = Number(str); 
console.log(num);  // 0
console.log(typeof num);  // number

 5、都是数字类型

// 如果字符串中都是数值,那么就正常转换
let str = "111";
let num = Number(str);
console.log(num);  // 111
console.log(typeof num);  / number

方法 二 数学运算符号中的+号和-号来转换


注意:

虽然通过+/-都可以将其他类型转换为数值类型,但是-号会改变数值的正负性
+/-本质上就是调用了Number()函数

代码

1、+号 

let str = "111";
let num = +str;
console.log(num); // 111 
console.log(typeof num);    // number

2、-号 

// -号会改变数值的正负性
let str = "111";
let num = -str;
console.log(num);  // -111
console.log(typeof num);    // number

方法 三 通过parseInt(需要转换的字符串)/parseFloat(需要转换的字符串)

注意: 


parseInt/parseFloat都会从左至右的提取数值,一旦遇到非数值就会立即停止 停止的时候如果还没有提取到数值,就会返回NaN


parseInt/parseFloat都会将传入的数据当作字符串来处理 无论是true/false/undefined/null,最后都会返回NaN

代码

1、partInt

​
// parseInt(需要转换的字符串)
let str = "13.04px";
let num = parseInt(str);
console.log(num); // 13
console.log(typeof num);  // number

2、partFloat 

// parseFloat(需要转换的字符串)
let str = "13.04px";
let num = parseFloat(str);
console.log(num); // 13.04
console.log(typeof num);  // number

3、特殊数据类型 

// parseInt/parseFloat都会将传入的数据当作字符串来处理 无论是true/false/undefined/null,最后都会返回NaN
let str = true;
let num = parseFloat(str);
console.log(num);   // NaN
console.log(typeof num);

转换为字符串型

方法 一 toString()方法

调用被转换数据类型的toString()方法
该方法不会影响到原变量,它会将转换的结果返回

注意:

null和undefined这两个值没有toString()方法,
如果调用他们时用此方法,会报错 

代码

var a=10;
a=a.toString();//调用方式
alert(typeof a);//查看a的数据类型

方法 二 String()函数

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

代码

var a=10;
a=String(a);
alert(typeof a);

方法 三 利用字符串拼接

利用字符串拼接 隐式转换

代码

+ '';
alert(num + "我" );

转换为布尔型

方法 一 特殊类型转换为布尔值

""、0、undefined、null、false、NaN 转换为布尔值后都是false;
除此之外转换为布尔值后都是true。

代码

 var a = ""; //false
      var a = 0; //false
      var a = undefined; //false
      var a = null; //false
      var a = NaN; //false
      var a = " "; //true   空格不是空字符串
      
      a = Boolean(a);
      console.log(a);

方法  二 数组转换为布尔类型

数组转换为布尔值有一些需要注意的地方:

数组直接使用Boolean转换时,结果都是true;

代码

	var arr = [1, 2, 3]; //true
	var arr = []; //true
	
	var b = Boolean(arr);
	console.log(b);

	console.log(![]); //false

但是数组在进行比较的时候,就不一定是这样了,例如:

  console.log(![] == []); //true


在这里,它们是这样转换为布尔值比较的

因为[]直接转换为布尔值的结果是true,所以![]转换为布尔值的结果是false。
而[]会先转换为字符串"",然后字符串""再转换为布尔值false。所以它们比较的结果是true。
因为[]直接转换为布尔值的结果是true,所以![]转换为布尔值的结果是false。

而[]会先转换为字符串"",然后字符串""再转换为布尔值false。 所以它们比较的结果是true。
所以 ![] == “” 的结果也是true。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值