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

    JavaScript中除了null和undefined以外其他的数据类型都被定义成了对象,也可以用创建对象的方法定义变量,String、Math、Array、Date、RegExp都是JavaScript中重要的内置对象,在JavaScript程序大多数功能都是基于对象实现的。

    字符串对象

    字符串对象创建

    字符串创建(两种方式)
    ① 变量 = “字符串”
    ② 字串对象名称 = new String (字符串)

    var str1="hello world";
    var str1= new String("hello word");
    

    上面创建的字符串是一个字符串对象

    String {0: "h", 1: "e", 2: "l", 3: "l", 4: "o", 5: " ", 6: "w", 7: "o", 8: "r", 9: "l", 10: "d", length: 11, [[PrimitiveValue]]: "hello world"}0: "h"1: "e"2: "l"3: "l"4: "o"5: " "6: "w"7: "o"8: "r"9: "l"10: "d"length: 11__proto__: String[[PrimitiveValue]]: "hello world"
    

    字符串对象的属性和函数

    字符串对象的属性和函数

     x.length         ----获取字符串的长度
     x.toLowerCase()        ----转为小写
     x.toUpperCase()        ----转为大写
     x.trim()               ----去除字符串两边空格    
    

    字符串查询方法

    • x.charAt(index) ----str1.charAt(index);----获取指定位置字符,其中index为要获取的字符索引

    • x.indexOf(findstr,index)----查询字符串位置 index是查询的初始位置

    • x.lastIndexOf(findstr) --查询的是字符串的索引位置

    • x.match(regexp) ----match返回匹配字符串的数组,如果没有匹配则返回null

    • x.search(regexp) ----search返回匹配字符串的首字符位置索引

    var str1="welcome to the world of JS!";
                var str2=str1.match("world");
                var str3=str1.search("world");
                alert(str2[0]);  // 结果为"world"
                alert(str3);     // 结果为15  位置
    

    字符串处理方法

    截断:
    substr(位置,长度)
    substring(开始位置,结束位置) 顾头不顾尾

    slice(start,结束位置) 顾头不顾尾 切片操作

    • x.substr(start, length) ----start表示开始位置,length表示截取长度

    • x.substring(start, end) ----end是结束位置

    • x.slice(start, end) ----切片操作字符串

    • x.replace(findstr,tostr) ---- 字符串替换

    • x.split(); ----分割字符串

    • x.concat(addstr) ---- 拼接字符串

     var str1="abcdefgh";
            var str2=str1.slice(2,4);
            var str3=str1.slice(4);
            var str4=str1.slice(2,-1);
            var str5=str1.slice(-3,-1);
    
            alert(str2); //结果为"cd"
    
            alert(str3); //结果为"efgh"
    
            alert(str4); //结果为"cdefg"
    
            alert(str5); //结果为"fg"
    
    var str1="一,二,三,四,五,六,日";
                 var strArray=str1.split(",");
                   console.log(strArray)
    
    Python re 找索引的位置span方法
    

    数组对象

    创建方式

    • 创建方式1:
      var arrname = [元素0,元素1,….]; // var arr=[1,2,3];

    • 创建方式2:
      var arrname = new Array(元素0,元素1,….); // var test=new Array(100,"a",true);

    数组对象的属性和方法

    • join方法 x.join(bystr) ----将数组元素拼接成字符串
    var arr1=[1, 2, 3, 4, 5, 6, 7];
        var str1=arr1.join("-");
        alert(str1);  //结果为"1-2-3-4-5-6-7" 
    

    数据增加元素

    console.log(arr1.join("=="));
    console.log(arr1.concat(1,2,3));//并没有改变原来的
    console.log(arr1.length);
    console.log(arr1.concat([1,2,3]));//一次性添加
    console.log(arr1.length);
    console.log(arr1.toString());//转换成字符串传送
    

    数组排序

    倒序

    var arr1 =[54,32,45,100];
            arr1.reverse()
            console.log(arr1);
    
            arr1.sort();//这个是按照第一个数字的ASCII排序
             console.log(arr1);
    

    //自定义一个数字的大小排序

    function intsort(a,b){
        return a-b;//  返回值大于0 就是正数  否则是负数
    }
    console.log(arr1.sort(intsort));//排序
    

    数组的切片

    var arr1 =[54,32,45,100,500,55];
    console.log(arr1.slice(1,4));
    console.log(arr1)
    

    结果:
    [32, 45, 100] 这是切出来的

    数组的删除

    splice

    //x. splice(start, deleteCount, value, ...)
    
    //使用注解
    
    //x代表数组对象
    //splice的主要用途是对数组指定位置进行删除和插入
    //start表示开始位置索引
    //deleteCount删除数组元素的个数
    //value表示在删除位置插入的数组元素
    //value参数可以省略       
            
    var a = [1,2,3,4,5,6,7,8];
    a.splice(1,2);
    
    alert(a.toString());//a变为 [1,4,5,6,7,8]
    
    a.splice(1,1);
    
    alert(a.toString());//a变为[1,5,6,7,8]
    
    a.splice(1,0,2,3);
    
    alert(a.toString());//a变为[1,2,3,5,6,7,8]
    

    遍历数组

    var arr1 = [111,222,333];
    //        for (var i in arr1){
    //            console.log(arr1[i])
    //        }
            for (i=0;i<arr1.length;i++){
                console.log(arr1[i])
            }
    
    

    数组的push和pop shift unshift

    //栈操作1
    
    var arr1=[1,2,3];
    arr1.push(99);//压到最后
    console.log(arr1);
    arr1.pop();//后进先出
    console.log(arr1);
    
    // 栈操作2shift unshift
    
    var arr1=[1,2,3];
    arr1.unshift(123132);//放到了最前面
    console.log(arr1);
    arr1.shift();//先进后出 ==后进先出
    console.log(arr1);
    

    都是后进先出的方法,不同在于unshift压栈的时候放在最前面

    自定义的字典对象

    key的引号可有可无,最后都会去掉,value字符串的时候双引号
    //json实际就是Javascript的对象
    容错率高,不能

    Date对象

    打印具体的格式的时间

    • 获取日期和时间
    • getDate() 获取日
    • getDay () 获取星期
    • getMonth () 获取月(0-11)
    • getFullYear () 获取完整年份
    • getYear () 获取年
    • getHours () 获取小时
    • getMinutes () 获取分钟
    • getSeconds () 获取秒
    • getMilliseconds () 获取毫秒
    • getTime () 返回累计毫秒数(从1970/1/1午夜)

    Date对象的方法—设置日期和时间n

    创建时间对象

    //方法1:不指定参数
    var nowd1=new Date();
    alert(nowd1.toLocaleString( ));
    //方法2:参数为日期字符串
    var nowd2=new Date("2004/3/20 11:12");
    alert(nowd2.toLocaleString( ));
    var nowd3=new Date("04/03/20 11:12");
    alert(nowd3.toLocaleString( ));
    //方法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( ));//毫秒并不直接显示
    

    小练习

    var date = new Date();
    var year=date.getFullYear();
    var month=date.getMonth()+1;//0-11
    var day = date.getDate();
    var hour=date.getHours();
    var minutes = date.getMinutes();
    var seconds = date.getSeconds();
    var week = date.getDay();
    
    console.log(year+"-"+month+"-"+day+" "+hour+":"+minutes+":"+seconds+" "+parseweek(week));
    
    function parseweek(week) {
        var arry =["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
        return arry[week];
    }
    

    结果:
    2017-5-24 22:39:31 星期三

    Math对象

    • abs(x) 返回数的绝对值。
    • exp(x) 返回 e 的指数。
    • floor(x)对数进行下舍入。
    • log(x) 返回数的自然对数(底为e)。
    • max(x,y) 返回 x 和 y 中的最高值。
    • min(x,y) 返回 x 和 y 中的最低值。
    • pow(x,y) 返回 x 的 y 次幂。
    • random() 返回 0 ~ 1 之间的随机数。
    • round(x) 把数四舍五入为最接近的整数。
    • sin(x) 返回数的正弦。
    • sqrt(x) 返回数的平方根。
    • tan(x) 返回角的正切。

    Math.random是取的0-1之间的数
    *100
    1-100之间的随机数

    var num = Math.random();//产生0-1中间的随机数
    num=num*100;
    num=Math.round(num);//四舍五入
    console.log(num);
    

    function对象(重点)

    function实际就是类

    函数的定义

    function 函数名 (参数){<br>    函数体;
        return 返回值;
    }
    

    用 Function 类直接创建函数的语法如下:
    var 函数名 = new Function("参数1","参数n","function_body");
    注意:js的函数加载执行与python不同,它是整体加载完才会执行,所以执行函数放在函数声明上面或下面都可以:

    函数function 对象属性

    函数的调用

    -------------------面试题-----------
     function a(a,b){
        alert(a+b);
    }
    
       var a=1;
       var b=2;
       a(a,b)
    

    这个会报错,因为a已经被覆盖了,后面不能当做函数进行调用了

    函数的内置对象argums

    使用arguments可以是直接使用函数的属性

    function add(a,b){
    
            console.log(a+b);//3
            console.log(arguments.length);//2
            console.log(arguments);//[1,2]
    
        }
        add(1,2)
    
        ------------------arguments的用处1 ------------------
        function nxAdd(){
            var result=0;
            for (var num in arguments){
                result+=arguments[num]
            }
            alert(result)
    
        }
    
        nxAdd(1,2,3,4,5)
    
    //     ------------------arguments的用处2 ------------------
    
        function f(a,b,c){
            if (arguments.length!=3){
                throw new Error("function f called with "+arguments.length+" arguments,but it just need 3 arguments")
            }
            else {
                alert("success!")
            }
        }
    
        f(1,2,3,4,5)
    

    匿名函数

    先想一下Python的lambd的使用

    (lambda x,y:x+y)(1,2)
    只使用一次,省内存

    js版本的匿名函数

    (function () {
                console.log("hello")
            })()
    
    (function (name) {
                console.log(name)
            })("haha")
    

    参考内容:

    http://www.cnblogs.com/yuanchenqi/articles/6893904.html

  • 相关阅读:
    Node.js之使用Buffer类处理二进制数据
    node.js之require
    node.js之模块
    node.js之setTimeout()、clearTimeout()与 setInterval()与clearInterval()
    Node.js之包与npm包管理工具
    node.js基础知识
    运维之linux基础知识(一)
    node.js之调试器
    Ubuntu 18.04安装搜狗输入法
    微信小程序项目总结记账小程序(包括后端)
  • 原文地址:https://www.cnblogs.com/Python666/p/6901508.html
Copyright © 2011-2022 走看看