js 字符串转换数字

2023-10-27

本文转载至:http://www.phpweblog.net/linxiaobo/archive/2008/12/29/6250.html

PS:今天用到了,一下子想不起来,所以写下来,省得下次又找~~

方法主要有三种

转换函数、强制类型转换、利用js变量弱类型转换。

1. 转换函数:

js提供了parseInt()parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个函数才能正确运行;对其他类型返回的都是NaN(Not a Number)。

 

一些示例如下:

parseInt("1234blue");   //returns   1234
parseInt("0xA");   //returns   10
parseInt("22.5");   //returns   22
parseInt("blue");   //returns   NaN

 

parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,示例如下:

parseInt("AF",   16);   //returns   175
parseInt("10",   2);   //returns   2
parseInt("10",   8);   //returns   8
parseInt("10",   10);   //returns   10
如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:
parseInt("010");   //returns   8
parseInt("010",   8);   //returns   8
parseInt("010",   10);   //returns   10

 

parseFloat()方法与parseInt()方法的处理方式相似。
使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。

下面是使用parseFloat()方法的示例:
parseFloat("1234blue");   //returns   1234.0
parseFloat("0xA");   //returns   NaN
parseFloat("22.5");   //returns   22.5
parseFloat("22.34.5");   //returns   22.34
parseFloat("0908");   //returns   908
parseFloat("blue");   //returns   NaN

2. 强制类型转换

还可使用强制类型转换(type casting)处理转换值的类型。使用强制类型转换可以访问特定的值,即使它是另一种类型的。
ECMAScript中可用的3种强制类型转换如下:
Boolean(value)——把给定的值转换成Boolean型;
Number(value)——把给定的值转换成数字(可以是整数或浮点数);
String(value)——把给定的值转换成字符串。
用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。这会造成意想不到的后果。
当要转换的值是至少有一个字符的字符串、非0数字或对象(下一节将讨论这一点)时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false。

可以用下面的代码段测试Boolean型的强制类型转换。

Boolean("");   //false   –   empty   string
Boolean("hi");   //true   –   non-empty   string
Boolean(100);   //true   –   non-zero   number
Boolean(null);   //false   -   null
Boolean(0);   //false   -   zero
Boolean(new   Object());   //true   –   object

Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似,只是它转换的是整个值,而不是部分值。示例如下:

用  法                   结  果
Number(false)                  0
Number(true)                   1
Number(undefined)              NaN
Number(null)                   0
Number( "5.5 ")                5.5
Number( "56 ")                 56
Number( "5.6.7 ")              NaN
Number(new   Object())         NaN
Number(100)                    100  

最后一种强制类型转换方法String()是最简单的,示例如下:

var   s1   =   String(null);   //"null"
var   oNull   =   null;
var   s2   =   oNull.toString();   //won’t   work,   causes   an   error

3. 利用js变量弱类型转换

举个小例子,一看,就会明白了。
<script>
var   str= '012.345 ';
var   x   =   str-0;
  =   x*1;
</script>

上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js 字符串转换数字 的相关文章

  • 使用 setAttribute() 添加“onclick”函数

    为什么以下不起作用 显然该功能尚未添加 function activatetypeinput event devtype The function is called but it doesn t set the attribute var
  • 如何获取对象的所有属性?

    如何在 JavaScript 中使用反射获取对象的所有属性 循环遍历对象并获取属于该对象且不属于该对象的每个键 一个函数 var properties for var key in obj if obj hasOwnProperty key
  • 跨域XMLHttp请求

    这是我的情况 我有一台 Web 服务器机器 一台客户端机器和第三台运行一些侦听 XMLHttpRequest 的程序的机器 客户端从客户端计算机访问网络服务器 进行一些更改 然后单击 保存 此时 数据被发送回网络服务器和第三台机器 所有这些
  • 仅单击 div 内部

    我正在为一个小网站制作教程 我只想让教程气泡可点击 因此 当我们尝试单击气泡之外的某些内容时 什么也不会发生 换句话说 我希望我的 html 不可点击 而 tutorial bubble 可点击 尝试这个 jQuery function h
  • Javascript - 在加载所有图像后执行

    看了别人的问题我想 window onload 会回答我的问题 我已经尝试过这个 但它会在页面加载时立即执行代码 而不是在图像加载之后 如果有什么区别的话 图像来自 CDN 并且不是相对的 有人知道解决办法吗 我没有使用 jQuery 想要
  • 创建一个简单的 10 秒倒计时

    我想要一行这样写的 Your download will begin in 10 9 8 etc Beginning on page load seconds 我已经设置了 10 秒下载文本 并且我还查看了其他 stackoverflow
  • 打开 md-calendar 时滚动到当前日期

    目前正在构建一个使用 Angular Material 的应用程序 我们需要一个 md calendar 组件 我们想要自定义按钮样式和内容 因此不使用普通的 md datepicker 问题是 当 md calender 打开时 滚动位置
  • window.onbeforeunload 在 Android Chrome 上不会触发 [alt.解决方案?]

    我开发了一个简单的聊天应用程序 我正在使用 window onbeforeunload当有人关闭选项卡 浏览器时 基本上是当用户离开房间时 通知其他用户 这是我的代码 scope onExit function scope chatstat
  • 在鼠标光标位置添加 cytoscape 节点

    我想在画布上的单击事件上的鼠标箭头位置添加一个 cytoscape 节点 我怎样才能做到这一点 我的方法 效果不太好 我可以通过单击创建一个节点 但无法确保创建的节点的位置位于我单击的位置 使用这样的东西 cy click function
  • 如何导入和导出 javascript ES6 类

    我是 javascript 和 nodejs 的新手 我正在使用这个项目来发展我的技能并学习新技术 目前我的项目使用多个相互依赖的类 类文件位于不同的目录中 我当前正在尝试使用 export 和 require 语句来允许在其他文件中引用类
  • 将文本大小调整为矩形 在 Canvas HTML5 中调整大小

    我是 Canvas 新手 我正在创建一个网站 以在调整矩形大小时增加文本 我尝试了很多 但没有任何效果 实际上 我希望如果我仅按其宽度调整矩形大小 向左拉伸 向右拉伸 则仅应增加文本宽度而不是字体大小 我已经完成了字体大小 但发现增加孤立文
  • 在 jQuery 可排序中对多个选定项目进行排序?

    我试图在 jQuery 可排序集中选择多个项目 然后将选定的项目一起移动 这是我的弱点开始尝试使其发挥作用 http jsfiddle net benstenson CgD8Y 这是代码 HTML div class container d
  • 在管道中重用变量的功能方式

    在 javascript 和 typescript 中与 Ramda 一起使用函数式编程 我经常发现自己编写如下代码 const myFun c gt const myId c id const value pipe getAnotherO
  • 为什么将 x 和 y 设置为 0 时 svg 文本会消失?

    我刚刚开始阅读有关svg我提出了以下问题 我正在创建一个简单的svg with a text里面如下图所示 从我的阅读中我了解到x and y of the text标签声明文本在标签内的位置svg space 为什么当我同时设置x and
  • 在 React Navigation 中将 props 传递给自定义抽屉导航器

    在反应导航抽屉菜单中 我想显示用户名 John Doe 它处于我的主要组件的状态 Router 我怎样才能将自定义抽屉内容组件传递给它 额外信息 我从 AsyncStorage 中获取此名称 组件已挂载 这是我的代码 export defa
  • 使用日期字符串数组在引导日期选择器中设置禁用月份不起作用

    我有一个日期选择器 其配置如下 HTML div class input group date div
  • 如何打开弹出窗口并用父窗口中的数据填充它?

    如何使用 JavaScript jQuery 使用父页面中 JS 变量的数据填充弹出窗口 在我的示例中 我有一个文件名数组 我在父窗口中最多列出五个 如果还有更多 我想提供一个链接来打开弹出窗口并列出数组中的每个帖子 因此 如果我打开一个包
  • Knockout.js 安全绑定

    我想使用带有淘汰赛的安全绑定 为此我使用敲除安全绑定 js https github com brianmhunt knockout secure binding 谁能解释一下为什么下面的代码不起作用 它会抛出一个错误 未捕获 淘汰 安全
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • 使用 JQuery 根据下拉列表选择的值显示/隐藏控件

    我正在尝试使用 JQuery 根据下拉菜单的选定索引显示 隐藏 div 标签 但它不起作用 任何帮助将不胜感激 Thanks

随机推荐

  • Vue监听滚动实现锚点定位(双向)

    这里很感谢 http www jb51 net article 110325 htm 这篇文章带来的启发 但是我和他不同 网上的方法都是 这样计算滚动条距离窗口顶部的距离 注意是窗口 用的是document对象 Chrome documen
  • 面试准备:Spring/Spring MVC常见面试题汇总

    文章目录 1 Spring框架有什么优点 2 什么是AOP 3 实现AOP的方式 AOP织入的三种时期 Spring AOP是怎么实现的 4 JDK动态代理实现方式 5 PageHelper实现方式 6 什么是IoC 什么是DI 7 Spr
  • NEON技术粗浅认识

    1 简介 微处理器处理数据主要分为以下几种 Single instruction single data SISD Single instruction multiple data vectormode SIMD Single instru
  • 为什么被马斯克解雇了3次,特斯拉自动驾驶团队却越来越强?

    很多人问我 作为一个汽车厂商 怎么样才能够抓住汽车智能化的时代机遇 建立自动驾驶自研能力 因为其中最让人头疼的就是建立人工智能 AI 自研能力 车厂已经意识到自动驾驶自研能力非常重要 2021年6月30日 上汽集团董事长陈虹在股东大会回答股
  • QString,const char*,char*相互直接转换方法

    整合网络上的解决方法 解决方法一 1 string转const char string s abc const char c s s c str const char 转string 直接赋值即可 const char c s abc st
  • Python学习小记(1)—命令指示符

    一 命令指示符如何打开使用 1 使用组合快捷键 Win R 打开运行对话框 然后在打开后面输入 cmd 命令操作符快捷名称 2 电脑的开始 附件里面找到命令提示符入口 二 学习Python时 常用的命令语句 1 当先进入某盘时 直接输入盘的
  • Arduino VS 树莓派:哪个才是你的菜?

    假设你正在寻找一台微型计算机 它能够驱动一台激光炮塔向彩色气球射击 作为一名极客 你可能常会幻想到类似的场景 那么你很可能已经听说过Arduino和树莓派 Raspberry Pi 了 但是却拿不定主意 到底哪种微型计算机才适合你的个人项目
  • centos7的一些变化,firewalld替换iptables、systemctl 替换service

    1 防火墙命令用firewalld取代了iptables了 查看防火墙状态 systemctl status firewalld 临时关闭防火墙命令 reboot之后 防火墙自动起来 systemctl stop firewalld 永久关
  • QGIS加载谷歌地图(google map)方法

    目录 第一步 第二步 将Google提供的网络地图 包括地图和卫星影像等 作为图层加载到QGIS中 有时可辅助地学分析 QGIS已经提供了OpenStreetMap 在 XYZ Tiles 里面加载即可 谷歌街道地图 http mt2 go
  • 同样是做自媒体,为什么有的人能月入过万,你只能月入几块?

    经常有粉丝跟大周说 自媒体的红利期是不是已经过去了呢 收益低 做自媒体的收益还不够交电费的呢 同样是做自媒体 为什么有的人可以月入过万甚至更多 而一些人只能收益个位数甚至赚不到钱 我们都知道小马过河的故事 牛告诉小马河很浅 松鼠告诉小马河很
  • server 2003搭建文件服务器,使用Windows Server 2003搭建安全文件服务器

    ZDNetChina服务器站 8月14日x86技巧 启用并配置文件服务 Windows Server 2003的管理工具中有一项功能叫做 管理您的服务器 启动该工具之后 可以看到当前服务器上启用的所有服务 并可对这些服务进行管理 点击该界面
  • IOC和DI的关系

    IOC 控制反转 全称为 Inverse of Control 将对在自身对象中的一个内置对象的控制反转 反转后不再由自己本身的对象进行控制这个内置对象的创建 而是由第三方系统去控制这个内置对象的创建 简单来说就是把本来在类内部控制的对象
  • LLM Data Pipelines: 解析大语言模型训练数据集处理的复杂流程

    编者按 在训练大语言模型的过程中 构建高质量的训练数据集是非常关键的一步 但关于构建大模型训练所需数据集的通用数据处理流程 Data pipelines 的相关资料极为稀少 本文主要介绍了基于Common Crawl数据集的数据处理流程 首
  • 基于Spring Boot+ Vue的健身房管理系统与实现

    小熊学Java全能学 面试指南 https javaxiaobear cn 摘要 随着健身行业的快速发展 健身房管理系统成为了提高管理效率和用户体验的重要工具 本论文旨在设计与实现一种基于前后端分离的健身房管理系统 通过前后端分离的架构模式
  • R语言笔记:机器学习【决策树(Decision Tree】

    写在开头 我是一个学R的小白 因为读研老师要求开始接触R 记一记笔记留给自己以后回顾 顺便分享出来嘻嘻 我把需要深入的的函数进行介绍 方便了解这些函数的用法 一些简单的函数我就不放出来啦 决策树这部分的笔记主要是利用分类回归法哈 rpart
  • Python_集合去重的底层原理

    Python 集合去重的底层原理 https www cnblogs com linshuhui p 9580620 html
  • JAVA枚举类型(enum)的巧妙应用

    枚举类型的应用 实例 总结 根据接口文档的需求 需要使用通用的返回值类型进行返回 实例 return 调用的error方法就是先new一个ApiRestResponse对象 然后返回 之前在controller层调用的ImoocMallEx
  • Java和Java之父

    詹姆斯 高斯林 James Gosling 1955年5月19日出生于加拿大 是Java编程语言的共同创始人之一 一般公认他为 Java之父 1983年高斯林获得了美国卡内基梅隆大学计算机科学博士学位 博士论文的题目是 The Algebr
  • python编程语言介绍-Python基础手册 1 —— Python语言介绍

    python logo png Python 是一门优雅而健壮的编程语言 它继承了传统编译语言的强大性和通用性 同时也借鉴了脚本语言和解释语言的简单性和易用性 一 Python 的历史 Python是由创始人贵铎 范 罗萨姆 Guido v
  • js 字符串转换数字

    本文转载至 http www phpweblog net linxiaobo archive 2008 12 29 6250 html PS 今天用到了 一下子想不起来 所以写下来 省得下次又找 方法主要有三种 转换函数 强制类型转换 利用