JS中的数据类型

基本数据类型:number string boolean null undefined symbol  以及ES6新增的(bigInt)

引用数据类型:对象数据类型(普通对象\数组对象\正则对象\日期对象..)  函数数据类型(function)

数据类型之间的区别:

基本数据类型是按值操作,值存储在栈内存中;引用数据类型是按照内存的地址来操作的,我们需要把对象的键值对存储在堆内存中,我们操作的是堆内存的引用地址

一.数字 number

包括:正数 负数 小数 零 NaN(不是一个有效数字)  Infinity(无穷大的值)

在使用isNaN进行有效数字检测的时候,如果检测的值是非数字类型的值,则需要先把其转换为数字类型,然后再进行检测,把其他数据类型转换为数字类型 

把其他数据类型转换为数字类型(3种方式):

1.Number()

处理过程:

Number是JS内置的转换方式,可以把其他数据类型强制转换为数字类型

+ 把字符串转换为数字,一旦字符串出现非有效字符,则结果为NaN,只有都是有效数字字符,才能转换为具体数字,空字符串会转换成0

        + 把布尔类型转换成数字,true转换为1,false转换为0

        + 把空转换成数字,null转换为0  undefined转换为NaN

        + 不能把Symbol类型转换为数字,会报错

        + 对象转换为数字,先调用toString把对象转换为字符串,再把字符串转换为数字

                + 普通对象转换为字符串结果都是"[object Object]"

                + 数组对象转换为字符串结果是:用逗号分隔数组中的每一项

                        + [ ] -> ' '

                        + [10] -> '10'

                        + [10,20] -> '10,20'

                + 正则或者函数转换为字符串和原始值看到的内容类似

                + 其余对象格式基本上都会变为数字NaN

        + 函数转换为数字,结果都是NaN

number数据类型详细解读:

2.parseInt

3.parseFloat(比parseInt多识别一个小数点)

处理过程: parseInt / parseFloat,也是把其他数据类型转换为number类型的

处理过程:首先把[value]值变为字符串,其次从最左边开始查找,把找到的有效数字字符转为数字,一直遇到一个非有效数字字符为止,则结束查找

+ Number(true) -> 1

+ parseInt(true) -> NaN

二. 字符串 string

在JS中间 单引号 双引号 反引号 包起来的都是字符串

1.把其他数据类型转换为字符串类型(两种方式)

        + String([value])

        + [value].toString()

2.普通对象转换为字符串都是"[object Object]"(也就是"普通对象本身"),数组对象转换为字符串是"第一项,第二项..." (逗号分隔数组中的每一项)

3.在JS中常用的数学运算( + - * / %)

   注意:1) / 的时候会把位数都打印出来 比如:8/3=2.6666666666666665

   注意:2)除了加法以外,其余的情况都是数学运算(如果遇到非数字类型,需要基于Number把其强制转换为数字类型,然后在进行运算);

   注意:3)加号在JS中既有数学运算,也有字符串拼接的意思(只要加号两边的任意一边出现字符串,则变为字符串拼接-----如果加的是一个对象,其实最后也是字符串拼接,因为对象转换为数字,是先转换为字符串的)

4.字符串拼接:

4.1传统字符串拼接:

4.2ES6模板字符串:

目的:就是为了解决传统字符串拼接中的问题(使用反引号 tab键上面的键),$[ ]中存放变量;或者其它的JS表达式即可,很简单的完成字符串判断 

三.布尔 boolean 

1.如何把其他数据类型转换成布尔类型

1.1 Boolean([value])

1.2  ![value] 把指定的值转换为布尔类型后取反

1.3  !![value] 取反再取反,相当于没有取反,只是把它转换为布尔类型值

       !!规则:只有"0/null/NaN/undefined/空字符串",五个值结果是false,其余的都是true

 1.4 条件判断中,每一个条件最后一定是true/false

 1.5 写一个值,也要把这个值转换为布尔,然后校验程序的真假

四.空对象指针 null

五.未定义 undefined

六.ES6新增的唯一值类型 symbol

   

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

18年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值