JavaScript 中数据类型
前言
js中数据类型分为两大类(栈数据和堆数据)
一、栈数据
它是不可改变的原始值(栈数据) 有number,string,boolean,undefined,null五个 已经放进去的值不可改变,只会改房间编号为null(这是硬盘原理)
原始值没有属性,但可以用临时包装器转换成对象,创建访问完立即丢弃,所以给原始值加属性不会出错,但不可在后面访问。Undefined,null例外,他们不能加属性。 var test=’文本’ colong.log(text.lenght) 在上面的示例中,要访问属性length,JavaScript发生临时包装过程将pet转换为包装器对象,访问完包装器对象的length属性,然后将其丢弃
1.number(数值型),包括二进制、八进制和十进制。
代码片
var n1 = 10;
var n2 = 012;
var n3 = 0xa;
2.string(字符串)
var a = “dzq”
3.Boolean(布尔型),只有两个值:true、false
4.undefined(未定义型),只有一个值undefined,代表一个空值,例如声明了变量未赋值。
5.null(空),只有一个值null,类型为object,因为最早是代替空对象的。 var num = null;console.log(typeof(num)); 返回object
二、堆数据(引用值)
大致上放堆heap里面。 有array,object,function,data,regexp正则几个类型
其中,js中数组底层是由对象构造。 所以数组用typeof()方法 var num = [ ];console.log(typeof(num)); 返回object
在这里介绍typeof()方法 typeof 能返回的六种数据类型(区分数字类型) number、string、boolean、undefined、object、function
例 :var num = [];console.log(typeof(num)); 返回object typeof(null) 返回 object
注意:typeof 操作符,返回值是字符串。 typeof(typeof(123))=string
//一般如果定量没定义就直接访问,就 会a is not defined 报错; 有一种特殊情况,当且仅当把未定义的变量放console.log(typeof(a));里面就访问,不报错,返回 undefined
|