【冰山白皮书】JS中的布尔 数字 字符串

关于我们

QQ答疑交流群:
600633658

我们的链接:

知乎 掘金 今日头条 新浪微博 前端网 思否 简书 B站

布尔类型

布尔是什么

乔治·布尔(George Boole,1815.11.2~1864),1815年11月2日生于英格兰的林肯。19世纪最重要的数学家之一,出版了《逻辑的数学分析》 ,这是它对符号逻辑诸多贡献中的第一次。1854年,他出版了《思维规律的研究》 ,这是他最著名的著作。在这本书中布尔介绍了现在以他的名字命名的布尔代数。
计算机基于逻辑运算,为纪念布尔而改名为布尔运算。

布尔运算的结果称之为布尔值

布尔类型的值

  • true
  • false

布尔类型的命名

  • bool(常用名)
  • boole(人名)
  • boolean(布尔数学体系)

用途

主要用于判断或者作为比较的结果

布尔类型转换

JS中所有的值都可以转换成布尔类型 使用Boolean()或者** !!(两个感叹号)**

可以转化成false的值

只有6个:

  1. undefined
  2. null
  3. 0
  4. -0
  5. NaN
  6. ''

数字类型

整数的表示

十进制,八进制(0开头),十六进制(0x开头)

整数的范围

-253~253

整数的使用建议

  1. 使用十进制,少用16进制,不用8进制
  2. 不要使用太大或者太小的整数,长度不要超过16位

浮点数的表示

  1. 小数点前可以没有数字,默认为0。CSS中同样适用
  2. 小数点后可以没有数字(浮点数占用的内存空间为整数的两倍,计算机为了节约内存会自动将小数点后没有数字的浮点数转换成整数)
  3. 小数点后六个0以上的浮点数自动转换为指数

0.1+0.2不等于0.3深入讲解

JS浮点数计算标准

IEEE754

IEEE是什么

电气和电子工程师协会( IEEE,全称是Institute of Electrical and Electronics Engineers)是一个国际性的电子技术与信息科学工程师的协会,是目前全球最大的非营利性专业技术学会,其会员人数超过40万人,遍布160多个国家。
IEEE的两个前身AIEE(美国电气工程师协会)成立于1884年,IRE(无线电工程师协会)成立于1912年

IEEE成就

  1. 在各个领域制定上千个标准(802,80211)
  2. 发表文献占全球文献的三分之一
  3. 设立40多个专业分会
  4. 每年主办300场以上技术会议
  5. 名人云集

IEEE754

浮点数算数标准,全称二进制浮点数算数标准

浮点数的表示形式

单精度(32位) 双精度(64位,JS使用) 延伸单精度 延伸双精度

0.1+0.2!=0.3的原因

十进制转二进制引起的误差(二进制无法表示0.1和0.2)

类似的举例

  • 1米=3尺
  • 1米!=1尺+2尺

小数使用建议

永远不要使用两个经过计算的小数做比较

如何进行小数的比较

  1. 先乘10的N次方转换成整数在除10的N次方转化成小数。10的N次方的范围(虽然有限,但是足够大,300多次方)
  2. 使用toFixed()函数,四舍五入保留N位小数。
  3. 保持书写一致
    • 17.4530.9——47.114999——toFixed(2)——47.11
    • 0.917.453——47.115————toFixed(2)——47.12
      不合理的数学计算

在JS中只要是数字就可以参与运算,无论是否满足数学逻辑
x/0——Infinity 0/0——NaN

NaN

不等于任何数字的数字。

NaN不等于NaN(面试坑)

判断NaN

isNaN(),返回布尔类型

用途是判断参数是否可以转换成数字

数字类型转换

JS中所有的值都可以转换成数字类型,使用Number()或+

数字类型转换场景

目的只有一个,用于计算,将后台传递的数据,从字符串转换为数字并参与计算

取整运算

parseInt(),更简单的取整 |0

字符串

什么是字符串

如果一个数据在代码中被引号引上,他就是一个字符串

'123','undefined','ture'

单引号还是双引号?

都可以,推荐使用单引号,因为HTML默认使用双引号

Unicode编码

字符串中可以使用Unicode编码\u开头,

EXP:

\u03a3
\u03c0

常用的转义符

\n \ ' "

字符串的属性

  • index
  • length(回顾调用属性原理)

长度误区

汉字长度为1,转义符长度为1,Unicode编码长度为1

字符串类型转换

JS中所有的值都可以转换成字符串,使用String()或与一个空字符串相加

原始类型转化总结

  1. 都有和自己数据类型同名的方法
  2. 首字母都大写
  3. 传入的数据都可以是任何数据类型
  4. 结果都是对应的数据类型并且可以分为两种(true false,正常数字 非正常数字,文本 "[object Object]")

推荐阅读更多精彩内容