javascript(一) 引用类型

来源:互联网 发布:mysql 判断奇数偶数 编辑:程序博客网 时间:2024/06/01 17:09

javascript(一) 引用类型


以前进行java Web开发经常是在项目中遇到的javascript语法,然后自己上网找资料,发现很不成体系。于是就开始自己按照自己的学习进行总结。帮助自己系统的学习javascript,也和大家一起分享学习javascript的路线及知识。

本章内容来源于 Javascript高级程序设计(第三版),大家有时间可以自己找一下,自己学习。


言归正传,让我们来讨论一下javascript引用类型的第一个类型Object


  • Object
    Object是我们在编写javascript代码是经常用到的,function函数也算是O
    bject.Object类型对于存储和传输数据是非常理想的。

创建Object实例有两种方法:

 - 构造函数:```var person = new Object();person.name = "lihua";``` - 对象自变量:```var person = {    name :  "lihua"}```

对象自变量方式是我们经常用的一种方法,在进行函数可选参数传递时自变量方式是一个很好的选择。
对于对象的属性访问有很多种,例如

person.name //或者person["name"]  

采用[]方式可以用于属性名中间有空格等的属性,例如“first name”;正常情况下我们采用点表示法。
下面我们来总结一下第二个引用类型Array


  • Array类型
    Array应该是ECMAScript中使用第二多的类型了。Javascript中的Array不同于其他语言的Array类型,它的每一项可以保存任何类型的数据;而且大小可以调整即随着数据的添加自动增长以容纳新增数据。
  • 创建Array的方式也有两种:

    • 构造函数:
    var colors = new Array();//或var colors = new Array(3);//或var colors = new Array("greg");//其中的new可以省略掉
    • 数组自变量法:
    var colors = ["red", "blue"];//注意这里是中括号[],如果写成了{},看来你想要一个对象了//有时有人会认为有些数据项我先不知道放什么,就多写一个,例如var colors = ["red", ];//IE会产生red和undefined两个元素的数组。其他浏览器会产生red一个元素的数组,不建议采用

    2 基础方法
    采用下表(基于0的数字索引)可以读取、修改、新增数组的值。

    var colors = ["red", "blue"]; colors[0] = "green";alert(colors[1]);colors[2] = "black";//获取长度colors.length//利用length属性在Array末尾加入元素colors[colors.lentgth] = "green";//检测是不是数组colors instanceof ArrayArray.isArray(colors);//Array的方法colors.toString(); //green,blue,black,greencolors.valueOf();colors.toLocaleString();//采用不同的分隔符获取数字项的字符串 jioncolors.join("||"); //green||blue||black||green //不传参数,或传入undefined ,都将采用逗号分隔

    3 栈方法
    栈方法是数组的一个特别的行为,计算机专业毕业的学生应该都知道数据结构的栈,一种LIFO(后进先出)的数据结构,在栈的顶部(Array数组的末尾)进行插入和移除。提供的方法为push() 和 pop()方法。

    4 队列
    有了支持栈方法的行为,怎么可能忘了队列数据结构呢;队列访问规则为FIFO(先进先出);在队末添加项 - push(),在队头移除项 - shift()。

    5 重排序方法

    var nums = [1,2,3,4]//反转数据项的次序nums.reverse();//排序 sortnums.sort()//sort排序采用的是字符串 升序的方式排的,这会造成 15 < 5;所以sort可以接受一个自定义的函数当排序参数:nums.sort(functionv1, v2) {    if (v1 < v2) {        return -1;    } else if (v1 > v2) {        return 1;    } else {        return 0;    }    })//这两种排序都会改变自身,也就是数组原来的排序会消失。

    6 操作方法

    //1 concat 连接两个数组 基于当前数组中的所有项创建一个新数组 空参数表示创建一个副本var colors = colors.concat("yellow", ["black"]);//2 slice() 基于当前数组中的一或多个项创建一个新数组 slice((start[, end]])  也可以传入负数表示从最后开始var color2 = ["red", "green", "blue"];var color2 = colors.slice(1,2); // green//3 splice() 向数组中部插入、删除、替换项;返回//删除 splice((start, end]) var removed = colors.splice(0,1); // red   colors : green, blue//插入 splice(start, 0, [items]) 返回删除的数组var removed = colors.splice(1, 0, "yellow"); //[]  colors: red, green, yellow, blue//替换 splice(start, deletenum, [items])  返回删除的数组var removed = colors.splice(1, 1, "black"); //["green"] colors: red, black, green,yellow, blue

    7 位置方法

    // indexOf(item, [start])  返回查找项在数组中的位置 没有找到返回 -1var numbers = [1, 2, 3, 4, 2];    numbers.indexOf(2); //1    numbers.indexOf(2, 3); //4             // lastIndexOf()  从数组的末尾开始向前查找

    8 迭代方法

    //1 every(function(item, index, array){}, this(该函数的作用域));// 对数组中的每一项运行给定的函数, 每一项返回true,则返回true//2 filter(function(item, index, array){}, this);// 对数组中的每一项运行给定的函数,返回该函数会返回true组成的数组//3 forEach(function(item, index, array){}, this);// 对数组中的每一项运行给定的函数, 没有返回值//4 map(function(item, index, array){}, this);// 对数组中的每一项运行给定的函数, 返回每次函数调用的结果组成的数组//5 some(function(item, index, array){}, this);// 对数组中的每一项运行给定的函数, 如果该函数对任一项返回true, 则返回true

    9 归并方法

    //1 reduce(function(prev, cur, index, array){}, baseValue) 迭代数组的所有项,从头到尾, 构建一个最终返回的值//2 reduceRight() 迭代数组的所有项,从尾到头,参数域reduce()开始

  • Date 类型
    Date类型是在早期Java中的java.util.Date类基础上构建。Date类型使用自UTC(国际协调时间)1970年1月1日午夜(零时)开始经过的毫秒数来保存日期。
    1 创建

    var now = new Date(); //新创建的对象自动获取当前日期和时间var mydate = new Date(mills); //返回特定时间       Date.parse(date0);    //返回相应日期的毫秒数      YYYY-MM-DDTHH:mm:ss.sssZDate.UTC(years, months [, day ...] );    // 返回表示日期的毫秒数

    2 方法

    Date.toLocaleString();  // Thursday, February 01, 2007 12:00:00 AMDate.toString();    // Thu Feb 1 00:00:00 PST 2007Date.valueOf();    //不返回字符串,而是返回日期的毫秒表示toDateString();  // 以特定于实现的格式显示星期几、月、日和年          toTimeString(); // 以特定于实现的格式显示时、分、秒和时区toLocaleDateString(); // 以特定于地区的格式显示星期几、月、日和年toLocaleTimeString(); // 以特定于实现的格式显示时、分、秒toUTCString(); // 以特定于实现的格式完整的 UTC 日期set/getTime();set/getFullYear();set/getFullMonth();set/getDay();   //还有些获取详细时间的方法

后面我们了解很重要的一个对象:RegExp(正则表达式)

0 0
原创粉丝点击