第2章 数组&对象&正则表达式2020-04-17

创建数组 

创建一个空数组

数组在创建时可以不包含任何元素数据,即空数组。创建后返回一个数组对象,使用该对象可以往数组中添加元素。

var Obj = new Array();

上述语句将创建一个空数组。变量Obj引用创建后的数组对象,通过此变量可以操作数组,Array()为数组对象的构造函数。

通过指定数组长度创建数组

在创建数组时可以指定数组的元素长度,通过这种方式可以创建一个有指定元素个数的数组对象 。

var Obj = new Array( Size );

Size指明新建的数组有多少个元素。数组对象的length将被设置为Size,仅指定长度但没有实际填充元素及其数据的数组将得不到数据存储空间

通过指定数组元素创建数组

新建的数组将包含创建时指定的元素,通常用在数据已经准备就绪的场合。

var Obj = new Array( 元素1, 元素2, …, 元素N );

在js中 与java不同的是 数组可以自动扩容

var students = new Array( "Peter", "Tom", "Vicky", "Jet" ); // 通过指定元素创建数组

     for( n in students ) // 逐个输出数组中的名字

     {

        document.write( students[n] + " " ); // 将名字写入当前文档流中

     }

直接创建数组

JavaScript创建数组的另一种简便的方式是使用“[]”运算符直接创建,数组的元素也是创建时被指定。

var Obj = [ 元素1, 元素2, 元素3, …, 元素N ];

创建数组

var  p1 = ['tom', 28, 'NewYork'];

alert(p1);

读取数组元素

var products = new Array( “洗衣粉”, “香皂”, “洗洁精” ); // 商品列表

var product = products[ 1 ]; // 取出第二种商品

直接赋值

tmpArray[0] = “value1”;

tmpArray[1] = “value2”;

通过for循环赋值

for(var i=0;i<tmpArray.length;i++){

tmpArray[i] = “2000”+i;

}


数组的主要属性length

返回数组长度的整数值

数组对象的length(长度)属性指示了数组元素的个数。

通过设定length属性可以指定数组的长度。

var Obj = new Array( 1, 2, 3 );

var count = Obj.length;

尽管指定了数组的length属性,真正的有效元素只包含已经存入数据的元素,其它没有真正填充数据的元素仍然为空。

取值

直接使用

document.write(tmpArray[0]);

通过for循环取值

同赋值的for循环

或者 for…in循环

for(var i in book){

      document.write("book[" + i + "] "+ book[i]  + "<br>");

}

Array对象的常用方法

concat

返回一个新数组;由两个或者更多数组组合而成

var newArray = tmpArray.concat(tmpArray)

join

返回字符串;由数组中的所有元素连接到一起,元素间的间隔符由参数指定,省略参数则用逗号分隔

var newString = tmpArray.join(“.”)

reverse

返回一个新数组;由原来的数组反转而成

var newArray = tmpArray.reverse();

pop

移除数组中的最后一个元素并返回该元素

var newString = tmpArray.pop()

push

给数组中增加新元素,并返回数组的新长度

var newLength = tmpArray.push(“a”,”b”)

shift

移除数组中的第一个元素并返回该元素

var newString = tmpArray.shift()


slice

返回一个新数组,为原数组中的一段

var newArray = tmpArray.slice(1,3)

第一个参数一般是开始坐标,第二个元素可能是结束坐标 也可能是长度

如果是结束坐标 参数个数=结束坐标-开始坐标》》第二个元素-第一个元素

如果是长度 参数个数=长度-----》》第二个元素

sort——ArraySort.html

返回一个排序后的新数组

var newArray = tmpArray.sort(AscSort)

toString

返回将Array中的元素转为由逗号分隔的字符串

var newString = tmpArray.toString()

冒泡排序

var arry1=[23,33,17,38,3,9]

function sorta(a,b){

return a-b

}

console.log(array1.sort(sorta))

//a-b 升序 b-a降序

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title></title>

<script>

var d1=new Date();//创建日期类型

console.log(d1);

//日期转换

//2020/04/17  使用构造器 设置值

var d2=new Date("2020/4/17")

console.log(d2);

var d3=new Date(2020,4,12,14,32,15,199);

console.log(d3)

console.log(Date.UTC(2020,4,12))//距离1970年1月1日毫秒值

console.log(Date.UTC(1970,1,1,0,0,0))//距离1970年1月1日毫秒值

// 字符串解析----》》日期

console.log(Date.parse("Aug 9,1995"))

console.log(Date.parse("8/9/1995"))

//毫秒-----》》日期

var d4=new Date(Date.UTC(1970,1,1,0,0,0));//Sun Feb 01 1970 08:00:00 GMT+0800 (中国标准时间)

console.log(d4);

var d5=new Date(807897600000);

console.log(d5);//Wed Aug 09 1995 00:00:00 GMT+0800 (中国标准时间)

var d6=new Date();

console.log(d6.getFullYear())

console.log(d6.getMonth())

console.log(d6.getDate())

console.log(d6.getDay())

d6.setFullYear(2021);

console.log(d6)

d6.setMonth(4)//0----1月

console.log(d6)

// Date --->>转为字符串 string

console.log(d6.toDateString())

// ceil  fioor round random

console.log(Math.ceil(10.5))

console.log(Math.ceil(-10.5))

console.log(Math.floor(10.5))

console.log(Math.floor(-10.5))

console.log(Math.round(10.5))

console.log(Math.round(10.4))

console.log(Math.random())

//范围1~10 random

// 思路 [0,1)*10 ----->>[0,10)+1

console.log(Math.floor(Math.random()*10+1));

//字符串类型

var s1="asdf asdf asdf"

var s2=new String("asdf asdf asdf")

console.log(s1);

console.log(s2.toString());

console.log(typeof(s1));

console.log(typeof(s2.toString()));

console.log(s1.length)

//正则表达式

var reg=new RegExp('asdf','i')

var reg2=/asdf/i;

console.log(reg.test(s1));

console.log(reg2.test(s1));

console.log(reg.exec(s1));//返回数组

//正则表达式必知必会

var s2="this is a google! Google";

var reg3=new RegExp("(g)oogle","ig");

console.log(reg3.test(s2))

console.log(RegExp.leftContext);

console.log(RegExp.rightContext);

console.log(RegExp.lastMatch);

console.log(RegExp.lastParen);

console.log("aaa:"+RegExp.multiline);

var reg4 =new RegExp("google");

console.log(s2.replace(reg4,"*"))

//重点 前端考试

function aaa(){

alert("你好")

}

//setTimeout(aaa(), 5000); //延迟5秒后弹出

//aaa();

//间隔函数

setInterval("aaa()",5000);

</script>

</head>

<body>

</body>

</html>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。