JS中的布尔 数字 字符串

更新日期: 2019-03-31阅读: 3k标签: 类型

布尔类型

布尔是什么

乔治·布尔(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开头)

整数的范围

  • -2^53~2^53

整数的使用建议

  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]")

来自:https://segmentfault.com/a/1190000018699432


链接: https://fly63.com/article/detial/2601

JS中Null与Undefined的区别

在JavaScript中存在这样两种原始类型:Null与Undefined。这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined?Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。

Javascript的类型检测

主要介绍了JS中检测数据类型的几种方式,typeof运算符用于判断对象的类型,但是对于一些创建的对象,它们都会返回\'object\',有时我们需要判断该实例是否为某个对象的实例,那么这个时候需要用到instanceof运算符

js类型转换的各种玩法

对于object和number、string、boolean之间的转换关系,ToPrimitive是指转换为js内部的原始值,如果是非原始值则转为原始值,调用valueOf()和toString()来实现。

JavaScript类型:关于类型,有哪些你不知道的细节?

Undefined类型表示未定义,它的类型只有一个值为undefined。undefined和null有一定的表意差别。非整数的Number类型无法使用 == 或 === 来比较,因为 JS 是弱类型语言,所以类型转换发生非常频繁

为你的 JavaScript 项目添加智能提示和类型检查

近在做项目代码重构,其中有一个要求是为代码添加智能提示和类型检查。智能提示,英文为 IntelliSense,能为开发者提供代码智能补全、悬浮提示、跳转定义等功能,帮助其正确并且快速完成编码。

js的类型

基本类型:按值访问,可以操作保存在变量中实际的值;引用类型数据存在堆内存,而引用存在栈区,也就是说引用类型同时保存在栈区和堆区,关于==的执行机制,ECMASript有规范,因为==前后的值交换顺序,返回的值也是一样的,所以在此对规范做出如下总结

再也不用担心 JavaScript 的数据类型转换了

JavaScript 是一种弱类型或者说动态类型语言。所以你不用提前声明变量的类型,在程序运行时,类型会被自动确定,你也可以使用同一个变量保存不同类型的数据。

JavaScript基础之值传递和引用传递

js的值传递和引用(地址)传递:js的5种基本数据类型 number,string,null,undefined,boolean 在赋值传递时是值传递,js的引用数据类型(object,array,function)进行引用传递,其实底层都是对象。

if条件中,js的强制类型转换

众所周知,JS在很多情况下会进行强制类型转换,其中,最常见两种是:1.使用非严格相等进行比较,对==左边的值进行类型转换2.在if判断时,括号内的值进行类型转换,转化为布尔值

Symbol 类型

根据规范,对象的属性键只能是 String 类型或者 Symbol 类型。不是 Number,也不是 Boolean,只有 String 或 Symbol 这两种类型。到目前为止,我们只见过 String。现在我们来看看 Symbol 能给我们带来什么好处。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!