zoukankan      html  css  js  c++  java
  • JavaScript的对象介绍和常用内置对象介绍

    JavaScript是面向对象的编程。对象是JavaScript的重要组成元素。
    对象由属性和方法组成。
    JavaScript包含四种对象:
    1.内置对象(11种)
    1.1 基本类型包装类型
    Boolean, Number, String
    1.2 数组对象 : Array
    1.3 工具对象:Math , Date
    1.4 正则对象:RegExp
    1.5 其他对象:Function ,Error,Global,Object
    2.自定义对象
    3.浏览器对象
    4.ActiveX对象。
    五、常用内置对象介绍:
        1. Boolean,Number不建议直接使用。
    2. String:字符串类型
      1.常见函数和属性
    length
    属性,获取字符串的字符数量
    charAt(i)
    返回给定位置的字符
    charCodeAt()
    返回给定位置的字符的字符编码
    var s = "helloworld";
    s.charAt(1);   //e
    s.charCodeAt(1); //101
    concat()
    将一个或多个字符串拼接起来,返回拼接得到的新字符串,但是大多使用"+"拼接
    slice()
    (开始位置,返回字符后一个字符位置)
    substr()
    (开始位置,返回字符个数)
    //从下标为3的位置开始,截取4个字符,包括下标为3的位置的字符
    document.write(s.substr(3,4)+"<br>");
    substring()
    (开始位置,返回字符后一个字符位置)
    //从下标为6的位置开始截取,截取到下标为8的位置,但是不包括下标为8的字符[6,8)
    document.write(s.substring(6,8)+"<br>");
    var s = "helloworld";
    s.slice(3,7); //lowo
    s.substr(3,7); //loworld
    s.substring(3,7);//lowo
    s //helloworld 不改变原值大小
    indexOf(查找字符,startposition);
    从前往后查找指定字符所在位置
    "abcababacabc".indexOf("a",2)
    lastIndexOf(要查找字符,开始位置);
    从后往前查找字符串所在位置,可以有第二个参数,代表从字符串中哪个位置开始查找。
    trim();
    删除前置以及后置中的所有空格,返回结果
    var s = " hello world ";
    console.log("|"+s.trim()+"|"); //|hello world|
    toLowerCase() :转换为小写
    toUpperCase() :转换为大写
    match() : 查找字符串,返回匹配字符串的数组,如果没有匹配则返回null
    "JavaScript".match("Script") ----> 返回Script。
    search() : 查找字符串,返回匹配字符串的首字符位置索引
    "JavaScript".search("Script") ----> 返回4.
    replace() : 替换字符串。
    "JavaScript".replace("cri","heihei") ----> JavaSheiheipt
      
    2.Array
    ECMAScript数组和其他语言中的数组都是有序列表,但是有以下特性:
    a.每一项都可以保存任何类型的数据。
    b.数组的大小是可以动态调整。
    c.数组的length属性:可读可写,可以通过设置length的值从数组的末尾移除项或向数组中添加新项

    1) 创建方法
      1. 使用Array构造函数
     var arr = new Array();
     var arr = new Array(20);  // 预先指定数组的大小
     var arr = new Array("terry","larry","boss"); //传入参数
     注意:new 关键字也可以省略,但是尽量不要省略
      2. 使用数组字面量
     由一对包含数组项的方括号表示,多个数组项之间用逗号分隔
     var arr = ["terry","larry","boss"];
     var arr = [] //空数组

    2) 访问数组元素
      数组变量名[索引]
    1.如果索引小于数组的长度,返回对应项的值
    var arr = ["terry","larry","boss"];
    arr[0] ; //访问数组中第一个元素,返回值为terry
    2.如果索引大于数组的长度,数组自动增加到该索引值加1的长度
    var arr = ["terry","larry","boss"];
    arr[3] ="jacky"; //添加元素,数组程度变为4

    数组最多可以包含4 294 967 295个项

    3) 检查数组
    var arr = [];
    typeOf(arr); //返回object
    Array.isArray(arr); //判断arr是否是数组类型

    4) 转换数组为字符串
      数组继承Object方法,并且对这些方法进行了重写
    toLocalString();
    toString(); 在默认情况下都会以逗号分隔字符串的形式返回数组项
    例如:
    var arr = ["terry","larry","boss"];
    arr.toString() //terry,larry,boss 
    valueOf(); 在默认情况下以数组字面量的方式显示(firefox)
    arr.valueOf(); //["terry","larry","boss"];
    join(); 使用指定的字符串用来分隔数组字符串
    例如:
    arr.join("||"); //briup||terry||jacky

    5) 栈,队列方法
    1.栈  LIFO (Last-In-First-Out)
    push() 可接受任意类型的参数,将它们逐个添加到数组的末尾,并返回数组的长度
    pop() 从数组的末尾移除最后一项,减少数组的length值,返回移除的项
    2.队列 FIFO (First-In-First-Out)
    shift()  移除数组中的第一个项并且返回该项,同时将数组的长度减一。
    unshift() 在数组的前端添加任意个项,并返回新数组的长度。
    6) 排序
      reverse()  反转数组项的顺序
      sort()  
    1.默认排序:该方法会调用每个数组项的toString() 转型方法,然后排序
    2.自定义排序:
    a.该方法可以接受一个比较函数作为参数,比较函数有两个参数
    b.如果第一个参数位于第二个参数之前,返回负数
    c.如果第一个参数位于第二个参数之后,返回正数
    var arr = [11,5,23,7,4,1,9,1];
    console.log(arr.sort(compare));

    //该比较函数适合于大多数数据类型
    function compare(v1,v2){
    if(v1>v2){
    return -1;
    }else if( v1<v2){
    return 1;
    }else{
    return 0;
    }
    }
    7) 操作方法
    concat() :先创建当前数组的一个副本,然后将接收到的参数添加到这个副本的末尾,返回副本
    var arr = ["aa","bb","cc","dd"];
    var arr_new = arr.concat("ee","ff"); 
    // arr_new = ["aa", "bb", "cc", "dd", "ee", "ff"]// arr不改变
    slice() :可接受一个或者两个参数(返回项的起始位置,结束位置)
    当接受一个参数,从该参数指定的位置开始,到当前数组末尾的所有项
    当接受两个参数,起始到结束之间的项,但是不包含结束位置的项
    例如:
    var arr = ["aa","bb","cc","dd"];
    1.接受一个参数时
     var arr_new = arr.slice(1);
    // arr_new = ["bb", "cc", "dd"],arr 不改变
    2.接受两个参数时
     var arr_new = arr.slice(1,2);
    // arr_new = ["bb"]; arr不改变
    splice() : 向数组的中部插入数据将始终返回一个数组,该数组中包含从原始数组中删除的项。
    删除:指定两个参数(删除第一的起始位置,要删除的项数)
    插入:指定三个参数(起始位置,0,要插入的项任意数量的项)
    替换:指定三个参数(起始位置,要删除的项,要插入的任意数量的项)

    例如:
    var arr = ["aa","bb","cc","dd"];
    1.删除
     var del_arr = arr.splice(1,2);
    // arr = ["aa","dd"]; 在原数组进行了删除操作
    // del_arr = ["bb","cc"];返回删除的元素数组
    2.插入
     var del_arr = arr.splice(1,0,"ee","ff");
    // arr =  ["aa", "ee", "ff", "bb", "cc", "dd"] 将指定项插入到1位置处
    //del_arr = [], 返回空数组
    3.替换
     var del_arr = arr.splice(1,2,"ee","ff");
    // arr =  ["aa", "ee", "ff", "dd"] 将"bb","cc" 替换成了"ee","ff"
    //del_arr = ["bb", "cc"], 返回删除的元素数组
    indexOf()(要查找的项,开始查找的位置(可选)) 从数组开头向后查找,使用全等操作符,找不到该元素返回-1
    var arr = ["22","11","cc","dd","11"];
    arr.indexOf(11); //返回-1,因为使用"==="进行匹配
    arr.indexOf("11"); //返回1,从前往后匹配,返回第一个匹配元素的位置
    lastIndexOf()(要查找的项,开始查找的位置(可选)) 从数组末尾向前查找,使用全等操作符,找不到该元素返回-1
    var arr = ["22","11","cc","dd","11"];
    arr.lastIndexOf("11"); //返回1,从后往前匹配,返回第一个匹配元素的位置
    3.Math对象
    1)常用方法
    1.比较方法
    Math.min() 求一组数中的最小值
    Math.max() 求一组数中的最大值
    Math.min(1,2,19,8,6); //1
    2.将小数值舍入为整数的几个方法:
    Math.ceil()  向上舍入
    Math.floor() 向下舍入
    Math.round() 四舍五入
    console.log(Math.ceil(12.41)); //13
    console.log(Math.floor(12.41)); //12
    console.log(Math.round(12.3)); //12
    console.log(Math.round(12.5)); //13
    3.随机数
    Math.random() 返回大于0小于1的一个随机数
    2)其他方法:(了解即可,即用即查)
    abs(num) 返回num绝对值
    exp(num) 返回Math.E的num次幂
    log(num) 返回num的自然对数
    pow(num,power) 返回num的power次幂
    sqrt(num) 返回num的平方根
    scos(x) 返回x的反余弦值
    asin(x) 返回x的反正弦值
    atan(x) 返回x的反正切值
    atan2(y,x) 返回y/x的反正切值
    cos(x) 返回x的余弦值
    sin(x) 返回x的正弦值
    tan(x) 返回x的正切值   
      
    4.Date 
    日期
    1.创建日期对象:
    方法1:不指定参数
    var nowd1=new Date();
    方法2:参数为日期字符串
    var nowd2=new Date("2004/3/20 11:12");
    var nowd3=new Date("04/03/20 11:12");
    方法3:参数为毫秒数
    var nowd3=new Date(5000);
    alert(nowd3.toLocaleString( ));
    alert(nowd3.toUTCString());

    方法4:参数为年月日小时分钟秒毫秒
    var nowd4=new Date(2004,2,20,11,12,0,300);
    alert(nowd4.toLocaleString( ));
    //毫秒并不直接显示
    document.write("<h1>日期对象</h1>");
    var date = new Date();
    document.write(date+"<br>");
    //获得当前年份-1900
    document.write(date.getYear()+"<br>");
    //获得当前年份
    document.write(date.getFullYear()+"<br>");
    //获得当前月份-1
    document.write(date.getMonth()+"<br>");
    //获得当前是一个月中的哪一号
    document.write(date.getDate()+"<br>");
    //获得星期几
    document.write(date.getDay()+"<br>");
    //获得时间中的 时 (24)
    document.write(date.getHours()+"<br>");
    //获得时间中的 分 
    document.write(date.getMinutes()+"<br>");
    //获得时间中的 秒 
    document.write(date.getSeconds()+"<br>");
    //获得时间中的 毫秒 
    document.write(date.getMilliseconds()+"<br>");
      
    5.RegExp 正则对象
    1. 正则表达式
    是一个描述字符模式的对象.
    语法:
    创建正则表达式对象:
    var reg = new RegExp(pattern,modifiers);
    或者
    var reg = /pattern/modifiers; 
    注:
    pattern   描述了表达式的模式/规则
    modifiers 用于指定全局匹配、区分大小写的匹配和多行匹配
    对应修饰符modifiers有三个选项:
    i 执行对大小写不敏感的匹配。
    g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
    m 执行多行匹配。
    同时在创建正则表达式对象的是也可以不写修饰符

    2 pattern内容的分析
     
    括号:
    [abc] 查找方括号之间的任何字符。
    [^abc] 查找任何不在方括号之间的字符。
    [0-9] 查找任何从 0 至 9 的数字。
    [a-z] 查找任何从小写 a 到小写 z 的字符。
    [A-Z] 查找任何从大写 A 到大写 Z 的字符。
    [A-z] 查找任何从大写 A 到小写 z 的字符。
    (red|blue|green) 查找任何指定的选项。
    元字符:
    . 查找单个字符,除了换行和行结束符。 想表示字符. 可以转义
    w 查找单词字符。字母 数字 _
    W 查找非单词字符。非 字母 数字 _
    d 查找数字。
    D 查找非数字字符。
    s 查找空白字符。
    S 查找非空白字符。
     匹配单词边界。
    B 匹配非单词边界。
    查找 NUL 字符。
    查找换行符。
    f 查找换页符。
    查找回车符。
    查找制表符。
    v 查找垂直制表符。

    量词:
    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 的字符串。
    3 支持正则表达式的 String 对象的方法
    使用字符串对象的相关方法按照正则表达式所描述的规则去搜索、匹配、替换、分割.

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

    4 RegExp 对象方法
       使用正则表达式对象(RegExp)的相关方法来对指定字符串进行格式的验证.

    compile 编译正则表达式。
    exec 检索字符串中指定的值。返回找到的值,并确定其位置。
    test 检索字符串中指定的值。返回 true 或 false。
    5 例子
    var v = "aa1a";
    //字符串中包含数字就行
    var reg = /d/;
    console.log(reg.test(v));

    var v = "aaa1111aa";
    //字符串中连着出现4次(或者更多)数字即可
    var reg = /d{4}/;
    console.log(reg.test(v));

    var v = "1111";
    //^表示开头 $表示结尾
    //开头和结尾直接必须连续出现4次数字
    var reg = /^d{4}$/;
    console.log(reg.test(v));

    var v = "1aaa2345";
    //开头一个非0数字,后面跟任意字符0-n个,最后4个数字结尾
    var reg = /^[1-9]{1}.*d{4}$/;
    console.log(reg.test(v));


    var v = "aaredaa";
    //red go yes 三个单词任意匹配
    var reg = /(red|go|yes)/;
    console.log(reg.test(v));


    var v = "a1";
    //开头是一个字符 结尾是一个数字(一共俩个字符)
    var reg = /^wd$/;
    console.log(reg.test(v));

    var v = "aasd11111";
    //开头是字符(1-n个)
    var reg = /^w+d$/;
    console.log(reg.test(v));

    var v = "aasd  )_###11111";
    //开头是字符(1-n个)  中间随意匹配
    var reg = /^w+(.*)+d$/;
    console.log(reg.test(v));
    //email验证
    var v = "cuilue@briup.com";
    var reg = /^w+@w+(.[A-z]{2,3}){1,2}$/;
    console.log(reg.test(v));
  • 相关阅读:
    JAXB
    Servlet编码和解码
    FileUpload
    DataSource
    20200821 二分搜索
    火狐账户如何在Android手机端与电脑端同步
    20200807 贪心;排队接水;[AHOI2018初中组]分组;国王的游戏
    20200802 高精度问题 阶乘之和
    20200803 牛客多校赛
    20200207
  • 原文地址:https://www.cnblogs.com/jalenFish/p/14099088.html
Copyright © 2011-2022 走看看