3. JS中常用的数据类型

基本数据类型

  • 数字Number

      	常规数字和NaN
    
  • 字符串String

      	所有用单引号,双引号,反引号(反引字符串)包起来的
    
  • 布尔Boolean

      	True/False
    
    • 空对象指针Null
    • 未定义undefined
  • 引用数据类型
    • 对象数据类型 object
      • {} 普通对象
      • [] 数组对象
      • /1?[1-9]$/ 正则表达式
      • Math 数学函数对象
      • Data 日期对象
    • 函数数据类型 function

3.1数字类型

包含:常规数字,NaN

3.11NaN

NaN:not a number(不是一个数字,但是确实是一个数字类型。)
NaN和任何值(包括自己)都不相等。

3.12 is NaN

检测一个值是否为非有效数字。

使用语句: isNaN([val])
例如: 
alter(isNaN(10));->false
alter(isNaN('AAA'));->true

tips:isNaN在检测一个值时,会先把一个值转变为number类型的,在进行判断是否为数字。

例子1:
alter(isNaN('10'));->false       
具体的转化步骤:
1.number('10') => 10;
2.isNaN(10) => false;
例子2:
alter(isNaN('AAA'));->true       
具体的转化步骤:
1.number('AAA') => NaN;
2.isNaN(NaN) => true;	 
3.13把其他类型的值转化为数字
number()
parseInt()
parseFloat()
要注意的是number和parseInt()、parseFloat()走的不是一个机制。number()是底层机制,parseInt()、parseFloat()是方法。
  • number([val])

1.把字符串转化为数字,只要字符串中包含任何一个非有效数字字符(一个小数点除外),即为NaN。空字符串会变为数字0.

布尔转化为数字:

number(true)=>1

number(false)=>0

Null转为数字:

number(Null)=>0

undefined转为数字:

number(undefined)=>NaN

2.把引用数据类型转换为数字,是先用string()方法转为字符串,再用number.

举例:

number({name:“xxx”})=>NaN

number({})=>NaN

number([])=>0(数组为空,空为0)

number({[10])=>10(数组里的是数字)

number({[10,23])=>NaN(因为有,)

3.如果想把一个字符串里的数字取出来单独转化为数字,可用以下两种方法:

parseInt([val])=>(这个是取其中的整数部分)
parseFloat([val],[进制])=>(这个是取其中的浮点数部分) (其中进制可不写)

parseInt/parseFloat( [val], [进制]):两个转换为数字的方法,对于字符串来
说,它是从左到右依次查找有效数字字符,直到遇到非有效数字字符,停止查找(不
管后面是否还有数字,都不在找了),把找到的当做数字返回。

例如
	let str = "12.5px";
	alert(parseInt(str));=>12
	alert(parseFloat(str));=>12.5
	alert(parseFloat("widt:12.5px"));=>NaN(因为查找的第一个字符是w,w不是有效字符,所以停止查找,返回NaN)

3.2字符串数据类型

所有用单引号,双引号,反引号包起来的都是字符串

3.21 把其他类型转化为字符串

  • [val].toString()

  • 字符串拼接

    具体使用:
    (true).tostring();=> “true”

    • Null与undefined禁止使用。

    • 在用数字转为字符串时要用变量。例如:

    • a = 12;

      a.tostring();=> “12”

    • 12.tostring(); 是错误的。

总结:一般来说,转为字符串就是在数据外加一层双引号,除了null,undefined,{name:xx}这三种情况。

3.22 字符串的拼接

四则运算法则中,除加法外都是数学计算,只有加法可能存在字符串拼接。(即,一旦遇到字符串则不是加法运算,而是字符串拼接)。

let a = 10 + null + true + [] + undefined + '珠峰’ + null + [] + 10 + false;
10+null->10+0->10
10+true->10+1->11
11+[1.->11+-> '11' 空数组变为数字,先要经历变为空字串.遇到字符串,啥都别想了,直接变为字符串拼接
'11' + undefined -> ' 11undefined '
 ...
 
结果:'1lundefined珠峰null10false'
console.log(a);

3.3Null和undefined

Null和undefined都是代表没有

Null代表的是意料之中(一般都是开始不知道值,我们手动先设置为null,后期再给予赋值操作,也就是已知数据类型 )
一般最好用null作为初始的空值,因为其他的数字或者其他类型不是空值,在栈内存中有自己的存储空间

undefined代表的是意外之外。也就是一个没有赋值的变量。(即没有定义数据类型)

引用数据类型

  • 数组
  • object

3.4 object-普通对象

{[key]:[value],…} 任何一个对象都是由零到多组键值对(属性名:属性值)组成的。属性名不能重复


  1. =- ↩︎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值