zoukankan      html  css  js  c++  java
  • 【JavaScript 对象03】

    一、全局变量&局部变量

    1、定义在脚本片段内的变量叫全局变量

    2、封装在函数内的变量叫局部变量

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>全局变量/局部变量</title>
    </head>
    <body>
        <script type="text/javascript">
    
            var x=2;
            for(var x=1;x<5;x++){
                alert(x)
            }
            //以上情况的变量都是在脚本片段中,是全局变量
            
            function demo(x) {
                x=8;
            }
            //封装在函数(方法)内的变量是局部变量
        </script>
    </body>
    </html>

    二、对象

    1、Object对象

    toString():将对象变成字符串

    2、String对象

    表现形式:
     Var str = new String(“abc”);
    Var str = “abc”;

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <script type="text/javascript" src="demo.js"></script>
        <script type="text/javascript">
            var str="wetyuii";
            println("字符串长度:"+str.length);
            println(str.bold());//字体颜色加粗
            alert(str.bold());//把html的<B>标记放在String对象的文本两端
            println(str.fontcolor("red"))//字体颜色
            println(str.link("www.baidu.com"))//变成超链接
            println(str.substr(1,3));//ety
            println(str.substring(1,3));//et
            
        </script>
    
    </body>
    </html>

    执行结果:

    3、String自定义功能

    js中的方法有限,想要对字符串进行其他操作,需要进行自定义功能

    例如:去除字符串首尾的空格

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>自定义String</title>
    </head>
    <body>
        
        <script type="text/javascript">
            
            /*去除字符串首尾空格思路:
            * 1、定义开始和结尾标记的变量,用于排查首尾空格
            * 2、用开始变量排查,如果是空格,进行递增
            * 3、用结尾变量排查,如果是空格,进行递减
            * 
            * */
            
    
            function trim(str) {
    
                var start,end;
                start=0;
                end=str.length-1;
    
                //charAt()返回指定位置的字符
                while (start<=end && str.charAt(start)==" "){
                    start++;
                }
    
                while (start<=end && str.charAt(end)==" "){
                    end--;
                }
    
                //substring()用于提前指定字符串介于两个指定下标之间的字符
                return str.substring(start,end+1);
            }
    
            var s = "    ab c   ";
            alert("-"+trim(s)+"-")
            
            
        </script>
    </body>
    </html>

    4、String原型属性prototype:返回对象原型的引用(允许向对象添加属性和方法)

    -------->demo.js文件<------
    string.prototype.trim=function (str) {
        var start=0,end=str.length-1;
    
        while (start<end && this.charAt(start)==" "){
            start++;
        }
    
        while (start<end && this.charAt(end)==" "){
            end--;
        }
    
        return str.substring(start,end+1);
    }
    
    -------->html文件<-------
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>prototype</title>
    </head>
    <body>
        <script type="text/javascript" src="demo.js"></script>
        <script type="text/javascript">
    
            var str = "    ab  c   ";
    
            alert("-"+str.trim()+"-")
    
    
        </script>
    </body>
    </html>

     5、原型练习

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>prototypeTest</title>
    </head>
    <body>
    
        <script type="text/javascript" src="demo.js"></script>
        <script type="text/javascript" src="stringTools.js"></script>
    
        <script type="text/javascript">
    
            /*
            * 练习1、给字符串添加一个功能,将字符串变成字符数组
            *
            * 练习2、给字符串添加一个功能,将字符串反转
            * */
    
            var str = "abcdef";
            println(str.toCharArray());
    
            println(str.reverses());
    
        </script>
    </body>
    </html>
    
    
    -------->stringTools.js<-------
    /*
    * 去除首尾空格
    * */
    String.prototype.trim=function (str) {
        var start=0,end=str.length-1;
    
        while (start<end && this.charAt(start)==" "){
            start++;
        }
    
        while (start<end && this.charAt(end)==" "){
            end--;
        }
    
        return str.substring(start,end+1);
    }
    
    /*
    * 原先属性添加功能,实现字符串转换成字符数组
    * */
    
    String.prototype.toCharArray = function () {
    
        var cha = [];
    
        for(var i=0;i<this.length;i++){
            //charAt返回指定位置的字符
            cha[i]=this.charAt(i);
        }
    
        return cha;
    
    }
    
    /*
    * 将字符串进行反转
    * */
    
    String.prototype.reverses = function() {
        //调用toCharArray方法把字符转换成字符数组
        var arr = this.toCharArray();
    
    
        //将数组位置置换功能进行封装,并定义到了反转功能内部
        //函数里面定义函数在js里面是可以的,但是在Java中是不允许的
        function swapp(arr,x,y) {
            var temp = arr[x];
            arr[x]= arr[y];
            arr[y]= temp;
        }
    
        //遍历字符数组,进行反转
        for (var start=0,end=this.length-1;start<end;start++,end--){
            swapp(arr,start,end);
        }
    
        //把字符数组转成字符
        //join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
        return arr.join("");
    }
  • 相关阅读:
    进程、线程、协程
    C++内存模型
    动态库dll与静态库lib
    virtual 虚函数表
    C++面试随笔
    alloc()、malloc()、calloc()、realloc()区别及用法
    C/C++ 面试题记录
    VC底层钩子程序在Win7/Vista下无效
    JMeter安装之后修成中文版
    明天开始 新的旅程
  • 原文地址:https://www.cnblogs.com/frankruby/p/13822071.html
Copyright © 2011-2022 走看看