第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>

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342