JavaScript数据类型和类型转换

1、JavaScript数据类型

在JavaScript中,数据类型分为了两大类。分别是基本数据类型和引用数据类型。

本文在Node.js环境中进行输出

1.1、基本数据类型

JavaScript中的基本数据类型为有:String、Number、Null、Undefined、Boolean、Symbol(ES6新增)

在JavaScript中我们使用var关键字来声明变量

// 字符串
var str = "hello world"
console.log(str+"----这是一个字符串");

//数字
var num =  110
console.log(num+"----这是一个数字");

// 布尔(Boolean)
var bol = true
console.log(bol+"----这是Boolean值");

// null 和 undefined
console.log(null+"----这是null");
console.log(undefined+"----这是undefined");

vscode终端中 输出

1.2、引用数据类型

引用数据类型:Object、Array、Function

对象Object

对象是模拟现实生活的对象,对象由键值对组成,通过使用大括号将所有键值对括起来。

var dog = {
    name: 'momo',
    age: 4
}

可以通过点语法获取对象的属性

dog.name; //momo
dog.age;    //age

数组Array

数组是一个特殊的对象,包含了多个值,值与值之间使用逗号分隔开,所有的值通过中括号括起来。

var Arr = [1,2,3]
var studentArr = ['zhangsan','lisi','wangwu']

可以通过数组下标获取对应的数据

Arr[0]; // 1

函数Function

函数是代码执行单元,用于实现某些特殊的功能。

function sum(a, b) {
  return a + b;
}
//执行函数
sum(1,2); // 3

2、类型转换

2.1、String类型转换

其他类型转String,通过toString()函数转换。除了null,undefined,其他三种基本数据类型的变量均有一个toString()函数,该函数可以获取该变量指定值的字符串表示

//  toString()函数

var a = true;
var b = 123;

console.log(a.toString(), b.toString());// 'true'  '123'

console.log(typeof a.toString(), typeof b.toString());//string string

 通过toString()函数转换后a,b都变为了String类型

 2.2、Boolean类型转换

其他数据类型转换为Boolean,通过Boolean()包装器进行转换

// Boolean()包装器 
console.log(Boolean('hello'));
// 使用!!转换任意其他数据类型都可以转换为布尔类型。
console.log(!!'hello');

输出结果为布尔值

2.3、Number类型转换

其他数据类型转换为Number,通过Number()包装器

如果转换的值是null,undefined,boolean,number

Number(true); //1
Number(false); //0
Number(null); //0
Number(undefined); //NaN
Number(10); //10 如果是数字值,原样输出

如果转换的值是string

Number("123"); //123  如果仅包含数值,转换为对应的数值

Number("234.1"); //234.1 解析为对应的小数 

Number("+12.1"); //12.1 首位为符号位,其余为为数值,转换为对应的数值 

Number("1+2.3"); // NaN 符号位出现在其他位置,解析为NaN 

Number("0xa"); //10 如果仅包含十六进制格式,转为为对应的十进制的值

Number("010"); //10【注意】不会当做八进制被解析,结果为10。 

Number(""); // 0 空字符串被转换为0 

Number("123ac"); // NaN 包含其他字符: NaN 

 parseInt()函数

如果转换的值是null,undefined,boolean,均转换为NaN

如果转换的值是Number,如果是整数则原样输出,是小数则去掉小数点后面的内容再输出

但是如果是10.0结果为10

// 如果转换的值是Number
parseInt(10); //10 如果是整数值,原样输出 parseInt(10.3); //10 如果是小数,舍去小数点一级后面的内容
console.log(parseInt(10.3));

如果转换的值是string

parseInt("123"); //123;如果仅包含数值,转换为对应的数值

parseInt("234.1"); //234;小数点后面的数值省略 

parseInt("+12.1"); //12; 首位为符号位,其余为为数值,转换为整数 

parseInt("1+2.7"); //1; 符号位出现在其他位置,保留符号位前面的数值 

parseInt("0xa"); //10; 如果仅包含十六进制格式,转为为对应的十进制的值

parseInt("010"); //10; 【注意】不会当做八进制被解析,结果为10

parseInt(""); //NaN;空字符串被转换为NaN

parseInt("123ac"); //123; 如果首位为数值,依次向后解析,找到连续的数值,直到遇到第一个非数值的,将之前获取的数值转换为Number返回 

 

parseFloat()函数

如果转换的值是null,undefined,boolean,均转换为NaN

如果转换的值是Number,整数原样输出,小数则保留小数再输出

// 如果转换的值是Number
parseFloat(10.11); //10 如果是整数值,原样输出 parseFloat(10.1); //10.1 如果是小数,保留小数点,但是如果是10.0结果为10
// console.log(parseFloat(10.11));

如果转换的值是string

parseFloat("123"); //123;如果仅包含数值,转换为对应的数值

parseFloat("234.1"); //234.1;保留小数点后面的数值 

parseFloat("+12.1"); //12.1; 首位为符号位,其余为为数值,转换为整数
 
parseFloat("1+2.6"); //1;符号位出现在其他位置,保留符号位前的数值 

parseFloat("0xa"); //0; 【注意】不会当做十六进制来解析。

parseFloat("010"); //10; 【注意】不会当做八进制被解析,结果为10

parseFloat(""); //NaN;空字符串被转换为NaN

parseFloat("123.3ac");//123.3;如果首位为数值,依次向后解析,找到连续的数值,直到遇到第一个非数值的,将之前获取的数值转换为Number返回 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值