zoukankan      html  css  js  c++  java
  • day74-JS-内置对象和方法

    内置对象和方法
        var s1 = "abc"和var s2 = new String("abc")的区别:typeof s1 --> string而 typeof s2 --> Object
        注意:内置对象首字母都是大写。
    
    1. 自定义对象:
        1.1 JavaScript的对象(Object)本质上是键值对。键在JS里面叫属性。
        var a = {"name": "Alex", "age": 18};
        console.log(a.name);
        console.log(a["age"]);
        
        1.2 遍历对象中的内容:
        for(var i in a){
            console.log( i, a[i] )
            };
        结果是name Alex
                   age 18
        
        1.3 键的引号可有可无:
        var person2 = {name:'tom',age:18};  
            输入person2的结果是Object { name: "tom", age: 18 }
        var person3 = {'name':'tom','age':18};  
            输入person3的结果是Object { name: "tom", age: 18 }
    
        1.4 创建对象
            var person4 = new Object();    //创建对象
            person4.name = 'marry';    //添加键值对(属性值)
            person4['age'] = 18;        //添加键值对(属性值)
    
        注意:
            var name = 'abc';
            var person = {
                name:'tom',
                age:18,
                abc:123
                };
            执行person[name],结果是123
    
    2. Date对象
        2.1 创建Date对象
            //方法1:不指定参数,当地时间
            var d1 = new Date();
            console.log(d1.toLocaleString());
            结果:    2020/3/4 下午2:30:11
    
            //方法2:参数为指定日期的字符串
            var d2 = new Date("2004/3/20 11:12");
            console.log(d2.toLocaleString());
            结果:    2004/3/20 上午11:12:00
    
            //方法3:参数为毫秒数,从1970年开始跑了5000毫秒是什么时间
            var d3 = new Date(5000);
            console.log(d3.toLocaleString());
            console.log(d3.toUTCString());
            结果:    1970/1/1 上午8:00:05 
                Thu, 01 Jan 1970 00:00:05 GMT
    
            //方法4:参数为年月日小时分钟秒毫秒
            var d4 = new Date(2004,0,20,11,12,0,300);
            console.log(d4.toLocaleString());  //毫秒并不直接显示
            结果:    2004/1/20 上午11:12:00--->上面的0代表1月
    
        2.2 Date对象的方法:
            var d = new Date(); 
            //getDate()                     获取日
            //getDay ()                     获取星期
            //getMonth ()                   获取月(0-11)
            //getFullYear ()                获取完整年份
            //getHours ()                   获取小时
            //getMinutes ()                 获取分钟
            //getSeconds ()                获取秒
            //getMilliseconds ()            获取毫秒
            //getTime ()                    返回累计毫秒数(从1970/1/1午夜)
    
    3. JSON对象
        var a = '{"name": "Alex", "age": 18}';
        var b = {"name": "Alex", "age": 18};
        // JSON字符串转换成对象
        var obj = JSON.parse(a); 
        // 对象转换成JSON字符串
        var str = JSON.stringify(b);
    
    4. Math对象:数学常用方法
        abs(x)      返回数的绝对值。
        floor(x)    对数进行下舍入。Math.floor(5.8)和Math.floor(5.1);结果都是5
        max(x,y)    返回 x 和 y 中的最高值。
        min(x,y)    返回 x 和 y 中的最低值。
        pow(x,y)    返回 x 的 y 次幂。Math.pow(10,2);结果是100
        random()    返回 0 ~ 1 之间的随机数。
        round(x)    把数四舍五入为最接近的整数。Math.round(5.1);结果是5。Math.round(5.5);结果是6。
    
    5. RegExp对象,正则表达式
        5.1 RegExp对象创建方式一:
        var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$");    //创建RegExp对象方式(逗号后面不要加空格)
        var s1 = "bc123";                    //要匹配的字符串
        reg1.test(s1);  // true    //RegExp对象的test方法,测试一个字符串是否符合对应的正则规则,返回值是true或false。
    
        5.2 RegExp对象创建方式二:
        var reg1 = /^[a-zA-Z][a-zA-Z0-9_]{5,11}$/;    //不需要引号
    
        5.3 简写:/^[a-zA-Z][a-zA-Z0-9_]{5,11}$/.test("bc123");
    
        5.4 四个方法:
            var s2 = "hello world";
    
            s2.match(/o/g);         // ["o", "o"]             查找字符串中 符合正则 的内容
            s2.search(/h/g);        // 0                      查找字符串中符合正则表达式的内容位置
            s2.split(/o/g);         // ["hell", " w", "rld"]  按照正则表达式对字符串进行切割
            s2.replace(/o/g, "s");  // "hells wsrld"          对字符串按照正则进行替换
    
        5.5 g和i
            var s1 = "name:Alex age:18";
    
            s1.replace(/a/, "哈哈哈");      // "n哈哈哈me:Alex age:18"
            s1.replace(/a/g, "哈哈哈");     // "n哈哈哈me:Alex 哈哈哈ge:18"      全局匹配,g是globle
            s1.replace(/a/gi, "哈哈哈");    // "n哈哈哈me:哈哈哈lex 哈哈哈ge:18"  不区分大小写
    
        5.6 注意事项:
            // 注意事项1:
                // 如果regExpObject带有全局标志g,test()函数不是从字符串的开头开始查找,
                    而是从属性regExpObject.lastIndex所指定的索引处开始查找。
                // 该属性值默认为0,所以第一次仍然是从字符串的开头查找。
                // 当找到一个匹配时,test()函数会将regExpObject.lastIndex的值改为字符串中本次匹配内容的最后一个字符的下一个索引位置。
                // 当再次执行test()函数时,将会从该索引位置处开始查找,从而找到下一个匹配。
                // 因此,当我们使用test()函数执行了一次匹配之后,如果想要重新使用test()函数从头开始查找,则需要手动将regExpObject.lastIndex的值重置为 0。
                // 如果test()函数再也找不到可以匹配的文本时,该函数会自动把regExpObject.lastIndex属性重置为 0。
    
                var reg3 = /foo/g;
                // 此时 regex.lastIndex=0
                reg3.test('foo'); // 返回true
                // 此时 regex.lastIndex=3
                reg3.test('xxxfoo'); // 还是返回true
                // 所以我们在使用test()方法校验一个字符串是否完全匹配时,一定要加上^和$符号。
    
            // 注意事项2:
            // 当我们不加参数调用RegExpObj.test()方法时, 相当于执行RegExpObj.test("undefined"), 并且/undefined/.test()默认返回true。
                test()的()不能为空
                var reg4 = /^undefined$/;
                reg4.test(); // 返回true
                reg4.test(undefined); // 返回true
                reg4.test("undefined"); // 返回true
    
            // 注意事项3:不能有空格
            /^[a-zA-Z][a-zA-Z0-9_]{5,11}$/; //{5,11}不能有空格,例如{5, 11}逗号后面有空格,结果就不一样了。
  • 相关阅读:
    团队作业—第二阶段08
    团队作业—第二阶段07
    java--Map使用实现模拟斗地主洗牌发牌
    课程作业08 MVC框架具体使用
    课程作业 MVC框架
    课堂作业06_23种设计模式
    课堂作业05 《6种质量属性战术》
    课堂作业04
    课堂作业03
    架构漫谈阅读笔记
  • 原文地址:https://www.cnblogs.com/python-daxiong/p/12410620.html
Copyright © 2011-2022 走看看