数组、字符串对象、Math对象

数组的介绍

  • 数组介绍
    概念: 就是将若干个数据以一定的顺序放在一起的一个集合体,整体上就称之为“数组”。数组就是一列数据的有序排列的集合。
  • 定义形式:
    var arr1 = new Array(1, 5, 8, 7, 2, 10); //定义了一个数组,其中具有6个数据
    var arr2 = new Array(); //只是单纯地定义了一个数组(名),但没有给值(数据),即现在是空的
    var arr3 = [1, 5, 8, 7, 2, 10]; //同arr1,只是一种简写的定义法。
    var arr4 = [ ]; //同arr2,也是一个空数组。
  • 数组的使用:所谓使用其实是指对数组的每一项的使用。
    • 取值:
      var v1 = arr1[0]; //取得数组arr1中的第一项,0叫做下标
      var v2 = arr3[3] + 10; //取得数组arr3中的第4项,4叫做下标
      ——所谓下标,其实就是数组的每一个数据的“顺序号”——从0开始编号,是连续的整数。
    • 赋值:
      arr1[0] = 10; //给数组arr1的第一项赋值为10,此时其实也就是相当于修改了其值,也可以说类似给一个变量重新赋值。
      arr2[0] = 22;
      arr2[1] = 33.3;
      arr2[2] = “444”;
      arr2[3] = “abc”;
      arr2[4] = true;
      //此时arr2这个数组相当于这样: [ 22, 33.3, “444”, “abc”, true ]
      取得一个数组的长度——就是其中的数据的个数的语法为:
      var v1 = 数组名.length;
    • 特别注意:数组的最大下标是数组的长度减1。
  • 数组遍历的通常模式:
    var len = 数组名.length;
    for(var i = 0; i < len; i++)
    {
    //这里就是对数组的每一项的处理,每一项的写法是: 数组名[i]
    }
  • 数组遍历的另一种形式——for in循环语句。
    for( var v1 in 数组名arr1 )
    {
    //这里就是循环体,是专门针对数组arr1的遍历循环,其中v1的值就是表示数组的每一项的下标值。

“二维”数组:

var v1 = [2, 5, 1, 5];

var v2 = [5, 1, 6, 8];

var v3 = [8, 0, 9, 7];

var v4 = [v1, v2, v3];

var v5 = [

[2, 5, 1, 5],

[5, 1, 6, 8],

[8, 0, 9, 7]

];

——v4和v5其实没有任何区别,这两个都可以称为“二维数组“。

  • “二维”数组元素的操作:

       取值:
    
                var s1 = v5[0][1];     //5   //相当于取到v5这个数组中第一项(这还是一个数组)的第2项。
    
                var s2 = v5[2][3] + 100;   //107
    
       赋值:
    
                v5[0][1] = 200;
    
                v5[2][3] = 300;
    
  • 数组对象的常用方法:

       什么叫方法:方法其实就是函数!——只是如果一个函数“隶属于”某个“对象”,则称这个函数为该对象的方法。
    
       functionmaibao(){
    
                document.write(“啦啦啦,我是卖报的小行家,卖报啦卖报啦。”);
    

}

var myDreamGirl= {

name: “小花”,

  • 对象的属性

age:18,

edu:”大学”,

sex:”女”,

  • 对象的方法

nengli1: function (){document.write(“洗衣!”); } ,

nengli2: function (){ document.write(“做饭!”); } ,

nengli3: maibao

};

var v1 = [2, 5, 1, 5];

var v2 = [5, 1, 6, 8];

从严格的角度来说,数组也是一种对象——甚至字符串也是对象。

  • v1作为对象,就有属性和方法:
    • 属性:
      某数组.length: 表示该数组对象的长度

    • 方法:
      某数组.concat(其他数组):将两个数组连接起来成为一个新的“更长”的数组。
      var s1 = v1.concat( v2 ); //此时s1是这样一个数组: [2, 5, 1, 5, 5, 1, 6, 8];

      某数组.join(“字符串”):将数组中的所有项以指定的字符“串接起来”成为“长的”一个字符串。
      var s2 = v1.join(“//”); //结果s2为字符串 “2//5//1//5”

      某数组.pop(); //将该数组的最后一项“移除”(删除),并返回该项数据,即该数组少了一项
      var s3 = v1.pop(); //结果v1只剩这个:[2,5,1]; s3的值是5

      某数组.push(新数据项d1); //将新的数据d1添加到该数组的最后位置,即数组多了一项。
      var s4 = v1.push( 55 ); //v1此时为:[2,5,1, 55], s4的值为新数组的长度,即4

      某数组.shift(); //将该数组的第一项“移除”(删除),并返回该项数据,即该数组少了一项
      var s5 = v1.shift(); //结果v1只剩这个:[5, 1,55]; s5的值是2

      某数组.unshift(新数据项d1); //将新的数据d1添加到该数组的最前位置,即数组多了一项。
      var v6 = v1.unshift( 66 ); //v1此时为:[66, 5, 1, 55], s6的值为新数组的长度,即4

javascript语言是一门基于对象的语言。

  • 字符串对象:
    var str1 = new String(“abcdefgabc”); //这是一个“字符串对象”
    var str2 = “abcdefgabc”; //这个字符串跟前面str1几乎没有区别
  • 字符串对象的属性:
    .length——获得一个字符串的长度(也就是字符个数)
  • 字符串对象的方法:
    1.str1.charAt( n ); ——获得字符串str1中位置为n的那个字符(字符的位置也是从0开始算起)var s1 = str1.charAt( 3 ); //s1的结果是:”d”
    2.str1.toUpperCase(); ——获取str1全部转换为大写的结果
    var s2 = str1.toUpperCase(); //s2的结果是:”ABCDEFGABC”
    3.str1.toLowerCase(); ——获取str1全部转换为小写的结果
    var s3 = str1.toLowerCase(); //s3的结果是:”abcdefgabc”
    4.str1.replace(“字符1”, “字符2”); ——将str1中的“字符1”替换为“字符2”
    var s4 = str1.replace(“cd”, “999”); //s4的结果是:”ab999efgabc”
    5.str1.indexOf(“字符1”); ——获得“字符1”在str1中第一次出现的位置,如果没有出现,结果是-1
    var s5 = str1.indexOf(“ab”); //s5的结果是0
    6.str1.lastIndexOf(““字符1”); ——获得“字符1”在str1中最后一次出现的位置,如果没有出现, //结果是-1
    var s6 = str1.lastIndexOf(“ab”); //s6的结果是7
    7.str1.substr(n, m ) ——取得str1中从位置n开始的m个字符,m可以省略,则表示从位置n一直取到字符串的最后——注意,这种“取”并不影响str1这个原始字符
    var s7 = str1.substr(2, 4); //s7为:”cdef”
    8.str1.substring( n, m )——取得str1中从位置n到位置m的前一个字符。
    var s8 = str1.substring(2, 4); //s8为:”cd”
    9.str1.split(“字符1”) ——将str1以指定的“字符1”为分界,分割成一个数组,结果是一个数组
    var s9 = str1.split(“b”); //s9的结果是一个数组:[“a”, “cdefga”, “c”]

Math对象

Math对象是一个系统内部定义的对象,我们无需去“新建一个Math对象”——跟string对象和array对象不同。即Math对象是直接使用的。
我们学习Math对象,无非是学习一些常见的数学处理函数——这里当就叫做方法了:

  • 属性:
    Math.PI——代表圆周率这个“常数”
  • 方法:
  1. Math.max(数值1,数值2,…..) ——求得若干个数值中的最大值。
  2. Math.min(数值1,数值2,…..) ——求得若干个数值中的最小值。
  3. Math.abs( 数值1) ——求得数值1的绝对值
  4. Math.pow( x,y) ——求得数值x的y次方,也就是“幂运算”
  5. Math.sqrt( x ) ——求得x的开方
  6. Math.round( x ) ——求得x的四舍五入的结果值;
  7. Math.floor( x ) ——求得x的向下取整的结果,即找到不大于x的一个最大的整数。
    a) Math.floor( 3.1 )  3
    b) Math.floor( 3.8 )  3
    c) Math.floor( 3 )  3
    d) Math.floor( -3.1 )  -4
    e) Math.floor( -3.8 )  -4
  8. Math.ceil( x ) ——求得x的向上取整的结果,即找到不小于x的一个最小的整数
    a) Math.ceil( 3.1 )  4
    b) Math.ceil( 3.8 )  4
    c) Math.ceil( 3 )  3
    d) Math.ceil( -3.1 )  -3
    e) Math.ceil( -3.8 )  -3
  9. Math.random() ——获得一个0~1范围中的随机“小数”,含0,但不含1

//获得两个整数(n1,n2)之间的随机整数的通用做法:
var v1 = Math.random()
v1 = v1 * (n2-n1+1);
v1 = Math.floor( v1 ) + n1; //此时v1就是结果
//将上述3步写出一步就是(通用公式):
var v1 = Math.floor( Math.random() * (n2-n1+1) ) + n1

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

推荐阅读更多精彩内容