JavaScript变量可以用来保存两种类型的值:基本类型值和引用类型值
基本类型值源于以下5种基本类型:
Undefined、Null、Boolean、Number和String。
引用类型包括:
*Object类型 *Array类型 *Date类型 *RegExp类型 *Function类型
*基本包装类型:Boolean类型、Number类型和String类型
*单体内置对象:Global对象、Math对象。
*基本类型值和引用类型值有以下特点:
- 基本类型值在内存中占用固定大小的空间,因此被保存在栈内存中;从一个变量向另一个变量
*复制基本类型的值,会创建这个值的副本。
- 引用类型的值是对象,保存在堆内存中。包含引用类型值的变量实际上包含的并不是对象本身,
*而是一个指向该对象的指针。从一个变量向另一个变量复制引用类型的值,复制的其实是指针,因此两个变量最终都指向同一个对象。
*确定一个值是哪种基本类型可以用typeof操作符,而确定一个值是哪种引用类型可以用instanceof操作符。
例子:
typeof:
var a = 'awe'
console.log(typeof(a)); //string
instanceof:
var a = 'awe'
console.log( a instanceof Object); //flase
console.log( a instanceof Array); //flase
Array数组
数组也是对象的一种,ES数组的每一项可以保存任何类型的数据。
数组的创建方式(俩种):
使用new关键字+Array构造函数创建数组(new操作符可以省略)。
例子:
var colors = new Array(12345); //(5) [1,2,3,4,5]默认数值类型
var colors = Array(12345); //(5) [1,2,3,4,5] 省略new也可以实现一样的效果
如果预先知道数组的项目数量,也可以给构造函数传递该数量,而该数量会自动成为length属性的值。
例子:
var colors = new Array(20); //(20)[empty*20]
console.log(colors.length);//20 表示它的长度是20
也可以向Array构造函数传递数组中应该包含的项。
例:
var colors = new Array("red","blue","green");
console.log(colors.length);//3 表示它的长度是3
对比分析
var colors = new Array(20);
console.log(colors.length);// 20 表示它的长度是20
var colors = new Array("20");
console.log(colors.length);//1 表示它的长度是1
2、 数组字面量表示法创建数组
数组字面量由一对包含数组项的方括号表示("[]"),多个数组项之间以逗号隔开。
例:
var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
console.log(colors.length); //3 表示colors的长度是3
var colors = []; //创建一个空数组
console.log(colors.length); //0表示colors的长度是0
在读取和设置数组的值时,要使用方括号并提供相应的基于0的数字索引(位置)。
例:
var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
console.log(colors[0]); //表示显示的是 "red"
colors[2] = "black";
console.log(colors);//(4)['red','blue','black','green'] 表示在下标为2的地方添加了'black'
2、数组的length属性
数组的length属性的特点:不是只读的。也就是说通过设置这个属性,可以从数组的末尾移除或向数组中添加新项。
例:
var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
colors.length = 2; //设置数组长度为2
console.log(colors);//(2) ['red','blue']表示移除了第三个字符
console.log(colors[2]); //undefined 因为第二个被移除了所以没有找到显示underfined
var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
colors.length = 4; //设置数组长度为4
console.log(colors);//(4)["red","blue","green",'empty']表示添加了一个空数组
console.log(colors[3]); //undefined
利用length属性也可以方便地在数组末尾添加新项。
数组最后一项的索引始终是 length-1 ,所以下一个新项对应的位置就是 length。
例:
var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
colors[colors.length] = "black";
console.log(colors);//表示在下标3的位置添加了数组['black']
例:
var colors = ["red","blue","green"]; //定义了一个长度为3的字符串数组
colors[99] = "black";
console.log(colors);(100) ["red", "blue", "green", empty × 96, "black"]表示在(在位置99)添加一种颜色
console.log(colors.length); //100
持续更新,未完待续。。。。。。。
网友评论