zoukankan      html  css  js  c++  java
  • JavaScript函数、对象和数组

    一、JavaScript函数

    1.定义函数:函数的通用语法如下

    function function_name([parameter [, ...]])
    {
        statements;
    }
    • 由关键字function开始函数的定义
    • 接着是函数名,它必须由字母或下划线开始,后面可以是一串字母、数字、$符号或下划线
    • 必须带有括号,括号里的参数是可选的,多个参数用逗号(,)隔开
    • 封闭的大括号中书写函数代码

    2.参数数组(arguments):参数数组可以使得在处理多个参数的变量时更灵活。

    function displayItems()
    {
        for(j = 0; j < displayItems.arguments.length; ++j)
            document.write(displayItems.arguments[j] + "<br />")
    }

    3.函数返回值:使用return语句返回函数结果。

    document.write(fixNames("the","DALLAS","CowBoys"))
    function fixNames()
    {
        var s = ""
        for (var i = 0; i < fixNames.arguments.length; ++i) 
        {
            s += fixNames.arguments[i].charAt(0).toUpperCase() +
            fixNames.arguments[i].substr(1).toLowerCase() + " "
    
        }
        return s.substr(0,s.length-1)
    }

    上面的代码将输入的字符的首字变为大写,其余字母为小写,并将字符拼接后返回。

    如果我们并不想将字符拼接起来,而是返回分离的单个字符,可以使函数返回一个数组:

    words = fixNames("the","DALLAS","CowBoys")
    
    for(j = 0; j < words.length; ++j)
    document.write(words[j] + "<br />")
    
    function fixNames()
    {
      var s = new Array()
      for(j = 0; j < fixNames.arguments.length; ++j)
          s[j] = fixNames.arguments[j].charAt(0).toUpperCase() +
          fixNames.arguments[j].substr(1).toLowerCase()
      return s
    }

    二、JavaScript对象

    1.与其他面向对象的编程语言有一点不一样,JavaScript是基于原型的面向对象的语言,不是严格的面向对象的语言。JavaScript中没有传统意义上的类去实例化对象 ,但是为了理解方便,我们可以引入概念上的类。对象可以通过一个叫做构造函数的特殊函数来生成的,我们也可以把这个过程看成是类的声明。下面我们来看看一个具体实例:User类的构造方法。

    function User(forename,username,password)
    {
        this.forename = forename
        this.username = username
        this.password = password
    
        this.showUser = function()
        {
            document.write("ForeName: " + this.forename + "<br />")
            document.write("UserName: " + this.Username + "<br />")
            document.write("Password: " + this.password + "<br />")
        }
    }

    该函数与一般的函数有两点不同:

    1. 它引用一个名为this的对象,当程序通过运行这个函数创建一个User实例时,this引用被创建的实例。
    2. 在函数内创建一个名为showUser的新函数

    我们可以把这个函数看成一个类:USer类

    2.创建对象:使用new关键字创建对象

    //直接使用new关键字创建对象
    detail = new User("Wolfgang","w.a.mozart","composer")
    
    //或者创建空的对象,然后再赋值
    detail = new User()
    detail.forename = "Wolfgang"
    detail.username = "w.a.mozart"
    detail.password = "composer"
    
    //此外,可以为创建好的对象添加新的属性
    detail.greeting = "Hello"

    3.访问对象:JavaScript也使用句号(.)来访问一个对象的属性和方法,

    4.prototype(原型)关键字:使用prototype定义的属性和方法,类似C++中的静态属性和静态方法。所有由这个类实例化的对象共享这个prototype属性或方法,而不会为每个对象都创建一个单独的。可以说,prototype的属性和方法是类所拥有的,类实例化出来的对象拥有的不过是它的一个引用。

    function User(forename,username,password)
    {
        this.forename = forename
        this.username = username
        this.password = password
    
        User.prototype.showUser = function()
        {
            document.write("ForeName: " + this.forename + "<br />")
            document.write("UserName: " + this.Username + "<br />")
            document.write("Password: " + this.password + "<br />")
        }
    }

    三、JavaScript数组

    1.数组的创建:可以使用new关键字也可以使用缩略形式声明数组,然后使用push方法往数组中添加新的元素;也可以声明有初始化值的数组。

    //声明一个空的数组
    myarray = new Array()
    //或者用缩略形式:myarray = []
    
    //使用push方法往数组中添加新的元素
    myarray.push("One")
    myarray.push("Two")
    myarray.push("Three")
    
    //创建由初始化元素的数组
    myarray2 = Array("One","Two","Three")
    
    //使用length方法获取数组的长度
    document.write(myarray.length)

    2.关联数组:JavaScript的关联数组和python的字典很像。在JavaScript中创建关联数组需要在一对大括号"{  }"中定义一组元素"key:value",冒号左边的是索引,右边是数组元素对应索引的值。

    myarray = {"One":"1",
        "Two":"2",
        "Three":"3"}
    
    for(key in myarray)
        document.write(key + " = " +myarray[key] + "<br />")

    3.使用数组方法:由于数组的强大作用,JavaScript提供了许多现成的方法来操作数组。

    (1).concat方法:可以将两个数组或一个数组中的一系列值连接起来,比如下面的代码会输出"Banana,Grape,Carrot":

    fruit = ['Banana','Grape']
    document.write(fruit.concat("Carrot"))

    (2).forEach方法:用于遍历数组,对数组的每个元素进行操作,使用语法如下

    myarray.forEach(function(currentValue, index, arr), thisValue)

    参数说明如下:

    • function(currentValue, index, arr):必须,数组中每个元素需要调用的函数。
      • currentValue:必须,当前元素
      • index:可选,当前元素的索引
      • arr:可选,当前元素所属的数组对象
    • thisValue:可选,传递给函数的值一般用 "this" 值。如果这个参数为空, "undefined" 会传递给 "this" 值
    pets = ["Cat","Dog","Rabbit","Hamster"]
    pets.forEach(dispaly)
    
    function dispaly(element,index,array)
    {
        document.write("Element at index " + index + "has the value is " + element + "<br />")
    }

    注意:IE浏览器并不支持forEach方法。

    (3).join方法:将数组内所有值转化为字符串,并将它们组合成一个更大的字符串,你可以选择连接的字符,默认是逗号","

    pets = ["Cat","Dog","Rabbit","Hamster"]
    document.write(pets.join(' '))
    //输出结果为:Cat Dog Rabbit Hamster

    (4).push和pop方法:push方法用于向数组中添加新的元素,pop方法用于删除数组中最新插入到数组中的元素并将其返回。

    (5).reverse方法:将一个数组中的元素颠倒顺序

    pets = ["Cat","Dog","Rabbit","Hamster"]
    pets.reverse()

    更多数组对象的属性和方法,可以参看菜鸟教程的JavaScript手册:JavaScript Array 对象

  • 相关阅读:
    hive基本操作与应用
    理解MapReduce计算构架
    熟悉HBase基本操作
    熟悉常用的HDFS操作
    爬虫大作业
    数据结构化与保存
    使用正则表达式,取得点击次数,函数抽离
    爬取校园新闻首页的新闻
    网络爬虫基础练习
    Hadoop综合大作业
  • 原文地址:https://www.cnblogs.com/jxc321/p/8618907.html
Copyright © 2011-2022 走看看