2018-08-23javascript(3)数据类型之Number

.JS有7种数据类型:数字(Number),字符串(string),布尔值(boolean),null, undefined, 对象(Object),Symbol(这是在ES6中提出的)

一.数字(Number)

1.在JS内部所有的数字都是以64位的浮点数形式储存的。
由于浮点数不是精确值,所以在比较的时候要非常小心。

0.1 + 0.2 === 0.3 //false
0.3/.01 //2.999999999999996

2数字的精确度。

JS的浮点数的64个二进制位,从最左边开始,是这样组成的。
.第1位:符号位,0表示正数,1表示负数。
.第2位到12位(共11位):指数部分。
.13~64位(共52位):(即有效数字小数部分1)

JS精度最多只能到53个二进制位,绝对值小于2^53的整数都可以精确保存。

3.数值范围
.JS能表示的数值范围在21024到2-1023之间,且为开区间。
.若一个数大于2^1024则会发生“正向溢出”,这时返回Infinity.
.若一个数小于2^-1023则会发生“负向溢出”,这时会返回0.

JS提供Number对象的MAX_VALUE和MIN_VALUE,返回值表示的是具体的最大值和最小值。
MAX_VALUE:1.7976931348623157e+308
MIN_VALUE:5e-324.

4.数值的表示方法

.JS可以用字面形式直接表示,比如(12)十进制,(0xFF)十六进制,还可以用科学计数法表示。
.以下两种情况JS会自动将数值转化为科学计数法表示,其他其他情况都直接采用直面的形式直接表示。
(1)小数点前的数字多余21位。
(2)小数点后紧跟5个以上的0。

5.特殊的数值

(1) +0和-0的区别就是64位浮点数表示法的第一位数字符号位的不同,几乎所有的 场合+0和-0都被当作0处理,唯一的区别场合是在+0和-0作为分母的时候,返回值不同。+0作分母返回值为Infinity,-0作分母返回值为-Infinity.。
(2).NaN表示(not a number),主要出现在将字符串转换成数字出错的时候。
.NaN不是独立的数据类型,它还是属于Number,而是一个特殊的数值。
.NaN不等于任何值,包括它本身。

NaN === NaN // false

.NaN在布尔运算时的返回值是false。

Boolean(NaN) //false

.NaN和任何数(包括其本身)进行运算,得到的返回值都是false

6.Infinity

(1)含义"无穷"用于两种场合,一是正数值太大,或者负数值太小无法表示,二是一个非0的数值除以0得到Infinity.

Infinity > 一切数;-Infinity < 一切数。(都不包括NaN)
(2)运算规则。
.Infinity的四则运算,符合无穷的数学计算规则。

5 * Inifinity //Infinity
5 - Infinity //-Infinity
Infinity / 5 //Infinity
5 /Infinity // 0

.0乘以Infinity,返回NaN; 0除以Infinity,返回0;Infinity除以0 ,返回Infinity。

.Infinity +(*)Infinity 返回Infinity; Infinity -(/) Infinity 返回NaN。

.Infinity和null的就算就相当于和0的计算。

.Infinity和undefined的计算都返回NaN。

7.与数值相关的全局方法

(1)parseInt()方法用于将字符串转换为数字。
.如果字符串前面有空格,空格会被自动删除。
.如果parseInt()的参数不是字符串,将会先被转换成字符串,在进行转换。
.字符串转换时,是一个一个字符转换的,如果遇到不能转换的,将停止转换,把已经转换好的返回出去。
.如果字符串的第一个字符不能转换为数字(后面跟着数字的加减号除外),将返回NaN。
.parseInt()的返回见过只有十进制整数,或者NaN。
.对于会自动转换为科学计数法的数字,parseInt()会出错。

parseInt('12.3') //12
parsesInt('a2') //NaN
parseInt('+3') // 3
parseInt('4a') //4
parseInt('0.0000008')//8 因为0.0000008会自动以8e-7的科学计数法的形式保存成字符串。

parseInt()可以传入两个参数,第二个参数为2~36之间的整数,表示被解析的数的进制,返回该值对应的十进制数,若不写,则默认为十进制数,若果传入的第二个人参数超过了范围,将会无意义,返回NaN,若第二参数传入的为0,null ,UNdefined的话,会被直接忽略,默认为十进制数。

(2)parseFloat()用于将字符串转换为浮点数。

parseFloat('1.23') // 1
parseFloat('1.23acb') //1
parseFloat('') //NaN
parseFloat('fa8')//NaN

.parseFloat()会自动字符串前导的空格。
.parseFloat()如果参数不是字符串,或者第一个参数不能转换为浮点数,都会返回NaN。
.注意parseFloat会将空字符串返回NaN。

8.isNaN():可以判断一个值是否为NaN

isNaN(abc) //true
isNaN(123) //false

.只针对数字有效,若传入其他值,会被转换成数字,如果无法转换成数字,字符串就会被转换成NaN,所以最后会返回true,故当isNaN返回true时可能不是NaN,是字符串。
.同样原因,对于数组和对象,isNaN也返回true。但是对于空数组和只有一个数值的数组,isNaN会返回false。

isNaN([])//flase
isNaN([123])//flase

.判断NaN最好的方法是利用NaN不等于自身的特性

function myIsNaN(value){return value} !== value;}

.isFinite()方法返回一个boolean值,表示某个值是否为正常值。

isFinite(123)//true
isFinite(NaN)//false
isFinite(null)//true
isFinite(undefined)//false

isFinite()除了NaN,undefined,Infinity,-Infinity这四个值返回false之外,都返回true。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 抓不住爱情的我 总是眼睁睁看她溜走 世界上幸福的人到处有 为何不能算我一个 为了爱孤军奋斗 早就吃够了爱情的苦 在...
    泉水叮咚_75fe阅读 600评论 0 0
  • 养人养器 丁酉夏月初晨,早起梳洗。早起缘何,因酷暑难寐也。炎炎之温使人欲躁之,遂早早起身。而酷暑之时何以养身焉? ...
    荆风紫砂文化阅读 644评论 0 0
  • 让思想在阳光下 在众人的眼光里 无所遁行 黑夜的皇冠 包裹着言语的糖衣 招引着亢奋的牤蝇 时代的餐盘 蹒跚在阿多尼...
    车前慕阅读 166评论 0 1
  • ---读《斯坦福极简经济学》第一章 没有人的生活离得开经济学;经济学几乎是整个人类社会的基础。所以,我们不妨学一点...
    无花岛主夫人阅读 531评论 3 4