二、数据类型

JS中原始值一共有七种

Number 、BigInt、String、Boolean、Null、Undefined、Symbol

七种原始值是构成各种数据的基石
原始值在JS中是不可变的类型,一旦创建就不能修改
1. 数值(Number)

在JS中所有的整数和浮点数都是Number类型:
js中的数值并不是无限大的,当数值超过一定范围后会显示近似值
infinity是一个特殊的数值表示无穷
所以在JS中进行一些精度比较高的运算时要十分注意

还有一个特殊值叫NaN也属于Number类型,即Not a Number

以下都是Number类型:

let a = 10
        // 声明变量之后不可变,给a赋值即可
        a = 10.5
        a = 3.14
        a = 9999999999999999911111111111111111111
        a = 99999*99999
        a = Infinity    //类型检查返回number
        a = 1.11111111111111111111111111111111111111
        a = 0.0000000000000000000000000000000001
        a = 0.1 + 0.2
        a = 1 - "a" //返回NaN 
        a = NaN //返回NaN
  console.log(a)
  1. 大整数(BigInt)

大整数用来表示一些比较大的整数

其他进制的数字:
二进制 0b
八进制 0o
十六进制 0x
let a = 0b1010   //返回:10 ,虽然输入的是二进制,但是输出的时候都会以十进制的形式去显示
a = 0o10  // 返回:8
a = 0xff  //返回:255 (ff为十六进制)
console.log(a)
console.log(typeof a)

3. 类型检查

typeof 运算符

typeof用来检查不同的值的类型
它会根据不同的值返回不同的结果
let a = 10 // BigInt
        let b = 10n
        
        // console.log(a)
        // console.log(b)

        console.log(typeof a) //控制台返回:number
        console.log(typeof b) //控制台返回:bigint
  1. 字符串(String)

字符串(String)

在JS中使用单引号或双引号来表示字符串

转义字符
\" --> "
\' --> '
\\ --> \\
\t --> 制表符
\n --> 换行

模板字符串:使用反单引号`来表示模板字符串,模板字符串中可以嵌入变量

  • 使用typeof检查一个字符串时会返回 "string"

<script>
let a = 'hello'
      a = "你好"
      a = "这是一个\"字\\\\符串"    
      a = "呵呵\t哈哈哈"   
      a = "javascript学历记录\n字符串\n数值" 

    //   模板字符串
      a = "我真漂亮" 
      a = `我真漂亮`  
      console.log(a)
      console.log(typeof a)
     
      let name = "猪八戒"
      let str = `你好,${name}`
      console.log(str)
      console.log(typeof name) 
</script>

//建议读者自行试运行以上代码
5. 布尔值(boolean)

布尔值(boolean):布尔值主要用来进行逻辑判断,布尔值只有两个true和false

  • 使用type检查一个布尔值时会返回boolean

 let bool = true       
 bool = false 
 console.log(bool)
 console.log(typeof bool) //控制台输出:boolean
6. 空值(null)

空值(null):空值用来表示空对象,空值只有一个null

  • 使用typeof无法检查空值,使用typeof检查一个空值时会返回"object"

 let a = null
 console.log(a)
 console.log(typeof a) 
7. 未定义(Undefined)

未定义(Undefined):当声明一个变量而没有赋值时,它的值就是undefined。

Undefined类型的值只有一个就是undefined

  • 使用type检查一个Undefined类型的值时,就会返回"Undefined"

 let b = undefined
 console.log(typeof b) //控制台输出:undefined
8. 符号(Symbol)

符号(Symbol):用来创建一个唯一的标识

  • 使用typeof检查符号时返回"symbol"

let c = Symbol() //调用Symbol()创建了一个符号
console.log(c)
console.log(typeof c) 
9.类型转换

类型转换值将一种数据类型转换为其他类型或将其他类型转换为(字符串、数值和布尔值)

1.将其他类型转换为字符串:

(1)调用toString()方法将其他类型转换为字符串

由于null和undefiend中没有toString()
所以对这两个东西调用toString()时会报错
let a = 10   //转换成字符串为"10"
a = true  // 转换成字符串为"true"  
console.log(typeof a, a)  // 返回:number 10

a = a.toString()  
console.log(typeof a, a)  //返回:String 10

(2)调用String()函数将其他类型转换为字符串

let b = 33
String(b) 
b = String(b) 
console.log(typeof b, b)  //string33

2.将其他的数据类型转换为数值:

(1)使用Number()函数来将其他类型转换为数值

字符串:

  • 如果字符串是一个合法的数字,则会自定转换为对应的数字

  • 如果字符串不是合法数字,则转换为NaN

  • 如果字符串是空串或纯空格的字符串,则转换为0

布尔值:

  • true转换为1,false转换为0

  • null 转换为0

  • undefined 转换为 NaN

  let a = '123' 
        a = 'abc'   // number NaN
        a = '3.14654323'  // number 3.14654323
        a = '11px' //不合法数字---> number NaN
        a = ''  // 空串  ---> number 0
        a = '    '   // number 0

        // 布尔值
        a = true  // 1
        a = false  // 0

        a = null  //0
        a = undefined   //  NaN
        // console.log(typeof a, a) 

        a = Number(a)   
        // console.log(typeof a, a) 

专门用来将字符串转换为数值的两个方法

  • parseInt() ———— 将一个字符串转换为一个整数

解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的整数

  • 也可以使用parseInt()来对一个数字进行取整

  • parseFloat() ———— 将一个字符串转换为浮点数

解析时,会自左向右读取一个字符串,直到读取到字符串中所有的有效的小数

let b = '123' // String 123
        b = '124px' // 用Number()函数转的话转不了,但是可以用parseInt()函数转
        b = 'a256'  //返回 NaN,因为自左向右第一个字符串不是有效的整数,所以转不了
        b = 765  // 返回number 765,parseInt虽然是专门用来转字符串的,但是也可以把数字先转换成字符串再转换称数字
        b = 768.1234 //返回 number 768 ,parseInt可以用来取整
        console.log(typeof b,b)

        b = parseInt(b)  // number 123
        console.log(typeof b,b)

3.将其他类型转换为布尔值:

(1)使用Boolean()函数来将其他类型转换为布尔值

数字:

0 和 NaN转换为false, 其余是true

字符串:

  • 空串为false,其余是true

  • null和undefined都转换为false

  • 对象:对象会转换为true

所有表示空性的没有错误的值都会被转换为false:
0、NaN、空串、null、undeined、false

        let a = 1 //true
        a = 100 //true
        a = -1 // true
        a = 0  //false
        a = NaN  // false
        a = Infinity //true

        // 字符串
        a = 'abc'  //true
        a = 'true'  //true
        a = 'false'  //true
        a = ''  //  空串, false
        a = " "  //true

        a = null // false
        a = undefined  // false

        console.log(typeof a,a) 

        //使用Boolean函数
        a = Boolean(a) 
        console.log(typeof a, a)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值