有学有练才叫学习:学而不思则罔,思而不学则殆:学而不习,纸上谈兵,习而不进,画地为牢!

js 中的六大数据类型

javascript cat 11个月前 (11-11) 40次浏览 已收录 0个评论 扫描二维码

基本数据类型(简单数据类型)Number(数字) String(字符串) Boolean(布尔值) Null(空) Undefined(未定义)

引用数据类型(复杂数据类型)Object(对象)

数据类型的判断

格式:typeof(参数) 或者 typeof 参数

作用:返回六个字符串,表示参数的数据类型

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) 'object' 'function'

1、number

// 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和谁都不相等,包括它自己

2、string

// 字符串:单双引号引着的零个或多个字符

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)); // 好

3、boolean

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 {
//     假就做这里
// }

4、null和undefined

// 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的区别?

undefined:未初始化,访问一个空变量返回的值,声明变量但是未赋值

null:空,访问一个空对象返回的值,声明变量赋值但是值为空

5、引用类型

// 对象:大括号包着的无序的名值对
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'

 

 

喜欢 (0)
cat
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址