变量类型及检测
Posted 纸 飞机
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了变量类型及检测相关的知识,希望对你有一定的参考价值。
基本数据类型(7个)
又称简单数据类型,在内存中以固定的大小存储在栈中,按值访问。
number 数值
var x1 = 34.00;
var x2 = 34;
var x3 = 123e5;
String 字符串
var a = 'hello';
var b = "world";
boolean 布尔值
var x = true;
var y = false;
null 空值
var person = null;
//Null类型的值只有一个,就是null,专门用来表示为一个空的对象
undefined 未定义
var b;
//Undefined类型的值只有一个,就是 undefined,表示未定义,即声明了未赋值
Symbol ES6新增,表示独一无二的值
let s1 = Symbol('foo');
let s2 = Symbol('foo');
s1 === s2// false
bigint ES10新增,表示任意精度的整数
//不受 Number类型的安全值范围的限制。生成一个 BigInt类型的值只需在任意整数后加上n做后缀,或通过全局函数Bigint(number)将 Number类型转化为Bigint类型。
console.log(BigInt(123) === 123n)//true
复杂数据类型(3个)
又称引用类型或对象类型。常见有array、 function、object等。存储在堆中,且大小不固定,同时在栈中会存储其指向堆地址的指针,按引用来访问。
Object 类型
var obj = new Object();
Array 类型
var arr = new Array();
Function 类型
function add(a,b)) return a+b;
var add = new Function("a","b","return a+b");
注意:
为了便于操作基本类型值,ECMAScript提供了3个特殊的引用类型(基本包装类型): Boolean、Number和String。它们不是new出来的,而是在读取基本类型值的时候,js自动创建的对应包装对象,其能够调用一些方法来操作基本类型。它们只存在于一行代码的执行瞬间,然后立即被销毁,所以不能在运行时为其添加属性和方法。
'1,2'.split();//["1,2"]
typeof 检测
typeof对于nul/和Array不起作用
console.log(typeof "");//string
console.log(typeof 1);//number
console.log(typeof true); //boolean
console.log(typeof null);//object
console.log(typeof undefined);//undefined
console.log(typeof []);//object
console.log(typeof Function());//function
console.log(typeof {});//object
console.log(typeof Symbol());//Symbol
instanceof 检测
console.log([] instanceof Array);//true
console.log({} instanceof Object);//true
console.log(Function() instanceof Function);//true
Object.prototype.toString.call() 检测
var a = Object.prototype.toString;
console.log(a.call("aaa"));//[object String]
console.log(a.call(1));//[object Number]
console.log(a.call(true));//[object Boolean]
console.log(a.call(null));//[object Null]
console.log(a.call(undefined));//[object Undefined]
console.log(a.call([]));//[object Array]
console.log(a.call(Function())); //[object Function]
console.log(a.call({}));//[object object]
以上为 “变量类型及检测” 的全部总结!
以上是关于变量类型及检测的主要内容,如果未能解决你的问题,请参考以下文章