工作生活

JS数据类型和转换

2019-06-29  本文已影响0人  Nadalism

JS数据类型

先言简意赅,JS一共一共只有7种数据类型,分别是
Number,String,Boolean,Symbol,null,undefined,Object(对象)
是的你没看错,null和undefined是数据类型,且这个数据类型只有一个值,就是本身2333

1 === 1.0//true

由于浮点数不是精确的值,所以设计小数的运算会有一些奇葩的现象

0.1 + 0.2 === 0.3//false
0.3 / 0.1 //2.99999999999

js能表示的数值范围为21024到2-1023

var s = '123456
             7890'//直接报错
var s = '123456\
             7890'//可以,但不推荐,因为若反斜杠后面多打了空格,反斜杠会和第一个空格匹配,转义成空格,就不存在哪个反斜杠符号了
var s = '12345'+
            '67890'//好读的语法,推荐
若就是想打有多行的字符串呢
可以用ES6的新语法
var s = `12345
            67890`
//打印出来就是12345
                        67890
//这个语法类似于Python里的``` ```

  1. 若一个变量没有值——undefined
  2. 有个对象object,现在不想赋值——null var obj = null
    有一个非对象,不想赋值——undefined var n = undefined
  1. 要记住:对象即哈希
var person = {name:"Jack',age:22}
person.age ===22
person["age"] ===22
person[age]//报错!

只有字符串才能做对象的key,js是自动把所有的key都转化成了字符串了
若我们自己定义的时候不加引号,则key要符合标识符规范,若加了引号可以随意

delete person.name//删除了key和value
person.name = undefined//只删除了value

JS数据类型转换

数据类型转换一般来说只有三个是有意义的

  1. 其它数据类型转成String
  2. 其它数据类型转成Number
  3. 其它数据类型转成Boolean

其它数据类型转成String

  1. 调用toString()方法
    但是注意null和undefined调用会报错
(11).toString()//'11'
true.toString()//'true'
null.toString()//报错
undefined.toString()//报错
{}.toString//"[object Object]"
  1. 调用全局函数String()
    这个函数厉害,null和undefined扔进去也不会报错
String(11)//'11'
String(undefined)//'undefined'
  1. 最常用的一种:加上一个空字符串
1 + ''//'1'
null + ''//'null'

原理其实是加号两边出现了非String类型时,系统会自动地调用String()函数来转化

其它数据类型转成Number

  1. parseInt和parseFloat
parseInt("   222   3")//222
parseFloat("  22.33a  4")//22.33

parseInt和parseFloat强大之处在于从能parse的地方开始parse到不能parse为止

  1. Number()
Number("  111   ")//111
Number("  11 aa")//NaN

Number的不足之处就在于字符串里出现非空格和数字的字符时就不好使了,直接返回NaN

    • 0大法
'1' - 0//1
    • 大法
+ '1'//1
+ " 11.23 "/11.23

总结:这4种方法都能自动过滤字符串前后的空格,但只有parseInt和parseFloat能稍微处理奇怪的字符

其它数据类型转成Boolean

先记住js里只有5个falsy值:null,0,'',undefined,NaN!!
任何对象包括{}空对象都是true的!!

  1. Boolean()
  2. !!大法(推荐)
!!"333"//true
!!3//true
!!{}//true
上一篇下一篇

猜你喜欢

热点阅读