基本数据类型 Number

这篇博客介绍了JavaScript中的基本数据类型,重点讲解了Number类型,包括NaN的特性、如何判断非数字以及各种类型转换为Number的方法。同时,也提到了String和Boolean类型的转换规则,以及null和undefined的区别。
摘要由CSDN通过智能技术生成

数据类型

基本数据类型

1、数字number—常规数字和NaN
2、布尔Boolean
3、字符串String
4、空对象指针null
6、未定义undefined

引用数据类型

1、对象数据类型 Object
普通对象{}
数组对象[]
math对象
date对象
正则对象/^ {6,16}$/
类数组对象
2、函数数据类型function

常用浏览器内核
webkit
gecko
presto
trident

number数据类型

number数据类型包含:常规数字和NaN
NaN—Not a Number:不是一个数但是是一个数字类型
NaN和任何值(包括自己)都不相等NaN !==NaN 不能用相等的方式判断一个数是否为有效数字。

isNaN

检测一个值是否为非有效数字,如果为非有效数字返回true ,否则是有效数字返回false。(是数字返回false,不是返回true)

 console.log(isNaN(10));//输出false
 console.log(isNaN('aa'));//输出true
 console.log(isNaN('10'));//输出false

注意:使用isNaN进行检测时,首先会验证测试的值是否是数字类型,如果不是则调用Number()方法,把值转换为数字类型,然后再检测。
Number(‘10’); //输出10 isNaN(10)//输出false

字符串转换为数字类型

把字符串转换为数字,只要字符串中包含非有效数字类型字符(第一个小数点除外)输出的结果都是NaN,空字符串则输出0

		console.log(Number('1.1'));
		console.log(Number('12.5.5'));
		console.log(Number('12.5pp'));
		console.log(Number(''));

在这里插入图片描述

数组转换为数字类型

数字对象转换为数字类型,首先先将数组里的元素转换成字符串再调用Number方法判断字符串里的是否为数字,对于字符串,从左到右依次查找有效的数字字符,知道遇到非数字字符,停止查找,不论之后是否还有数字返回NaN

      console.log(Number([12]));
	  console.log(Number([12,13]));

在这里插入图片描述
2. parseInt/parseFloat([value],[进制]):转换为数字类型的两个方法,[value],先转换成字符串,对于字符串,从左到右依次查找有效的数字字符,知道遇到非数字字符,停止查找,不论之后是否还有数字,最后把找的数字字符当做数字返回。

	 console.log(parseFloat([12,13]));//输出12
     console.log(parseInt([12,13]));//输出12
布尔类型转换为数字类型
		console.log(Number(true));
		console.log(Number(false));
        console.log(isNaN(false));

在这里插入图片描述
把引用数据类型转换为数字,是先把基于toString方法转换为字符串,然后再转换为数字。

null和undefined转换为数字类型
	console.log(Number(null));    
    console.log(Number(undefined));

在这里插入图片描述

String字符串数据类型

所有用单引号、双引号、反引号(撇 ES6模板字符串)包起来的都是字符串

把其他类型转换为字符串

1、[val].toString();

let a=12;
console.log(a.toString());//输出 '12'
console.log((NaN).toString());//输出'NaN'

注意:

  • null和undefined是禁止直接toString的
  • 普通对象.toString()的结果是"[Object Object]"
console.log(({name:'ddd'}).toString());//输出[object Object]

2、字符串拼接
四则运算法则中,除了加法之外,其余都是数学计算,只有加法可能存在字符串拼接,一但字符串遇到加法,则不是数学运算而是字符串拼接。
在这里插入图片描述

Boolean布尔数据类型

只有0、NaN、’ '、null、undefined 五个值转换为false,其余都转换为true(而且没有任何的特殊情况 )

    console.log(Boolean(0));
    console.log(Boolean(''));
    console.log(Boolean(' '));
    console.log(Boolean(null));
    console.log(Boolean(undefined));
    console.log(Boolean([]));
    console.log(Boolean([12]));

在这里插入图片描述

取反
  • !:取反(先转换为布尔类型再取反)
  • !!:取反再取反,相当于转换为布尔<=>Boolean
  • 条件判断时,如果条件只是一个值,不是==/===/!= 等等的比较条件,是要把这个值先转换为布尔类型,然后验证真假。
	  if(1){
			  console.log("hello");//值为true输出hello
		  }
		  if('12px'+5){
			  //=>'12px5'
			  console.log("world");//值为true输出world
		  }
		  if('12px'-5){
			  //=>NaN-5 =>NaN
			  console.log("!!");//值为false不输出
		  }

在这里插入图片描述

null/undefined的区别

null和undefined都代表的是没有

  • undefined:意料之外(不是我能决定的)
 let num;//创建一个变量没有赋值,默认值是undefined
 ....
 num=12; //之后可以赋值也可以不赋值 
  • unll:意料之中(一开始不知道值,手动设置为null
    ,后期再给赋值操作)
let num=null;//let num=0;  一般最好用null作为初始的空值,因为0不是空值,它在栈内存中有自己的存储空间。
....
num=12;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值