JavaScript中的数据类型分为基本数据类型和引用数据类型。
基本数据类型: number、boolean、undefined、null、string;
引用数据类型: Object(Array,Function, Object, Date等)
一、基本数据类型
基本数据类型主要分为:
number类型、boolean类型、undefined类型、string类型、null类型。
number类型
<!-- number类型 -->
<!-- number类型,即数值类型, 包含:整数型、浮点型、NaN(not a number)和Infinity(正负无穷大) -->
<script>
//整数类型
var age = 18;
console.log(age);
console.log(typeof (age));
// 浮点型
var price = 3.21;
console.log(price);
console.log(typeof (price));
// 注意:因为小数的存储特点,两个小数做运算,得到的结果未必精确。
var p1 = 0.1;
var p2 = 0.2;
p3 = p1 + p2;
p4 = p1 + p2;
console.log(p3);
/*
解决方案:
toFixed(1)保留一位小数,返回的是字符串类型
需要使用parseFloat转成浮点数类型
parseFloat((0.1+0.2).toFixed(1))
*/
// +-Infinity正无穷大和负无穷大
var max=1/0;
console.log(max);
console.log(typeof (max));
var min=-1/0;
console.log(min);
console.log(typeof (min));
// NaN全称: NOT A NUMBER。
// 我们可以通过isNaN()函数来判断某个变量是否为NaN,例如:如果value是NaN,则isNaN //(value)返回的结果是true;如果value不是NaN,则isNaN(value)返回的结果是false。
var num=parseFloat("123abc");
// Number(value), 此处是把字符串转化为number类型
console.log(num); // 输出: NaN
console.log(typeof(num)); // 输出: number
console.log(isNaN(num));// 输出: true, 判断num是不是NaN类型
结果如下:
boolean类型
<script>
/* boolean: 布尔类型,布尔类型只有两个值:true 和 false
true: 表示为真或条件成立
false: 表示为假或条件不成立
boolean类型常用于条件判断中,如果条件成立,则返回true;条件不成立,则返回false
*/
var k1=1;
var k2=2;
k3=k2>k1;
k4=k2<k1;
console.log(k3); // true
console.log(typeof(k3));// boolean
console.log(k4); // false
console.log(typeof(k4));// boolean
</script>
undefined类型
<script>
/* undefined类型只有一个值,就是undefined
表示只声明但未赋值的变量。
*/
var hi;
console.log(hi); // 输出: undefined
console.log(typeof(hi)); // 输出: undefined
</script>
string类型
<script>
/* string类型就是字符串,在JavaScript语言中,使用单引号或双引号包裹的内容,我们都称之为字符串。 */
var str='Hello how are you?';
console.log(str);// 输出:Hello how are you?
console.log(typeof(str));// 输出:string
// 字符串简单使用:字符串的拼接,可以用“+”来做拼接。
var str1 = "Hello";
var str2 = " World!";
var str3 = str1 + str2;
console.log(str3); // 输出:"Hello Word!"
</script>
null类型
<script>
// null类型只有一个值,就是null,从逻辑角度看,null值表示一个空对象指针。
var obj = null;
console.log(obj); // 输出:null
console.log(typeof obj); // 输出:object
/* 因为null表示的是一个空对象的指针,所以使用typeof操作符检测null会返回object的原因。
本质上这是一个bug,因为当初设计JavaScript这门语言的时候比较仓促,后来发现的时候已经好多开发者在使用了,如果修改这个bug对原有项目的代码改动极大,所以就只能将错就错了。
*/
</script>