热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Javascript把数字從string變成number的5種體式格局

許多時刻,我們的数字是字符串的情勢的,如:’1′,‘3’,[‘2’,‘4’],它們多是從輸入框中獵取,多是來自後端的接口。我們有義務把他們變成整型。下面引見幾種計劃1

許多時刻,我們的数字是字符串的情勢的,如:’1′, ‘3’, [‘2’, ‘4’],它們多是從輸入框 中獵取,多是來自後端的接口。我們有義務把他們變成整型。下面引見幾種計劃

1、parseInt

這是es3就有的語法了,用法:

parseInt('123'); // 123 => number

js版本發展到es6的時刻,parseInt被移到Number中。固然了,本來的parseInt能夠繼承運用

Number.parseInt('123'); // 123 => number

到場数字中帶有非数字的字符,那末第一個湧現不法字符的處所將會被截斷

Number.parseInt('1239y93p21'); // 1239 => number

2、parseFloat

和parseInt差不多,但parseFloat重要針對浮點數的轉換

parseFloat('123'); // 123 => number
Number.parseFloat('123'); // 123 => number
Number.parseFloat('123.4'); // 123.4 => number

一樣有截斷不法字符的劃定規矩

Number.parseInt('1239.34y93p21'); // 1239.34 => number
Number.parseInt('12 39.34y93p21'); // 12 => number

3、Number

es6新出的接口,能夠直接運用,而且對浮點數也是有用的

Number('123'); // 123 => number
Number('123.4'); // 123.4 => number

與parse*()差別,Number處置懲罰時,碰到不法字符,直接NaN了,注重:NaN的範例也是number。

Number('123b'); // NaN => number
Number('123.4b'); // NaN => number

4、乘法+減法

是的,直接乘以1就好了

'123' * 1; // 123 => number
'123.4' * 1; // 123.4 => number
‘123’ - 0; // 1234 => number
'123.4' - 0; // 123.4 => number

碰到不法字符,也是直接NaN了。

'123b' * 1; // NaN => number

注重:加法是不能轉換範例的呢,會被當做字符串拼接:

'123' + 0; // ’1230‘ => string

5、按位或

這就是二進制方面的處置懲罰了,然則只能處置懲罰整數。碰到浮點數時,小數部分被拋棄。碰到不法字符,直接被轉換成0。由於按位或會將数字轉換成帶符號的32位整數,過剩的位數會被直接拋棄;所以按位或支撐的整數局限是[pow(-2, 31), pow(2, 31) - 1]

'123' | 0; // 123 => number
'123.4' | 0; // 123 => number
'123rd' | 0; // 0 => number
a = Math.pow(2, 31) // 2147483648 <=> 10000000000000000000000000000000
a | 0 // -2147483648 => number
(a - 1) | 0 // 2147483647 => number

為何整數轉為負數了呢,由於帶符號二進制中,最高位(第32)是1,代表負數

題外話

關於字符串數組的轉換,能夠應用Number的特徵

['1', '2', '3'].map(Number) // [1, 2, 3] => number[]

另有其他的嗎?如果有補充迎接留言。


推荐阅读
  • 本文介绍了进程的基本概念及其在操作系统中的重要性,探讨了进程与程序的区别,以及如何通过多进程实现并发和并行。文章还详细讲解了Python中的multiprocessing模块,包括Process类的使用方法、进程间的同步与异步调用、阻塞与非阻塞操作,并通过实例演示了进程池的应用。 ... [详细]
  • 近期在研究Java IO流技术时,遇到了一个关于如何正确读取Doc文档而不出现乱码的问题。本文将详细介绍使用Apache POI库处理Doc和Docx文件的具体方法,包括必要的库引入和示例代码。 ... [详细]
  • 本文详细记录了一位求职者在搜狐进行的两次面试经历,包括面试的具体时间、面试流程、技术问题及个人感受。通过本次面试,作者不仅获得了宝贵的经验,还成功拿到了搜狐的录用通知。 ... [详细]
  • javascript——对象的概念——函数 1 (函数对象的属性和方法)
    一、创建函数函数是一种对象:Function类是对象,可以通过Function实例化一个函数,不过最多的还是利用function来创建函数。方式一:利用Function类来实例化函 ... [详细]
  • 2022年4月15日的算法练习题,包括最长公共子序列和线段树的应用。 ... [详细]
  • 本文详细介绍了Oracle RMAN中的增量备份机制,重点解析了差异增量和累积增量备份的概念及其在不同Oracle版本中的实现。通过对比两种备份方式的特点,帮助读者选择合适的备份策略。 ... [详细]
  • 本文详细介绍了如何在本地环境中安装配置Frida及其服务器组件,以及如何通过Frida进行基本的应用程序动态分析,包括获取应用版本和加载的类信息。 ... [详细]
  • 本文介绍了两个重要的Node.js库——cache-content-type和mime-types,它们在处理HTTP响应头时非常有用。cache-content-type是基于mime-types构建的,并且实现了缓存机制以提高性能。 ... [详细]
  • 本文详细介绍了如何在 EasyUI 框架中实现 DataGrid 组件的分页功能,包括配置方法和常见问题的解决方案。 ... [详细]
  • 第1章选择流程控制语句1.1顺序结构的基本使用1.1.1顺序结构概述是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行 ... [详细]
  • 本文介绍了一个基本的同步Socket程序,演示了如何实现客户端与服务器之间的简单消息传递。此外,文章还概述了Socket的基本工作流程,并计划在未来探讨同步与异步Socket的区别。 ... [详细]
  • 本文介绍了如何利用Java编程语言中的正则表达式来验证字符串中的数字是否符合中国三大运营商(中国电信、中国联通、中国移动)的手机号码格式。文章提供了详细的代码示例和解析。 ... [详细]
  • SpringBoot底层注解用法及原理
    2.1、组件添加1、Configuration基本使用Full模式与Lite模式示例最佳实战配置类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断配置类组 ... [详细]
  • 本文介绍了如何使用C# Winform开发局域网内的文件传输功能,详细描述了从用户界面到后端网络通信的具体实现。 ... [详细]
  • 行为设计模式:命令模式详解
    命令模式是一种行为设计模式,它通过将请求封装为对象,使得可以使用不同的请求来参数化客户端,支持请求的排队、日志记录以及提供命令的撤销和恢复功能。 ... [详细]
author-avatar
kingsharedn_594
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有