JS之六大引用类型

一、js有六种数据类型,包括五种基本数据类型,和一种复杂数据类型,typeof关键字用来检测当前变量的数据类型方法。
1.Number   2.String   3.Boolean   4.Undefined   5.Null   6.Object 
三大引用类型:1.object   2.Array类型  3.Function类型
object类型:(1)创建object实例,跟着new操作符   (2).使用对象字面量
 
//object实例
var person = new Object();
person.name = 'micheal';
person.age = 24;
 
// 使用对象字面量表示法。
var person = {
  name:'micheal',
  age:24
}
 
2.Array类型
    数组的每一项可以用来保存任何类型的数据,也就是说,可以用数组的第一个位置来保存字符串,第二个位置保存数值,第三个位置保存对象....另外,数组的大小是可以动态调整的。
创建数组的基本方式有两种
第一种是使用Array构造函数,如下所示
var colors = new Array("red","blue","yellow");
第二种是使用数组字面量表示法,如下所示
var colors = ["red","blue","yellow"];
 
3.Function类型
每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。函数通常是使用函数声明语法定义的
function sum(num1,num2){
  return num1 + num2;
};
这和使用函数表达式定义函数的方式相差无几。
var sun = function (){
  return sum1 + sum2;
};
也就是说js按照存储方式分为值类型和引用类型。那它们计算有什么区别呢?
题目1: var a = 100;
    var b = a;
      a = 200;
    console.log (b);        //100
题目2: var a = {age : 20};
    var b = a;
    b.age = 21;
    console.log (a.age);   //21
    题1:是简单的值类型,在从一个变量向另一个变量赋值基本类型时,会在该变量上创建一个新的值,然后再把该值复制到为新的变量位置上,此时a中保存的值为100,当使用a来初始化b时,b中保存的值为100,但b中的100与a中的是完全独立的,该值只是a中值的一个副本、。
    题2:  从一个变量向另一个变量赋值引用类型的值时,同样也会将存储在变量中的对象的值复制一份放到新变量中。这时保存在变量中的第对象在堆内存中,所以和简单的赋值不同,这个值其实就是一个指针指向两个变量都保存了同一个对象地址,则这两个变量指向同一个对象
 
 
 

猜你喜欢

转载自www.cnblogs.com/combating/p/10799900.html