创建对象的方式
- 使用new 关键字
<title>object创建对象</title>
<script type="text/javascript">
var a = new Object();//创建一个对象a
a.name = "小明";
a.age = 23 ; //给对象的属性赋值
alert(a.name+a.age);
</script>
- 省略new 关键字创建对象
//省略new 关键字创建对象
var box1 = Object();
alert(box1);
- 字面量创建对象,json格式
//使用字面量创建对象
var box2 = {
'name':'小明'
}
alert(box2);
alert(box2.name);
- 给对象添加属性和 方法
// function add(){// 创建了一个方法
// return 123;
// }
// var box = new Object();//创建一个对象box
// box.name = "小明";//创建对象的属性并初始化
// box.f = add;//把方法赋给对象的成员
// alert(box.f);//不加括号,打印出来的是方法
// alert(box.f())//加括号打印出来的是,方法执行的结果
对象中的方法
转换方法
var arr = [3,"小明",true,new Object()]; console.log(arr); console.log(arr.toString()); console.log(arr.toLocaleString()); console.log(arr.valueOf());
对象和数组中多有toLocaleString()、toString()、valueOf()方法,其中toString()和valueOf()无论重写了谁都会返回相同的值。
- 默认情况下打印数组,数组元素间使用逗号隔开的,可以使用join()方法,使用指定的字符来分隔数组元素。
alert(arr.join("$"));
- 栈方法
var arr = [3,"小明",true]; alert(arr.push(33,"小花"));//返回数组的长度 alert(arr.pop());//移除 小花
ECMAscript数组提供了一种让数组的行为类似于其他数据结构的方法,也就是说可以让数组像栈一样,可以限制插入和删除项的数据结构,栈是一种数据结构(后进先出),也就是说,最新添加的元素最早被移出,而栈中元素的插入和移除只发生在栈的顶部,
push() 方法
这个方法可以接受任意数量的参数,并且把它们添加到数组的末尾,返回数组的长度
pop()
这个方法用来移除数组最后的一个元素 ,并且 放回移除的元素。
- 队列方法
队列方法就是先进先出,从数组的末端 添加元素,从数组 的前端移除元素,通过push()向末端添加元素,通过shift() 移除前端元素。
- shift()
移除数组开头的元素,并且返回移除的元素
- unshift()
和shift()的功能完全相反,这个函数的含义是,在数组前端添加一个元素 ,并且放回数组的长度
- 排序方法
- reverse() 逆序排列,返回数组,注意这里元素数组改变了
sort() 升序排列,返回数组,这里的排序默认是使用的字符穿的字典顺序。如果想要自定义一排序规则,可以自定义一个比较器
自定义函数比较器,进行排序
//自定义比较器及逆行排序 var arr = [3,3,3,2,3,33,3,32233,34,,344,9,1,434,98]; alert(arr.sort( function(a,b){ return a - b; } ));
- 这里定义的函数比较器:如果返回值是0,那么表示两个参数相等
- 通过设置两个参数的相减顺序,设置数组的排序规则,升序还降序等等。
操作方法
- concat()基于当前的数组创建一个新的数组
var arr = [3,"开发工程工程师","程序员",true];
var n = arr.concat("还差的很远"); //在arr数组的基础上添加一个元素,常见一个新的数组
alert(arr);//打印原来的数组
alert(n);//打印新的数组
- slice() 方法可以基于当前数组获取指定区域元素并创建一个新数组,
var arr = [3,"开发工程工程师","程序员",true,43,23,4322];
var n = arr.slice(1,5);//获取arr数组的索引[1-5)左开右闭的元素,生成一个新的数组
alert(arr);
alert(n);
- splice() 主要用途是想数组的中部插入元素
- 删除元素
arr.splice(1,1);//删除索引是1的 元素
- 删除并且插入
arr.splice(1,1,"niaho");//删除原来的数组的索引是1的元素,并且插入 nihao
- 不删除并且插入
arr.splice(1,0,"niaho");//不删除原来的数组的索引是1的元素,并且插入 nihao
- 删除元素
使用构造器创建对象
- 自定义构造器
- 格式:function Demo(首字母大写){ }
function A(){
// 构造器内部定义属性和方法
this.name = '小明';
this.age = 32;
this.sex = true;
this.eat = function(){
alert('吃饭');
}
}
- 格式:function Demo(首字母大写){ }
创建对象
- 格式:var a = new Demo();
添加属性和方法:
function c(){ alert('方法'); } function A(){ this.name = '小明'; this.age = 32; this.sex = true; this.eat = function(){ alert('吃饭'); } } var b = new A();//创建对象 b.height = 1000;//定义属性 b.run = function(){//定义成员方法 alert('跑什么'); } b.ha = c;//定义成员方法
数组(Array)
- javascript 数组中的每个元素可以是任意类型,
- 数组的长度也是可以调整的
==数组可以传入多种类型的体现:==
var arr = [
new Object(),
"你好",
234,
[2,3,"小明",new Object],
];
alert(arr.length);//获取 数组的长度
alert(arr);//输出数组
alert(arr[3]);//访问arr内部的数组
alert(arr[3][2]);//访问内部数组的某一元素
创建数组
- 使用new 关键字
注意:
创建出来的数组是无穷大的
var a = new Array();//创建了 一个数组,它的容量是无限的 a[0] = "小明"; a[1] = "小王"; a[2] = "小花";//给元素赋值 alert(a[1]);
“`
Array```
创建数组预定义给他三个元素
var arr = new Array(2,3,"xia"); alert(arr);
- 如果创建数组是只是写了一个数字,代表数组的容量是这个数
var arr = new Array(10);//如果只写一个数字,代表这个数组的容量是10
- 省略new关键字的方式
var arr = Array();
使用字面量的方式创建数组,这里传入一个数字代表队是元素,不是长度
var arr = []; arr[0] = 3; arr[1] = 4; alert(arr); ------ 创建数组并且分配值 var arr = ["xiao","dfs",23];
- 数组的遍历
console.log(a.length);//数组的长度
for(var i = 0;i < a.length; i++){//数组的遍历
console.log(a[i]);
}
- 数组的属性:
- length 获取数组的长度
数组中常用的方法
- concat(item) 将参数内的元素,或者数组中的元素进行拼接,并且返回一个新的数组
- 比如:
function ConcatArrayDemo(){ var a, b, c, d; a = new Array(1,2,3);
b = "JScript"; c = new Array(42, "VBScript); d = a.concat(b, c);
// 返回数组 [1, 2, 3, "JScript", 42, "VBScript"] return(d);}
- 比如:
- pop() 溢出数组中的最后一个元素,并且返回这个数组
- push(item) 将一个新的元素,添加进数组中区,并且放回数组的长度
- reverse() 将数组的元素颠倒, 返回值也还是一个数组
sort() 升序排列,返回数组,这里的排序默认是使用的字符串的字典顺序。如果想要自定义排序规则,可以自定义一个比较器
自定义函数比较器,进行排序
//自定义比较器及逆行排序 var arr = [3,3,3,2,3,33,3,32233,34,,344,9,1,434,98]; alert(arr.sort( function(a,b){ return a - b; } ));
- join(item) 见数组中的元素用指定的分隔符分开
- 如果数组中有元素没有定义或者是null那么作为空字符串来处理
function JoinDemo(){ var a, b; a = new Array(0,1,2,3,4); b = a.join("-");
return(b);}
- 如果数组中有元素没有定义或者是null那么作为空字符串来处理
- concat(item) 将参数内的元素,或者数组中的元素进行拼接,并且返回一个新的数组