一、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: 从一个变量向另一个变量赋值引用类型的值时,同样也会将存储在变量中的对象的值复制一份放到新变量中。这时保存在变量中的第对象在堆内存中,所以和简单的赋值不同,这个值其实就是一个指针指向两个变量都保存了同一个对象地址,则这两个变量指向同一个对象
JS之六大引用类型
原文:https://www.cnblogs.com/combating/p/10799900.html