美文网首页工作生活
JS数据类型和转换

JS数据类型和转换

作者: Nadalism | 来源:发表于2019-06-29 17:15 被阅读0次

JS数据类型

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

  • Number
    JS里是没有int和float和double的区别的,Number即代表任何数字。
    因为JS内部,所有数字都是以64位浮点数存储,即使整数也如此,所以11.0是相同的,一样样的

1 === 1.0//true

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

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

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

  • String
    String就是一串字符串
    其中字符串分多行打需要格外注意

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

  • null和undefined的区别
    区别有两点:
  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

  • Boolean
    就是true和false
  • Symbol
    是ES6的新数据类型,在这里不做讨论

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

相关文章

  • 2、强制数据类型转换

    数据类型转换: 在js中,数据类型的转换有两种,分别是自动转换和强制转换 自动转换: 自动转换是用JS进行某些操作...

  • JS里的数据类型转换

    在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换。 1, 显式数据类型转换 a:转数字: 1)Numb...

  • JavaScript的显式转换和隐式转换

    js的显式转换和隐式转换都是数据类型的转换;js的数据类型是弱类型的,即可以给变量赋值为任意的数据类型,当进行运算...

  • 基本语法

    js的基本数据类型 类型转换 Global 和 Math

  • javaScript中数据类型转换方法

    JS 数据类型转换 方法主要有三种 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供了...

  • 数据类型转换

    JS 数据类型转换 方法主要有三种 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供了...

  • JavaScript类型转换

    在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用js弱变量类型转换)。 强制类型转换 即通过使...

  • JS隐式数据类型转换

    隐式数据类型转换介绍 前面有总结过 JS数据类型转换 Number(), toString(), parseInt...

  • JS的基本小结

    JS基本输出方式 JS数据类型 变量 常量 变量常量小练习 声明提前 隐式转换 显示转换/强制转换

  • JS数据类型转换(2)

    在上一篇的js数据类型转换(1)中,只考虑了基础数据类型之间的相互转换,未考虑对象和基础类型的转换,本篇做介绍。 ...

网友评论

    本文标题:JS数据类型和转换

    本文链接:https://www.haomeiwen.com/subject/mswpcctx.html