这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战
基本数据类型
基本数据类型也称简单数据类型,是简单的数据段,有以下五种:string、number、undefined、boolean、null。
String
-
字符串是一段字符,它可以被单引号''或者双引号""包裹着。
-
可以使用typeof字段来判断变量是否为字符串类型
let str = '游牧民族';
- toString()方法可以将number类型、布尔类型转化成字符串,如下所示:
let num = 12138;
num.toString() // 返回 string 类型的 '12138'
let flag = false;
flag.toString() // 返回 string 类型的 false
Number
- number类型,只有数字才能是number类型;加了双引号或者单引号的数字就不是了,它是属于字符串类型。
let num = 12138;
- Number()可以将布尔值、数字字符串转成number类型
Number(true) // 1
Number(false) // 0
Number('12138') // 12138
Number(undefined) // NaN
- number类型中有个一个特殊的属性:NaN;它可以表示某个值不是一个数字,这个特殊的值是因为不能运算而导致出现的;它不等任何值,包括它自己;虽然它是不是一个数字,但它还属于number类型。
let a = 12/'yuanfen';
NaN === NaN // false
用number类型12去除以一个字符串类型'yuanfen',所得到的值就是一个NaN;这时就尴尬了,虽然知道它是一个NaN,那我要怎么通过代码来得知它是一个NaN呢,用类型判断,他又是一个number类型;牛逼哄哄大大佬就给出了一个方法,让我们可以来指出它就是NaN;这个方法就是isNaN();
- isNaN()可以用来检测当前的值是不是有效数值,返回true的话就证明当前的值不是有效数值,否则反之;
isNaN(12138) // false
isNaN(true) // false
isNaN(false) // false
isNaN(null) // false
isNaN(undefined) // true
Undefined
- 用于表示没有定义的值;在javaScript中,声明了一个变量,但是没有给它赋值,此时的这个变量它就是一个undefined;
var a;
console.log(a) // undefined
- 有一种类似的情况,就是在日常代码中,没有声明就直接使用一个变量,浏览器就会抛出一个异常:no defined;这种情况和上面的情况是完全不同的概念;一个是有声明但是没有赋值而已,一个是连声明都没有。
conosle.log(b) // no defined 这里没有声明,直接log
Null
- null是一个只有一个值的数据类型,这个特殊的值就null本身自己。若是用typeof来判断null到底是个什么类型,结果将有点出乎意料,因为它返回的是一个Object;因为null也可以表示一个空对象指针。
typeof(null) // object
Boolean
- boolean值中只有两个值:true或者false,没有其他的了。
- Boolean()能将0、NaN、''、null、undefined这五个值转化成false,其他的转化都是true。
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false
Boolean(' ') // true 里面有空格
Boolean(null) // false
Boolean(undefined) // false
Boolean('1') // true
Boolean(12) // true
存放的地方
- 当我们调用一个方法,方法运行起来后会产生一个内存栈,每个变量都会在这个栈里开辟一块适合自己大小的内存来存放自己;随着方法的结束,内存栈就会被释放,所有变量也都会被清除掉。
- 当我们把一个基本变量的值分别赋值给另外两个变量,两个变量他们无论怎么修改本身的值,都不会对对方和原来的赋值给他们的变量产生影响。
let a = 1;
let b = a; // 1
let c = a; // 1
b = 2 ;
c = 3;
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3