基本数据类型(简单数据类型):Number(数字) String(字符串) Boolean(布尔值) Null(空) Undefined(未定义)
引用数据类型(复杂数据类型):Object(对象)
数据类型的判断
作用:返回六个字符串,表示参数的数据类型
typeof 参数: 返回'number',就证明这个参数是数字
typeof 参数: 返回'string',就证明这个参数是字符串
typeof 参数: 返回'boolean',就证明这个参数是布尔值
typeof 参数: 返回'undefined',就证明这个参数是undefined
typeof 参数: 返回'function',就证明这个参数是函数
typeof 参数: 返回'object',就证明这个参数是 null {} []
说明 | typeof的返回值 | |
---|---|---|
number | 正数、小数、负数0,无穷大,NaN、小数的舍入误差 | ‘number’ |
string | 单双引号引起的0个或多个字符,长度,下标,通过下标获取对应的字符 | ‘string’ |
boolean | true真 / false 假 | ‘boolean’ |
null | “空值”,代表一个空对象指针,使用 typeof 运算得到“object”,所以你可以认为它是一个特殊的对象值。 | ‘object’ |
undefined | 未定义,声明了未赋值,值为undefined | ‘undefined’ |
object | 对象({} [] function) |
// 1、整数、小数、负数都是数字
var a = 10;
var b = 3.14;
var c = -1;
console.log(a, typeof a); // 10 'number'
console.log(b, typeof b); // 3.14 'number'
console.log(c, typeof c); // -1 'number'
// 2、其它进制的数字(了解)
var d = 070; // 八进制基数范围 0~7,以 0 开头并且没有超过 8 的值,则为八进制
var e = 0x10; // 十六进制基数范围 0-9,A~F,0x 开头,则为十六进制
console.log(d, typeof d); // 56 'number'
console.log(e, typeof e); // 16 'number'
// 特殊数值
var f = 1 / 0; // Infinity
console.log(f, typeof f); // Infinity(无穷) 'number'
// 小数的舍入误差
var g = 0.1 + 0.2;
console.log(g, typeof g); // 0.30000000000000004 'number'
// NaN
var f = '小王' - 5; // 减法本意想得到一个数字,但是这里却得不到,只能给你一个NaN
console.log(f, typeof f); // NaN "number"
console.log(f == f); // false
// NaN: not a number (不是一个数字)
// 特点
// 1、凡是有NaN参与的运算,结果都是NaN
// 2、它不是一个数字,但是数字类型
// 3、NaN和谁都不相等,包括它自己
// 字符串:单双引号引着的零个或多个字符
var str1 = 'welcome';
var str2 = "小王你好";
var str3 = '';
var str4 = ' ';
var str5 = '10';
console.log(str1, typeof str1);
console.log(str5, typeof str5);
// -----------------------
// 长度: 字符串.length
// 从左向右,从1开始,一位一位的数
console.log(str1.length); // 7
console.log(str3.length); // 0
console.log(str4.length); // 3
console.log(str5.length); // 2
// --------------------------------
// 下标:从左向右,从0开始,一位一位的数
// 作用:根据下标,获取对应的字符
// 语法:字符串[下标] 字符串.charAt(下标)(了解)
console.log(str2[1]); // 王
console.log(str2.charAt(3)); // 好
true 真 / false 假
// 布尔值:true(真) / false(假)
var b1 = true;
console.log(b1, typeof b1); // true 'boolean'
var b2 = false;
console.log(b2, typeof b2); // false 'boolean'
// ---------------------------------
// if (小括号中最终是一个真假) {
// 真就做这里
// } else {
// 假就做这里
// }
// Null: 表示值为空
// Undefined: 变量没有初始化,值的空缺(未定义)
// 了解,不用深究:null是给它一个值,值为null。undefined是不给它值,则它的值为undefined
// 如果以后准备给一个变量赋为对象,但是现在还没有值,则给它赋为null
var n = null;
console.log(n, typeof n); // null 'object'
var u; // 当声明了一个变量,没有给它赋值,则它的值为undefined(未定义)
console.log(u, typeof u); // undefined 'undefined'
null和undefined的区别?
null:空,访问一个空对象返回的值,声明变量赋值但是值为空
// 对象:大括号包着的无序的名值对
var obj = {
name: 'zs',
age: 3,
sex: '男'
};
console.log(obj); // {name: 'zs', age: 3, sex: '男'}
console.log(typeof (obj)); // 'object'
// --------------------------------
// 数组:中括号包着的有序的元素
var arr = ['zs', 'ls', 'ww'];
console.log(arr); // ['zs', 'ls', 'ww']
console.log(typeof arr); // 'object'
// --------------------------------
// 函数
function fn() {
console.log('我是一个函数');
}
console.log(fn);
console.log(typeof fn); // 'function'