博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3.3-3.4.5 变量和数据类型
阅读量:5167 次
发布时间:2019-06-13

本文共 1391 字,大约阅读时间需要 4 分钟。

3.3 变量:

ECMAScript 的变量是松散类型的,它可以用来保存任何类型的数据,每个变量仅仅是一个用于保存值的占位符而已。

var message = 'hi';

这句代码的意思是,将字符串‘hi’赋值给变量 message ,而不是将 message 变量标记为字符串类型

 

3.4 数据类型:

由于保存浮点数值需要的内存空间是保存整数值的两倍,因此 ECMAScript 会不失时机地将浮点数值转换为整数值

 

 

NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)

例如,在其他编程语言中,任何数值除以0都会导致错误,从而停止代码执行。

但在 ECMAScript 中,任何数值除以0会返回 NaN ,因此不会影响其他代码的执行。

NaN 本身有两个非同寻常的特点。首先,任何涉及 NaN 的操作(例如 NaN / 10)都会返回 NaN,这个特点在多步计算中有可能导致问题。其次,NaN 与任何值都不相等,包括 NaN 本身。

isNaN() 在接收到一个值之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串“10”或Boolean值。而任何不能被转换为数值的值都会导致这个函数返回true。

尽管有点儿不可思议,但 isNaN() 确实也适用于对象。在基于对象调用 isNaN() 函数时,会首先调用对象的 valueOf() 方法,然后确定该方法返回的值是否可以转换为数值。如果不能,则基于这个返回值再调用 toString() 方法,再测试返回值。而这个过程也是 ECMAScript 中内置函数和操作符的一般执行流程,更详细的内容请参见3.5节

 

把非数值转换为数值有3个函数,这三个函数对于同样的输入会有返回不同的结果

 

 

由于 Number() 函数在转换字符串时比较复杂而且不合理

因此在处理字符串转数值的时候更常用的是 parseInt() 函数和 parseFloat() 函数

 

parseInt() 函数

1、该函数可以接收两个参数,第一个参数可以是数字或字符串,第二个参数是基数,决定以哪种进制去解析第一个参数

2、前缀是0的数字字面量是八进制数,前缀是0x的数字字面量是十六进制数,在使用 parseInt 函数去解析八进制的数字字面量的字符串时,es3和es5存在分歧

3、所以如果是解析八进制字面量字符串时,如‘070’,与其这样写 parseInt('070') 不如这样写 parseInt('070', 8)更安全保险,如果指定了第二个参数,第一个参数的表示进制的前缀可以省略

4、不指定基数意味着让 parseInt() 决定如何解析输入的字符串,因此为了避免错误的解析,建议无论在什么情况下都明确指定基数。多数情况下,我们要解析的都是十进制参数,因此始终将10作为第二个参数是非常必要的。

 

parseFloat函数

1、parseFloat只接收一个参数,因为它只解析十进制值,该参数可以是数字也可以是字符串

2、如果字符串包含的是一个可以解析为整数的数(没有小数点,或者小数点后都是0),parseFloat() 会返回整数

 

 

转载于:https://www.cnblogs.com/drink/p/8526137.html

你可能感兴趣的文章
二分搜索 Codeforces Round #218 (Div. 2) C. Hamburgers
查看>>
Codeforces Round #336 (Div. 2)
查看>>
gunicorn运行显示connection in use解决办法
查看>>
CSUST 1506 ZZ的计算器 模拟题
查看>>
2013“嘉杰信息”杯ACM/ICPC湘潭多省程序设计竞赛暨湘潭市第五届大学生程序设计竞赛 F题 five tiger 湘潭大学1173题...
查看>>
20个国外创意404错误页面设计
查看>>
【原创】11. MYSQL++ 之 Quoting 与 Escaping
查看>>
生成验证码图片与验证码刷新
查看>>
MySQL开发设计规范
查看>>
数据结构之图(图的基本操作)
查看>>
HDU 1005 Number Sequence
查看>>
666_2010
查看>>
vim E212
查看>>
.net core 在 Docker 上的部署
查看>>
C++学习(14)
查看>>
English trip -- Review Unit2 At school 在学校
查看>>
[022]c++虚函数、多态性与虚表
查看>>
Android-运行时权限
查看>>
时序图学习
查看>>
DDD-领域驱动设计
查看>>