js 各种数据类型互相转换的函数

news/2024/11/17 9:39:33/

js 各种数据类型互相转换的函数

JavaScript中的数据类型包括字符串、数字、布尔、数组、对象等,以下是它们之间互相转换的函数:

字符串转数字:

  • parseInt()函数:把字符串转换为整数。如果字符串以非数字字符开头,则返回NaN。
  • parseFloat()函数:把字符串转换为浮点数。如果字符串以非数字字符开头,则返回NaN。
  • Number()函数:把字符串转换为数字。如果字符串以非数字字符开头,则返回NaN。

数字转字符串:

  • toString()方法:将数字转换为字符串。
  • String()函数:将数字转换为字符串。

字符串转布尔:

  • Boolean()函数:把字符串转换为布尔值。如果字符串为空字符串或者为0,则返回false;否则返回true。

布尔转字符串:

  • toString()方法:将布尔值转换为字符串。
  • String()函数:将布尔值转换为字符串。

数组转字符串:

  • toString()方法:将数组转换为字符串,元素之间用逗号隔开。
  • join()方法:与toString()类似,但可以指定元素之间的分隔符。

字符串转数组:

  • split()方法:将字符串按照指定的分隔符分割成数组。

数字转布尔:

  • Boolean()函数:将数字转换为布尔值。如果数字为0或NaN,则返回false;否则返回true。

布尔转数字:

  • Number()函数:将布尔值转换为数字。true转换为1,false转换为0。

对象转字符串:

  • JSON.stringify()方法:将对象转换为JSON格式的字符串。

字符串转对象

  • JSON.parse()方法:将JSON格式的字符串转换为对象。

实例说明

以下是每种数据类型互相转换的函数的实例说明:

字符串转数字:
parseInt()函数:


let str = "123";
let num = parseInt(str);
console.log(num); // Output: 123

let str2 = "abc123";
let num2 = parseInt(str2);
console.log(num2); // Output: NaN


parseFloat()函数:


let str = "3.14";
let num = parseFloat(str);
console.log(num); // Output: 3.14

let str2 = "abc3.14";
let num2 = parseFloat(str2);
console.log(num2); // Output: NaN


Number()函数:


let str = "123";
let num = Number(str);
console.log(num); // Output: 123

let str2 = "abc123";
let num2 = Number(str2);
console.log(num2); // Output: NaN


数字转字符串:
toString()方法:


let num = 123;
let str = num.toString();
console.log(str); // Output: "123"
String()函数:


let num = 123;
let str = String(num);
console.log(str); // Output: "123"


字符串转布尔:
Boolean()函数:


let str = "";
let bool = Boolean(str);
console.log(bool); // Output: false

let str2 = "abc";
let bool2 = Boolean(str2);
console.log(bool2); // Output: true


布尔转字符串:
toString()方法:


let bool = true;
let str = bool.toString();
console.log(str); // Output: "true"


String()函数:


let bool = false;
let str = String(bool);
console.log(str); // Output: "false"


数组转字符串:
toString()方法:


let arr = [1, 2, 3];
let str = arr.toString();
console.log(str); // Output: "1,2,3"


join()方法:


let arr = [1, 2, 3];
let str = arr.join("-");
console.log(str); // Output: "1-2-3"


字符串转数组:
split()方法:


let str = "1,2,3";
let arr = str.split(",");
console.log(arr); // Output: [1, 2, 3]


数字转布尔:
Boolean()函数:


let num = 0;
let bool = Boolean(num);
console.log(bool); // Output: false

let num2 = 1;
let bool2 = Boolean(num2);
console.log(bool2); // Output: true


布尔转数字:
Number()函数:


let bool = true;
let num = Number(bool);
console.log(num); // Output: 1

let bool2 = false;
let num2 = Number(bool2);
console.log(num2); // Output: 0


对象转字符串:
ON.stringify()方法:


let obj = {name: "Tom", age: 18};
let str = ON.stringify(obj);
console.log(str); // Output: "{\"name\":\"Tom\",\"age\":18}"


字符串转对象:
ON.parse()方法:


let str = "{\"name\":\"Tom\",\"age\":18

函数封装

以下是各种数据类型互相转换的函数封装在一个类中的代码示例:

class DataTypeConverter {// 字符串转数字static parseToNumber(str) {return parseFloat(str);}// 数字转字符串static numberToString(num) {return num.toString();}// 字符串转布尔static stringToBoolean(str) {return Boolean(str);}// 布尔转字符串static booleanToString(bool) {return bool.toString();}// 数组转字符串static arrayToString(arr, separator) {return arr.join(separator);}// 字符串转数组static stringToArray(str, separator) {return str.split(separator);}// 数字转布尔static numberToBoolean(num) {return Boolean(num);}// 布尔转数字static booleanToNumber(bool) {return Number(bool);}// 对象转字符串static objectToString(obj) {return JSON.stringify(obj);}// 字符串转对象static stringToObject(str) {return JSON.parse(str);}
}

使用示例:

let str = "123";
let num = DataTypeConverter.parseToNumber(str);
console.log(num); // Output: 123let num2 = 123;
let str2 = DataTypeConverter.numberToString(num2);
console.log(str2); // Output: "123"let str3 = "true";
let bool = DataTypeConverter.stringToBoolean(str3);
console.log(bool); // Output: truelet bool2 = false;
let str4 = DataTypeConverter.booleanToString(bool2);
console.log(str4); // Output: "false"let arr = [1, 2, 3];
let str5 = DataTypeConverter.arrayToString(arr, "-");
console.log(str5); // Output: "1-2-3"let str6 = "1,2,3";
let arr2 = DataTypeConverter.stringToArray(str6, ",");
console.log(arr2); // Output: [1, 2, 3]let num3 = 0;
let bool3 = DataTypeConverter.numberToBoolean(num3);
console.log(bool3); // Output: falselet bool4 = true;
let num4 = DataTypeConverter.booleanToNumber(bool4);
console.log(num4); // Output: 1let obj = {name: "Tom", age: 18};
let str7 = DataTypeConverter.objectToString(obj);
console.log(str7); // Output: "{\"name\":\"Tom\",\"age\":18}"let str8 = "{\"name\":\"Tom\",\"age\":18}";
let obj2 = DataTypeConverter.stringToObject(str8);
console.log(obj2); // Output: {name: "Tom", age: 18}


http://www.ppmy.cn/news/53184.html

相关文章

FreeRTOS系统学习-内核篇.01-数据结构---列表与列表项定义详解-链表节点插入实验

# 内核篇.01 列表与列表项 为什么要学列表?链表单向链表双向链表 FreeRTOS 中链表的实现节点节点初始化尾节点根节点链表根节点初始化将节点插入到链表的尾部将节点按照升序排列插入到链表将节点从链表删除节点带参宏小函数 链表节点插入实验实验现象 为什么要学列表…

【Java 】Java 类加载和类加载器

文章目录 前言一、加载二、链接验证准备解析 三、初始化发生的时机不会触发类的初始化 四、类加载器双亲委派模式 前言 Java 的类加载阶段分为:加载、链接、初始化,而链接的过程中包括:验证、准备、解析。 一、加载 将类的字节码载入方法区…

二维码在设备点维一体化管理中的应用

随着科技发展,设备点维一体化管理体系应运而生,该管理体系的出现让设备维护保养变得更加高效精细化。 设备点维一体化管理体系以设备点检和维护保养为基础,通过日常、专业及精密点检,对点检测得的数据和设备给油脂保养情况进行统…

关于容器(Docker)的形象比喻

1 将容器比喻为样板间 容器是一种特殊的进程 容器依赖与Linux操作系统内核的几项技术:namespace、cgroup、chroot namespace 与编程语言里的 namespace 有点类似,它可以创建出独立的文件系统、主机名、进程号、网络等资源空间,相当于给进程…

记录-有意思的气泡 Loading 效果

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 今日,群友提问,如何实现这么一个 Loading 效果: 这个确实有点意思,但是这是 CSS 能够完成的? 没错,这个效果中的核心气泡效果&am…

【机智云物联网低功耗转接板】+模拟无线远程控制仪表启停

GE211 是机智云自研的定制化的物联网转接板,使用 ESP32-C3-WROOM-02 通讯模块,适用于白色智能家电等设备应用。硬件设计上采用支持 WiFi 和 BLE 的双模无线通信模块,具备TTL电平转换串口,免开发快速接入,提高开发效率。…

前端开发之vue动态路由实现方案

前端开发之vue动态路由实现方案 前言2. 实现1、登录页面创建登录函数和watch监听路由2、调用的login方法(1)登录方法(2)存储token 3、router.push的时候调用路由守卫(1)创建路由守卫,建议路由守…

docker以外挂目录的方式部署springboot项目

前置准备: 清单: 安装有docker的Linuxspringboot打包的jar文件(该项目只有一个返回"hello world"接口) Linux的IP地址:192.168.221.129 springboot项目的接口: 1、上传jar文件至Linux 我上传…