学习目标:

parseInt()、Number()这两个函数用到最多的地方就是把一个字符串转换成数据类型,那么他们都有哪些区别?


学习内容:

parseInt()函数将给定的字符串以指定的基数解析为整数。
parseInt(string,radix)
第二个参数表示使用的进制,我们一般使用10进制,也可能会有到8或者16进制。为了避免对“0”和“0x”开头的字符串解析错误,各种javascript编程规范都规定必须要明确给出第二个参数的值,如parseInt(“123”,10).

parseInt('16', 8)  = 14
parseInt('10', 8)  = 8parseInt('16', 10)  = 16
parseInt('10', 10)  = 10parseInt('16', 16)  = 22
parseInt('10', 16)  = 16

parseInt从头解析string为整数,在遇到不能解析的字符时就返回已经解析的整数部分,如果第一个字符就不能解析,就直接返回NaN。


Number()在不用new操作符时,可以用来执行类型转换。如果无法转换为数字,就返回NaN。 像“123a”,parseInt()返回是123,Number()返回是NaN,不同类型的字符串使用这两个函数的转换区别:

// 当字符串是由数字组成的时候 他们转换的数字一样的没有差别
let numStr = '123'
console.log(parseInt(numStr))   //123
console.log(Number(numStr))     //123// 当字符串是由字母组成的时候
let numStr = 'abc'
console.log(parseInt(numStr))   //NaN
console.log(Number(numStr))     //NaN// 当字符串是由数字和字母组成的时候
let numStr = '123a'
console.log(parseInt(numStr))   //123
console.log(Number(numStr))     //NaN// 当字符串是由0和数字
let numStr = '0123'
console.log(parseInt(numStr))   //123
console.log(Number(numStr))     //123// **当字符串包含小数点**
let numStr = '123.456'
console.log(parseInt(numStr))       //123
console.log(Number(numStr))         //123.456// **当字符串为null时**
let numStr = null
console.log(parseInt(numStr))       //NaN
console.log(Number(numStr))         //0// **当字符串为''(空)时**
let numStr = ''
console.log(parseInt(numStr))       //NaN
console.log(Number(numStr))         //0

学习总结:

1、当字符串是由数字组成的时候 他们转换的数字一样的没有差别;如果字符串不含数字全是字母,这两个方法也都只是返回NaN结果;当字符串是由0和数字组成时,都是解析除0外的全部数字;
2 当字符串是由数字和字母组成的时候 ①字母在开头,这两个方法也都只是返回NaN结果②字母不在开头Number方法返回NaN,pareseInt方法返回字母之前的数据
3 parseInt对于非String类型的值要先转换为String类型再操作 4 剩下的细节参考上述案例

js parseInt()和Number()区别相关推荐

  1. js parseInt()与Number()区别

    说到转换成数字类型,我首先想到的是parseInt()方法,后来接触多了才发现还有一个Number()方法,同样是转换成数字类型,这两种方法有什么不同的呢? 1.parseInt():      pa ...

  2. js中!和!!的区别及用法

    js中!和!!的区别及用法 js中!的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值, 1.!可将变量转换成boolean类型,null.undefined和 ...

  3. JS和JQUERY的区别

    JS和JQUERY的区别 ①.根据ID取元素 { JS:取到的是一个DOM对象. 例:var div = document.getElementByID("one"); JQUER ...

  4. js 中的 number 为何很怪异

    js 中的 number 为何很怪异 声明:需要读者对二进制有一定的了解 对于 JavaScript 开发者来说,或多或少都遇到过 js 在处理数字上的奇怪现象,比如: > 0.1 + 0.2 ...

  5. JQuery的ready函数与JS的onload的区别详解

    JQuery的ready函数与JS的onload的区别: 1.执行时间 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. $(document).ready()是DOM结 ...

  6. js setTimeout和setInterval区别

    1.区别 2.示例代码 <!DOCTYPE html> <html lang="zh"> <head> <meta charset=&qu ...

  7. 冲突问题和核心对象和原生js 和 jquer的区别的两个区别(固定格式的区别和入口函数的区别)

    jQuery的冲突问题 $有可能其他框架也用 导致两个框架的符号相同出现问题冲突 第一种解决: 释放$的使用权 jQuery.noConflict();//释放$的使用权语句 释放操作必须在编写其他j ...

  8. js 中的 number 为何很怪异 1

    js 中的 number 为何很怪异 声明:需要读者对二进制有一定的了解 对于 JavaScript 开发者来说,或多或少都遇到过 js 在处理数字上的奇怪现象,比如: > 0.1 + 0.2 ...

  9. 原生js与jquery的区别

    原生js与jquery的区别 1.选择器: js: $('.car_img_con img')[0]; var jsObj = document.getElementsByClassName('sel ...

最新文章

  1. linux iptables 数据流程详解 4表5链的关系
  2. 《认清C++语言》---谈谈const
  3. aix 5.3 安装oracle 10g r2,AIX 5.3 安装 Oracle 10g R2(64)
  4. iOS Block 知识点拾遗
  5. atlas怎么看日志_亿级的日志治理!微服务最佳方案,ELK stack从零搭建
  6. LeetCode 292 Nim Game
  7. 使用命令行刷新Magento索引管理 Rebuilt Magento Indexes in terminal with php-cli
  8. 如何将特定提交推送到远程,而不是之前的提交?
  9. DELPHI2007 安装ACTIVEX插件的方法
  10. 中图分类法----T-0
  11. JavaScript编程软件手机版,JavaScript编程软件
  12. 2020认证杯第二阶段选提建议
  13. 2016年计划,2015年总结
  14. 超级好用easyexcel插件
  15. c语言实现url编码源码,URL encode 与 URL decode 的C语言实现
  16. Unity虚拟相机CinemaChine
  17. 一个陌生女人的来信-未完不续
  18. 软考高级 真题 2014年上半年 信息系统项目管理师 综合知识
  19. 利用opencv拼接图像视频摄像头进行录像
  20. BlinnPhone高光Shader解读

热门文章

  1. 【SQL Server中SMO的简单使用】 (装载)
  2. SQL中DATEADD和DATEDIFF的用法
  3. ASP.net 2.0 自定义控件的开发之数据分页 第五章
  4. vue-seamless-scroll在小米手机上显示不正常 显示出两行的问题
  5. Python_模块Module
  6. JS-对象-构造函数-实例化-this
  7. 最简单的目标跟踪(模版匹配)
  8. 纽约大学计算机工程专业课程,纽约大学计算机工程硕士专业介绍及课程要求
  9. 格式化输入数字_Python格式化输出的三种方式
  10. 2014递归求解单链表中的平均值(C++,附递归函数思路讲解)