1数据类型
基本数据类型(值类型):Number (数字) String (字符串) Symbol(唯一值) Boolean(布尔值) null(空) undefined(未定义) bigint(大数字)
引用数据类型:object(对象 基类) 包含(object) Array function Date Regexp
2 数据类型判断(方法和示例)
- typeof 一般用来判断基本数据类型 不能判断引用数据类型 会之间返回小写的字符串数据类型
特殊 typeof null ===> “object”
typeof 只能判断基本数据类型(null==>object);
判断引用数据类型 都返回object
示例
console.log(typeof 100 );//number
console.log(typeof null);//object
console.log(typeof true);//boolean
console.log(typeof "1111");//string
2instanceof 语法: (要判断的数据类型) instanceof [Array/Object/Function]
返回值是true false
console.log(100 instanceof Number)//false
console.log(false instanceof Boolean,)//false
console.log(null instanceof Object)//false
console.log(function(){console.log('aaa');} instanceof Function)//true
3constructor 构造函数 要判断的数据类型.constructor === Array
console.log(new Number(123).constructor)
//ƒ Number() { [native code] }
4Object.prototype.toString.call(要判断的数据类型) 返回值 “[object 数据类型]”
var totype = Object.prototype.toString;
totype.call(123); //"[object Number]"
totype.call('abcdef'); //"[object String]"
totype.call(true); //"[object Boolean]"
totype.call([1, 2, 3, 4]); //"[object Array]"
totype.call({name:'wenzi', age:25}); //"[object Object]"
totype.call(function(){ console.log('this is function'); }); //"[object Function]"
5 jQuery.type(要判断的数据类型) 最全的数据类型判断 ==> “string” “number” “object”
jQuery.type( undefined ) === "undefined"
jQuery.type( 3 ) === "number"
jQuery.type( "test" ) === "string"
jQuery.type( function(){} ) === "function"
jQuery.type( [] ) === "array"
3 基本数据类型和引用数据类型的区别
基本数据类型是原始值,直接存贮在栈内存中,引用数据类型,他的值是在堆内存中开辟了一块新的内存空间,我们通过变量来复制一个引用数据类型的时候其实只是把这个开辟的内存空间的地址进行了一个赋值
堆与栈的区别:
栈内存
1栈存储(值类型): 主要针对(Number、String、Boolean)三种数据。直接存储在栈(stack)中,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储。
2 引用类型堆栈存储: 主要针对Object、Array这两种引用数据以及null, 同时存储在栈(stack)和堆(heap)中,占据空间大、大小不固定。引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体