js 面向对象学习1 数据类型

                    ECMAScript基础

    1原始值和引用值:

       primitive value 是储存在stack中的简单数据段,也就是说他们的值直接储存在变量储存的位置。

reference value 是储存在heap 中的对象,也就是说储存在变量处得是一个(指针 point),指向储存对象的内存地址。

为变量赋值时ecmascript会自动判断是原始类型还是引用类型,要实现这一点,解释程序要该值是不是ecmascript 的原始类型之一,Undefined,Null ,Nubmer,Boolean,String,由于这些原始类型占据的内存空间是固定的,所以可以将他们放在储存较小的内存地址stack 中,这样方便在内存中迅速寻找变量的值。如果值是引用类型则内存空间在heap 中分配。因为引用值的大小会改变所以不能把他们放在stack中,因为地址的大小是固定的所以要把引用类型的地址放在变量值中这样可以提高内存访问速度。

    2判断类型typeof

      ecmascript提供typeof运算符来判断某一个值是否在某种类型范围之内。可以用typeof判断一个值是否表示为一个原始类型,如果是原始类型还可以判断是那一种原始类型。

 

var str="this is jssrcipt";
console.log(typeof str);//string
console.log(typeof 30);//number

 undefined 如果变量是Undefined类型

 boolean 如果变量是Boolean类型

 number 如果变量是Number

 string 如果变量是string 类型

 object 如果变量是引用类型。

 

Undefine 类型 :

    Undefine 类型只有一个值 那就是undefine 值,当声明变量未初始化的时候它的默认值就是undefine

 

var und;
console.log(und); //undefine
console.log(und==undefine);//true

 注意: 值undefine 与undefine 是不一样的,但是typeof 不会真正的考虑两者的不同例如

var tmp 
console.log(typeof tmp); // undefined
console.log(typeof tmp1);//undefined
如果没有console.log(typeof tmp1)
而是直接console.log(tmp1==undefined)结果是error
应为tmp1 并没有赋值为undefined 

 当函数没有明确返回值的时候也为undefined

function testFun(){
  
}
console.log(testFun()==undefined); //true
 

Null类型:

   另外只有一个值的类型就是Null,它只有一个字面量null 值undefine实际是由null 派生而来 null==undefined 是true,

尽管两个值相等,但是他们的含义完全不同。undefine 是声明了变量但是没有初始化,null 则表示尚未存在的对象。

如果函数方法返回的是对象,那么找不到该对象就是null。

 

Boolean 类型:

   emcascript 中最常用的类型之一,他只有两个值 true,false,

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值