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));
  • 相关阅读:
    POJ 3672 水题......
    POJ 3279 枚举?
    STL
    241. Different Ways to Add Parentheses
    282. Expression Add Operators
    169. Majority Element
    Weekly Contest 121
    927. Three Equal Parts
    910. Smallest Range II
    921. Minimum Add to Make Parentheses Valid
  • 原文地址:https://www.cnblogs.com/jalenFish/p/14099088.html
Copyright © 2011-2022 走看看