javascript——数据类型

在内存中,分为栈、堆、代码段、静态区,为了快速处理复杂的代码,在不同的区间储存不同的数据类型。

数据类型分为初始类型与引用类型

初始类型在栈中存储,变量赋值传值不传址,引用类型在堆中存储值,栈中只存储地址,变量赋值传址不传值。对于传址和传值举个例子:

1.初始类型赋值传递:

var num=200;
var gert=num;
num=300;
console.log(gert)  //200
//只传值,num值的变化对gert没影响

  2.引用类型赋值传递:

  

var aa=[1,2];
var bb=aa;
aa.push(3);
console.log(bb);//[1,2,3]
//传址不传值,aa的变化对bb有影响

  再来说初始数据类型,分为number、string、boolean、undefined、null

    1.number:主要包括整数、小数(浮点)、负数、进制(二进制、八进制、十六进制),以0x开头的为十六进制,0开头的为8进制,进制转化采用加权方式

console.log(Number.MAX_VALUE) //js可解析的最大值
console.log(Number.MIN_VALUE)//js可解析的接近0的最小正值

    2.string:一般引号引起的都是字符串,   转义字符 换行  回车  f分页  制表符(Tab)

      注意:“ ”与‘’ 可以嵌套但不能交叉

    3.Boolean:true false (任何数据类型都可被判断为 true false )

    4.undefined:默认为undefined的情况

      a)一个变量只声明不赋值:var a;console.log(a)  //undefined

      b)函数中传参,如果形式参数没有被传值,默认为undefined

        

function aa(a,b){
    console.log(a);
    console.log(b);
}
aa("我是第一个参数")

//“我是第一个参数”   undefined

      c)数组中某个下标的位置没有被传值,默认为undefined   

var arry=[1,2,,4]
console.log(arry[2])
//undefined

      d)对象中没有某个属性,默认为undefined

function person(){
     this.name="zhangsan";
}
var obj=new person();
console.log(obj.name);
console.log(obj.say);
//zhangsan   undefined

      e)函数中没有定义返回值,默认为undefined

function person(){
        var aa="返回值";
        return aa;
}
person();
console.log(person())   //返回值

function person(){
       var aa="返回值";
       return;
}
    person();
    console.log(person()) //undefined

    5.null

    占位符,是个空对象,可直接清空对象,是对象原型链的终点

   (undefined与null的区别:在垃圾回收机制中,null直接清空对象,undefined是js中的内部回收机制进行清除;null是个空对象,类型是Object,undefined是预定义的全局变量)

  引用数据类型主要包括函数、数组、对象(数组对象、字符串对象、自定义对象。。。)

原文地址:https://www.cnblogs.com/wykbk/p/6756413.html