JavaScript数据类型介绍

js编译器在解析代码的时候,会产生各种不同的数据。 而不同的数据’运算’与’存储’方式都不同, 计算机需要对这些数据进行分类,称之为数据类型。

数据类型介绍

numder 数字类型
string 字符串型
boolean 布尔型
undefined 未定义型
null 空类型

引用数据类型(复杂数量类型)

object 对象
function 函数
array 数组

数字类型(numder)

数字类型可以是: 整数, 小数, 正数. 负数,小数等

 console.log(123) //整数,默认正整数
 console.log(-123) //负数
 console.log(9.9) //小数
 console.log(Infinity) //特殊数值,无穷大

字符串类型(string)

单引号(’ '), 双引号(" "), 反引号(``)包裹的数据叫字符串

字符串拼接: 就是字符串加字符串

模板字符串: 内容拼接变量时,用 ${} 包住变量, 能够换行

注意事项:

无论单引号或是双引号必须成对使用

单引号/双引号可以互相嵌套,但是不以自已嵌套自已(口诀:外双内单,或者外单内双)

必要时可以使用转义符 \,输出单引号或双引号

console.log("程序员")
console.log(`颜值担当`)
console.log('我"爱"前端')//嵌套字符串
let res = '10' + '20'//'10' + '20'
console.log( res )//'1020'

布尔类型(Boolean)

它有两个固定的值 true 和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)
用于条件判断 true:条件成立 false:条件不成立

 console.log(true)
  console.log(false)

未定义类型(undefined)

未定义是比较特殊的类型,只有一个值 undefined。
只声明变量,不赋值的情况下,变量的默认值为 undefined

例如: let age; console.log(age); // 打印undefined

在这里插入图片描述

空类型(null)

null 表示 值为 空
null 和 undefined 区别:
undefined 表示没有赋值
null 表示赋值了,但是内容为空

数据类型总结

  1. (string) 字符串类型 ,用引号, 双引号, 反引号,包裹数据,例如: 数字, 特殊符号, 汉字. 反引号可以识别换行.(字体对应黑色)
  2. (number) 数字类型 包裹: 数字, 小数 不写引号 (字体对应蓝色)
  3. (boolean) 布尔类型 : 只有两个值: true(表示真的)和false(表示假的),(没有引号),(字体对应蓝色).
  4. (undfined) 未定义类型 : 只有一个值,还没有定义的意思,表示期房还没开始建设,什么都没有, (字体灰色)
  5. (null) 空类型, 只有一个值,定义值是空,表示毛坯房,还没装修,只有结构,空的. (字体灰色)

数据类型转换

转换为number类型

 其他数据类型 转 Number
        parseInt() : 转换整数
        parseFloat() :转换小数
        Number() : 其他数据类型转数字 (boolean,undefined,null)

注意点: 数据类型转换并没有改变原有变量的值,而是产生一个新的值

parseInt() : 转换整数

从左往右依次解析字符,遇到非数字字符停止解析,并且返回解析好的整数
let str = '10';
let num = parseInt(str);
console.log(num);// 10
console.log(str);// '10'   类型转换不改变原有变量的值,而是产生一个新的值
console.log(parseInt('123.1.1a'));//123

parseFloat() : 转换小数

规则与parseInt一致,唯一的区别就是可以识别第一个小数点
let str = '5';
let num = parseFloat(str);
console.log(num);
console.log(parseFloat('123.1.1a'));//123.1

Number() : 其他数据类型转数字

可以解析整数和小数
只要有任意非数字字符得到NaN
console.log(Number('6'));
console.log(Number('6.6'));
console.log(Number('123.1.a'));

布尔类型转数字会得到0 false和1 true

console.log(Number(true));//1
console.log(Number(false));//0
console.log(Number(undefined));//NaN
console.log(Number(null));//0      

number类型特殊值NaN

NaN是number类型中一个特殊值
not a number:不是一个数字,表示错误的运算结果

console.log('张三'-100)//NaN
console.log( Number('程序员') )//NaN

NaN不能参与任何计算,结果一律为NaN
NaN实际场景: 开发中,一般不会接触到NaN,除非代码出bug了,数学计算出错
let num
console.log( num + 1 )忘记给num赋值,导致undefined 与 1 相加得到NaN    

转换为string类型

let num = 200
String(数据)
console.log( String(num) )//'200'
console.log( String(true) )//'true'
console.log( String(undefined) )//'undefined'
console.log( String(null) )//'null'

变量名.toString()
如果是undefined与null,这种方式会报错 
这种方式可以支持进制转换。 例如把 十进制转十六进制
console.log( num.toString() )//'200'
console.log( num.toString(16) )//'c8'

转换为boolean类型

Boolean(数据)

1.false: 有7种数据会得到false
0 -0 NaN  ''  undefined  null  false

2.true:  除false 7种之外的一切数据都为true  

console.log( Boolean(0) )//false
console.log( Boolean(-0) )//false
console.log( Boolean(NaN) )//false
console.log( Boolean('') )//false
console.log( Boolean(undefined) )//false
console.log( Boolean(null) )//false
console.log( Boolean(false) )//false

隐式转换

当运算符两边的 ‘数据类型不一致’ 的时候,编译器会转成一致后运算
(1)转换数字 : 算术运算符 + - * / %
(2)转换字符串 : 连接符+ (+号两边只要有一边是字符串,此时+就是连接符)
(3)转换布尔: 逻辑非 !

   1.转换数字 : 算术运算符
   console.log( '100' - 10 )//90  Number('100') - 10
   console.log( 1 + true )//2  1 + Number(true)
   console.log( +'10' )//10  +数学正号 Number(10)  
   
   2.转换字符串 : 连接符
   console.log( '1' + true )//'1true'  '1' + String('true')

   3.转换布尔 : !
   console.log( !1 )//false   !Boolean(1)
   console.log( !undefined )//true   !Boolean(undefined)   

undefined与null区别

undefined : 未定义。 当变量只声明,但是没有赋值。此时默认值是undefined
大白话 : undefined相当于期房。 买了房,但是房子还没建出来。(未定义)
null : 有定义。 定义的值是空值。
大白话 : null相当于毛坯房。买了房,但是房子没住人,里面是空的。(空值)

  相同点 : (1)值相等 (2)转布尔类型都是false
    console.log( undefined == null )//true
    console.log( Boolean(undefined) )//false
    console.log( Boolean(null) )//false
   不同点 : (1)数据类型不同  (2)转number类型值不同
    console.log( undefined === null )//false
    console.log( Number(undefined) )//NaN
    console.log( Number(null) )//0  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值