zoukankan      html  css  js  c++  java
  • JavaScript 对象

      JavaScript对象是JavaScript 语言中固有的组件,而且与JavaScript 的执行环境无关。所以,无论在什么环境下都可以访问JavaScript对象。

      在JavaScript 基本对象中,有一些是与数据类型类似的对象,例如表示字符串的String、表示布尔值的Boolean 以及表示数字的 Number 。这些对象封装了基本类型,并在其基本功能上进行一定的扩展。(Number 和String 对象实例都有各自特殊的属性,而唯独Boolean没有。然而,所有这3种对象都将从更高级的对象中继承属性和方法。)

      此外,还有3种提供其他功能的内置对象,Math、Date 及 RegExp。Math 提供数学运算功能;Date 提供日期功能; RegExp 则是提供正则表达式功能的对象。虽然正则表达式异常神秘,但是正则表达式功能强大,模式匹配的功能可以在应用程序中对字符串进行精确的匹配。

      JavaScript 还有另外一个内置的聚合对象,即 Array。事实上,JavaScript 中的所有对象都是数组,只是通常并没有将对象当成数组来访问而已。

    一、布尔值 Boolean

      1.初始值的设置:

          实际上创建Boolean对象实例有不同的方法,这取决于其初始值是 false 还是 true 。

           (1)如果创建的对象不指定初始值,那么该Boolean对象的默认值为false : var boolFlag = new Boolean();

       (2)通过数字的方式设置初始值,例如用0表示false ,用1表示true:  var boolFlag = new Boolean(0);  var boolFlag = new Boolean(1;

           (3)通过字面量true 和false 来创建和设定对象初始值,例如:var boolFlag1 = new Boolean(false); var boolFlag2 = new Boolean(true);

              有趣的是,如果以空字符串创建Boolean 对象实例,那么对象的初始值将为false。如果以任何非空字符串创建Boolean对象实例,那么对象的初始值将为true 。

    二、Number 对象、静态属性及实例方法

      1.Number类的以下5个属性只可以通过Number 对象进行访问:

      (1)Number.MAX_VALUE :JavaScript 所能表示的最大数值;

      (2)Number.MIN_VALUE:JavaScript 所能表示的最小数值;

      (3)Number.NaN:表示非数字;

      (4)Number.NEGATIVE_INFINITY:表示负无穷大;

      (5)Number.POSITIVE_INFINITY:表示正无穷大。

        2.Number对象中有3种实例方法:

      (1)toExponential:以字符串形式返回数值的指数格式;

      (2)toFixed:以字符串形式返回数值的定点格式;

      (3)toPrecision:以字符串形式返回数值的特定精度格式。

      此外,valueOf 和toString 等全局方法同样适用于Number 实例。此外还有toLocaleString方法,返回与特定于区域的数值格式。

       

    三、String 对象

      String 对象 可能是最常用的JavaScript 内置对象,可以显式地通过new String 构造函数创建新的String对象,并作为参数传入字母量字符串: var sObject = new String ("Sample string");

    String 对象实例的属性和方法:

    属性描述
    constructor 返回创建字符串属性的函数
    length 返回字符串的长度
    prototype 允许您向对象添加属性和方法

     

    方法描述参数
    charAt() 返回指定索引位置的字符

    表示位置的数字,

    从0开始计数

    charCodeAt() 返回指定索引位置字符的 Unicode 值(字符编码)
    concat() 连接两个或多个字符串,返回连接后的字符串 字符串参数,把该字符串连接到String对象的字面量字符串
    fromCharCode() 将 Unicode 转换为字符串  
    indexOf() 返回字符串中检索指定字符第一次出现的位置 所查找的子字符串
    lastIndexOf() 返回字符串中检索指定字符最后一次出现的位置
    localeCompare() 用本地特定的顺序来比较两个字符串  
    match() 找到一个或多个正则表达式匹配 字符串和正则表达式
    replace() 替换正则表达式匹配的子串
    search() 检索(查找)正则表达式相匹配的值
    slice() 提取字符串的片断,并在新的字符串中返回被提取的部分(返回字符串的某个片段) 该片段的起始和结束位置
    split() 把字符串分割为子字符串数组(根据特定的分隔符,分割字符串) 分隔符和分割的最大数量
    substr() 从起始索引号提取字符串中指定数目的字符(返回子字符串) 字符串的起始和结束位置
    substring() 提取字符串中两个指定的索引号之间的字符(返回子字符串)
    toLocaleLowerCase() 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射  
    toLocaleUpperCase() 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射  
    toLowerCase() 把字符串转换为小写
    toString() 返回字符串对象值  
    toUpperCase() 把字符串转换为大写
    trim() 移除字符串首尾空白  
    valueOf() 返回某个字符串对象的原始值
    anchor 创建一个HTML锚点 字符串和锚点名称
    link 返回针对链接的HTML href 属性的URL值
    biglink loditalicssmallstrikesubsup 以HTML格式化String对象的字面量值,并将其返回

          一些示例:

    var str="This is a test string";
    var s1=str.substr(5,8);    //返回“is a tes”(两个参数是:开始位置和子字符串的长度)
    var s2=str.substring(5,8);  //返回 “is ”(两个参数是:子字符串的开始位置和子字符串的结束位置)
    如果结束位置小于开始位置,那么substring方法会自动交换这两个参数。
    slice()方法和substring方法类似。但不会自动交换这两个参数,如果结束位置小于开始位置,则会返回空字符串,如下:
    var s3=str.substring(4,1); //会自动交换参数位置变成(1,4),然后返回 his
    var s4=str.slice(4,1);   // 返回空字符串

    四、Math对象

      与其他JavaScript 对象不同, Math对象 的所有属性和方法都是静态的。这表示要访问Math对象的属性和方法并不需要创建Math对象的实例;可以直接通过共享对象本身访问相关的方法和属性,如:var newValue=Math.sqrt(4);

      Math 的属性:

    属性描述
    E 返回算术常量 e,即自然对数的底数(约等于2.718)。
    LN2 返回 2 的自然对数(约等于0.693)。
    LN10 返回 10 的自然对数(约等于2.302)。
    LOG2E 返回以 2 为底的 e 的对数(约等于 1.414)。
    LOG10E 返回以 10 为底的 e 的对数(约等于0.434)。
    PI 返回圆周率(约等于3.14159)。
    SQRT1_2 返回返回 2 的平方根的倒数(约等于 0.707)。
    SQRT2 返回 2 的平方根(约等于 1.414)。

      Math 的方法:

    方法描述
    abs(x) 返回 x 的绝对值。
    acos(x) 返回 x 的反余弦值。
    asin(x) 返回 x 的反正弦值。
    atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。
    atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。
    ceil(x) 对数进行上舍入。
    cos(x) 返回数的余弦。
    exp(x) 返回 Ex 的指数。
    floor(x) 对 x 进行下舍入。
    log(x) 返回数的自然对数(底为e)。
    max(x,y,z,...,n) 返回 x,y,z,...,n 中的最高值。
    min(x,y,z,...,n) 返回 x,y,z,...,n中的最低值。
    pow(x,y) 返回 x 的 y 次幂。
    random() 返回 0 ~ 1 之间的随机数。
    round(x) 把数四舍五入为最接近的整数。
    sin(x) 返回数的正弦。
    sqrt(x) 返回数的平方根。
    tan(x) 返回角的正切。

    五、Date 对象

      在JavaScript中,Date对象那个可以用来创建日期实例。当创建了日期对象实例后,就可以使用不同的方法访问或修改日期(或者日期的分量),例如年、月、日等信息。

      1.创建Date对象:new Date()

      2.创建Date对象的另外4种方法:

    var d = new Date();
    var d = new Date(milliseconds);  //自1970年1月1日12:00:00以来所经过的毫秒数
    var d = new Date(dateString);   //日期格式的字符串,如:(“March 12, 1980 12”)亦可不要时间:(“March 12, 2008”)
    var d = new Date(year, month, day, hours, minutes, seconds, milliseconds); //按照这个顺序哦!注意月份是0~11 !!

      3.Date对象属性:

    属性描述
    constructor 返回对创建此对象的 Date 函数的引用。
    prototype 使您有能力向对象添加属性和方法。

      4.Date对象方法:

    方法描述
    getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
    getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
    getFullYear() 从 Date 对象以四位数字返回年份。
    getHours() 返回 Date 对象的小时 (0 ~ 23)。
    getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
    getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
    getMonth() 从 Date 对象返回月份 (0 ~ 11)。
    getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
    getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
    getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。
    getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
    getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
    getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。
    getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。
    getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。
    getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。
    getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。
    getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
    getYear() 已废弃。 请使用 getFullYear() 方法代替。
    parse() 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
    setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
    setFullYear() 设置 Date 对象中的年份(四位数字)。
    setHours() 设置 Date 对象中的小时 (0 ~ 23)。
    setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
    setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
    setMonth() 设置 Date 对象中月份 (0 ~ 11)。
    setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
    setTime() setTime() 方法以毫秒设置 Date 对象。
    setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
    setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。
    setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。
    setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
    setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
    setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。
    setUTCSeconds() setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。
    setYear() 已废弃。请使用 setFullYear() 方法代替。
    toDateString() 把 Date 对象的日期部分转换为字符串。
    toGMTString() 已废弃。请使用 toUTCString() 方法代替。
    toISOString() 使用 ISO 标准返回字符串的日期格式。
    toJSON() 以 JSON 数据格式返回日期字符串。
    toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。
    toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
    toLocaleString() 据本地时间格式,把 Date 对象转换为字符串。
    toString() 把 Date 对象转换为字符串。
    toTimeString() 把 Date 对象的时间部分转换为字符串。
    toUTCString() 根据世界时,把 Date 对象转换为字符串。
    UTC() 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
    valueOf() 返回 Date 对象的原始值。

    六、正则表达式和RegExp(英文全称:Regular Expression 有规律的表达式) 

      正则表达式是描述字符模式的对象。

      正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。

      1.语法:

    var patt=new RegExp(pattern,modifiers);
    
    或者更简单的方式:
    
    var patt=/pattern/modifiers; 

      其中,

    • pattern(模式) 描述了表达式的模式
    • modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配

      注意:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 )。比如,以下是等价的:

    var re = new RegExp("\w+");
    var re = /w+/;

      2.修饰符:用于执行区分大小写和全局匹配:

    修饰符描述
    i 执行对大小写不敏感的匹配。
    g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
    m 执行多行匹配。

      3.方括号:用于查找某个范围内的字符:

    表达式描述
    [abc] 查找方括号之间的任何字符。
    [^abc] 查找任何不在方括号之间的字符。
    [0-9] 查找任何从 0 至 9 的数字。
    [a-z] 查找任何从小写 a 到小写 z 的字符。
    [A-Z] 查找任何从大写 A 到大写 Z 的字符。
    [A-z] 查找任何从大写 A 到小写 z 的字符。
    [adgk] 查找给定集合内的任何字符。
    [^adgk] 查找给定集合外的任何字符。
    (red|blue|green) 查找任何指定的选项。

      4.元字符(Metacharacter):是拥有特殊含义的字符:

    元字符描述
    . 查找单个字符,除了换行和行结束符。
    w 查找单词字符。
    W 查找非单词字符。
    d 查找数字。
    D 查找非数字字符。
    s 查找空白字符。
    S 查找非空白字符。
     匹配单词边界。
    B 匹配非单词边界。
    查找 NUL 字符。
    查找换行符。
    f 查找换页符。
    查找回车符。
    查找制表符。
    v 查找垂直制表符。
    xxx 查找以八进制数 xxx 规定的字符。
    xdd 查找以十六进制数 dd 规定的字符。
    uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。

      5.量词

    量词描述
    n+ 匹配任何包含至少一个 n 的字符串。
    n* 匹配任何包含零个或多个 n 的字符串。
    n? 匹配任何包含零个或一个 n 的字符串。
    n{X} 匹配包含 X 个 n 的序列的字符串。
    n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。
    n{X,} 匹配包含至少 X 个 n 的序列的字符串。
    n$ 匹配任何结尾为 n 的字符串。
    ^n 匹配任何开头为 n 的字符串。
    ?=n 匹配任何其后紧接指定字符串 n 的字符串。
    ?!n 匹配任何其后没有紧接指定字符串 n 的字符串。

      6.RegExp 对象方法

    方法描述FFIE
    compile 编译正则表达式。 1 4
    exec 检索字符串中指定的值。返回找到的值,并确定其位置。 1 4
    test 检索字符串中指定的值。返回 true 或 false。 1 4

      7.支持正则表达式的String 对象的方法

    方法描述FFIE
    search 检索与正则表达式相匹配的值。 1 4
    match 找到一个或多个正则表达式的匹配。 1 4
    replace 替换与正则表达式匹配的子串。 1 4
    split 把字符串分割为字符串数组。 1 4

    七、JavaScript 数组

      与Math 或String 类似,JavaScript 数组也是对象,可以通过构造函数来创建数组,例如:var newArray=new Array('one','two');  也作为字面量值创建数组,这时就不需要显式地使用Array对象:var newArray = ['one','two'];

    第一个数组元素的索引值为 0,第二个索引值为 1,以此类推。

    Array 对象属性:

    方法描述
    concat() 连接两个或更多的数组,并返回结果。
    every() 检测数值元素的每个元素是否都符合条件。
    filter() 检测数值元素,并返回符合条件所有元素的数组。
    indexOf() 搜索数组中的元素,并返回它所在的位置。
    join() 把数组的所有元素放入一个字符串。
    lastIndexOf() 返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
    map() 通过指定函数处理数组的每个元素,并返回处理后的数组。
    pop() 删除数组的最后一个元素并返回删除的元素。
    push() 向数组的末尾添加一个或更多元素,并返回新的长度。
    reverse() 反转数组的元素顺序。
    shift() 删除并返回数组的第一个元素。
    slice() 选取数组的的一部分,并返回一个新数组。
    some() 检测数组元素中是否有元素符合指定条件。
    sort() 对数组的元素进行排序。
    splice() 从数组中添加或删除元素。
    toString() 把数组转换为字符串,并返回结果。
    unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
    valueOf() 返回数组对象的原始值。

      加红颜色的四种方法都会导致数组的变化,即永久性地添加或移除数组元素。

    【test】

    1. 以逗号分隔的字符串是常见的数据格式。如何根据逗号分隔的字符串创建数组呢?请为下面的字符串创建一个数组,并访问第三个元素:

        “cats,dogs,birds,horses”

    解:使用String.split 方法,传入逗号作为分隔符,例如:

    var animalString = "cats,dogs,birds,horses";
    var animalArray = String.split(animalString,",");
    alert(animalArray[2]);  //弹出框显示 birds

    2.特殊字符是表示分隔单词的符号,而B则是表示非分隔单词的符号。请定义一个正则表达式,在下面的字符串中查找所有单词fun ,并将其替换成power:

      “The fun of functions is that they are functional.”

    解:

    var funPattern=/fun/;
    var strToSearch= "The fun of functions is that they are functional.";
    var afterMatch=strToSearch.replace(funPattern,"power");

    3.编写一段代码,获取今天的日期并计算下一周同一天的日期。

    解:Date对象中没有能够操作周的函数,但是可以知道一周是7天,一天是24小时,也就是一周是168小时。使用getHours 方法获取当前日期的小时数,在此基础上增加168,然后重置Date对象的小时值,并输出日期即可:

        var dtNow = new Date();
        var hours = dtNow.getHours();
        hours+=168;
        dtNow.setHours(hours);
        document.writeln(dtNow.toString());

    4.编写一段代码,分别对数字34.44执行向上和向下取整操作。

    解:

        var baseNum=34.44;
        var numFloor = Math.floor(baseNum); //返回34
        var numCeil=Math.ceil(baseNum);  //返回35

    5.根据下面的字符串,利用模式匹配将已有标点符号替换成逗号,然后将作为数组载入,并输出每个数值:

       var str = "apple.orange-strawberry,lemon-.lime";

    解:

        var strToAlter = "apple.orange-strawberry,lemon-.lime";
        var puncPattern = /[.|-]/g;
        var afterMatch = strToAlter.replace(puncPattern,",");
        var fruits = afterMatch.split(',');
        for(var i=0;i<fruits.length;i++){
            document.writeln(fruits[i]);
        }
  • 相关阅读:
    别再为了this发愁了:JS中的this机制
    专为控制打印设计的CSS样式
    怎样用纯HTML和CSS更改默认的上传文件按钮样式
    将HTML转成XHTML并清除一些无用的标签和属性
    JavaScript中textRange对象使用方法总结
    DIV+CSS规范命名集合
    JS条件判断
    CSS只是进化的一部分
    25 个超棒的 HTML5 & JavaScript 游戏引擎开发库
    开发一个完整的JavaScript组件
  • 原文地址:https://www.cnblogs.com/shenxiaolin/p/5514188.html
Copyright © 2011-2022 走看看