JS学习之路之-数据类型

JS中的数据类型的基础知识

  1. 基本数据类型(值类型):数宇number(常规数据和NaN)、宇符串string、布尔boolean、null、undefined
  2. 引用数据类型:object (数组、对象、正则…)、functionSymbol :唯一值

基本数据类型

number 数字类型

包含:常规的数字、NaN

NaN
  1. NaN它不是一个,但它属于数字类型
  2. NaN和任何值都不相等;NaN != NaN, 所以我们不能用相等的方式判断是否为有效数字
console.log('str' === NaN); // => false
console.log(10 === NaN); // => false
isNaN

检查一个值是否为非有效数字,如果不是有效数字返回trun;否则返回false

在使用isNaN进行检查的时候,首先回验证检测的值是否为数字类型,如果不是,先基于Number()这个方法,把值转为数字类型,然后再检测

console.log(isNaN('AA')); // => true
console.log(isNaN('10')); // 基于Number('10') => 10,isNaN(10) => false
console.log(isNaN(10)); // => false
把其他类型值转为数字类型
Number函数

把字符串转化为数字,只要字符串中包含任意一个非有效数字字符(第一个点除外)结果的都是NaN,但是空字符串回变成0。

console.log(Number('str')); // => NaN
console.log(Number('10.5')); // => 10.5
console.log(Number('10.5px')); // => NaN
console.log(Number('10.5.7')); // => NaN
console.log(Number('')); // => 0
// 布尔类型转数字类型
console.log(Number(true)); // => 1
console.log(Number(false)); // => 0
// null -> 0; undefined -> NaN
console.log(Number(null)); // => 0
console.log(Number(undefined)); // => NaN

把引用数据类型转换为数字,是先把它基于toString方法转化为字符串,然后在转化为数字

// ({}).toString() => "'[object Object]'" => NaN
console.log(Number({})); // => NaN
// [].toString() => "" => 0
console.log(Number([])); // => 0
console.log(Number([12])); // => 12
console.log(Number([12,23])); // => NaN
ParseInt函数 / ParseFloat函数

对于字符串来说,它是从左到右依次查找有效数字字符,直到遇到非有效数字字符,停止查找(不管后面是否还有数字,都不在找了),把找到的当作数字返回

let str = '12.5px';
console.log(parseInt(str)); // => 12
console.log(parseFloat(str)); // => 12.5
console.log(parseFloat('width: 12.5px')); // => NaN

String 字符串类型

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

把其他类型值转为字符串
toString()

普通对象.toString()的结果是"[object Object]",因为Object.prototype.toString方法不是转换字符串的,而是用来检测数据类型的

let a = 12
let obj = { name: "yu" };
console.log(a.toString()); // => "12"
console.log((NaN).toString()); // => "NaN"
console.log((true).toString()); // => "true"
console.log(obj.toString()); // => "[object Object]"
字符串拼接

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

console.log('10' + 10); // => 1010
console.log('10' - 10); // => 0
console.log('10px' - 10); // => NaN

Boolean 布尔类型

只有两个值:true/false

把其他类型值转换为布尔类型

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

Boolean()
console.log(Boolean(0)); // => false
console.log(Boolean(NaN)); // => false
console.log(Boolean('')); // => false
console.log(Boolean(null)); // => false
console.log(Boolean(undefined)); // => false
console.log(Boolean(' ')); // => true
console.log(Boolean([])); // => true
console.log(Boolean([12])); // => true
!/ !!

!:取反(先转为布尔,在取反)
!!: 取反再取反,只相当于 Boolean()

console.log(!1); // => false
console.log(!!1); // => true

null / undefined 类型

null和undefined都是代表的是没有

null

意料之中(一般都是开始不知道值,我们手动先设置为null,后期再赋值操作)

let num = null;
...
num = 10;
undefined

意料之外(不是能决定的)

let num; //=> 创建一个变量没有赋值,默认值是undefined

Object 引用数据类型

Object 对象数据类型-普通对象

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

数据是特殊的对象数据类型

[1,2,3,4…];默认一个属性名:length,存储数组的长度

函数数据类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值