首页 > 代码库 > JavaScript-基础语法(3)

JavaScript-基础语法(3)

String的基本功能
out:封装的document.write();
很多方法与java重复
<script type="text/javascript" src=http://www.mamicode.com/"Out.js"> </script>>
自定义功能:

1.定义一个去除字符串两端空格的方法
function trim(x){
             var i = 0,j = x.length-1;
             for(;i< x.length, x.charAt(i)==' ',j>=0, x.charAt(j)==' ';i++,j--);
             return x.substring(i,j+1);
         }
         var str = "  a s d asd  ";
        alert(str);
         alert("-"+trim(str)+"-");

String的原型属性:prototype(重点)

对于字符串的bold()方法可以由字符串对象直接调用,而上面的trim方法也是用来操作字符串的方法,如何实现将trim方法添加到字符串对象中,直接由对象调用,

String的原型是String.prototype
那么我们就可以使用一个该字符串的原型属性来完成
原型:就是该对象的一个描述,该描述中如果添加了新功能
那么该对象都会具备这个功能
而prototype就可以获取该字符串的原对象(prototype就可以使对象的功能进行扩展)

将自定义的trim方法,添加到str中
 function trim(x){
             var i = 0,j = x.length-1;
             for(;i< x.length, x.charAt(i)==' ',j>=0, x.charAt(j)==' ';i++,j--);
             return x.substring(i,j+1);
         }
         var str = "  a s d asd  ";
        String.prototype.sss = 250;//给string原型添加一个sss属性名为sss = 199;
         //那么随便 一个字符串对象都有sss,且都是199
         //第一种
         String.prototype.trim = trim;
         alert(str.trim(str));
            //第二种,匿名
         String.prototype.trim = function (){
             var i = 0,j = this.length-1;
             for(;i< this.length, this.charAt(i)==' ',j>=0, this.charAt(j)==' ';i++,j--);
             return this.substring(i,j+1);
         }
         alert(str.trim());
           /*开发时封装为一个单独的文件,导入即可*/

原型练习:
1.给字符串添加一个字符串变数组的功能
2.添加字符串反转功能
 var str = "abcd";
         String.prototype.toCharArray = function(){
         var ch = [];
           for(var i = 0;i<this.length;i++)
                 ch[i] = this.charAt(i);
         return ch;
         }
         String.prototype.rev = function(){


             var ch = this.toCharArray();
             var low = 0,high = this.length-1;


             function swap(str,i,j){//函数中定义函数,java不允许,类似于java内部类
                 var t = str[i];
                 str[i] = str[j];
                 str[j] = t;
             }
             while(low<high){
                 swap(ch,low++,high--);
             }
             return ch.join("");//去除字符数组中的逗号
         }
         alert(str.toCharArray());
         alert(str.rev());

数组对象:Array
Array方法:
var arr = ["asd","cd",1,2,"ds"];
         var arr1 = ["d","cvd"];
         var newarr =  arr.concat(arr.concat("aa",arr1));//将"aa"作为连接到arr数组,再将arr1数组链接
            /*outln(newarr);
            outln(newarr.join());//默认逗号
            outln(newarr.join(""));
         outln(newarr.pop());//移除数组的最后一个元素并返回
         outln(newarr.push("zzz"));//添加一个新元素到数组并返回新长度,元素也可以是数组
         //JS中的二位数组,var s = [[],[],[],[]];
         outln(arr.reverse());//反转
         outln(arr.shift());//移除数组中的第一个元素并返回
         outln(arr);
         outln(arr.slice(1,3));//返回数组中的一段,*/


         // 含头不含尾,头尾有一个为负,就+length,尾大于头不做赋值
         //outln(arr.sort());//返回一个已经进行排序的Array对象


        //outln(arr.splice(0,3,250,9527,"asd","xc"));//0是开始位置,3是删除3个元素,添加4个元素
        //移除一个或多个元素,且可以在移除元素的位置上添加新元素,返回移除元素


        //arr.unshift("12233");//将指定的元素插入数组的开始位置并返回数组
        //outln(arr);
         //unshift 和pop,就可以实现数据结构:队列
         //unshift 和shift:实现数据结构:栈

Array练习自定义功能
//自定义Array功能
Array.prototype.getMax = function(){
    var tep = 0;
    for(var i = 0;i<this.length;i++){
        if(this[i]>tep)
        tep = i;
    }
    return this[tep];
}
//数组的复写
Array.prototype.toString = function(){
    return "["+this.join()+"]";
}

Js常用对象 — Date对象

作用:启用基本存储器并取的日期和时间
var obj = null;
obj = new Date();
obj = new Date(dateva);//dateva:距离1970年。。。。
obj = new Date(year,month,date[,[minutes[,[seconds[,ms]]]]]);

方法演示:
var date = new Date();
        //document.writeln(date);//默认方式
         //document.writeln(date.toLocaleString()+"<br/>");//当前日期和时间
        // outln(date.toLocaleDateString());//日期
        // outln(date.getFullYear()+"/"+(date.getMonth()+1)+"/"+date.getDate());
         var week = date.getDay();
         function getWeek(num){
             var week = ["星期天","星期一","星期二","星期三","星期四","星期五","星期六"];
            return week[num];
         }
        // outln("week is : "+getWeek(week));


         var date2 = new Date();
          var time = date2.getTime();//获取毫秒值
         //outln(time);//1417177204024  : 20点20
         //将毫秒值转成日期对象 1.new Date(); 2.setTime();
         var date3 = new Date(time);


         //日期对象转成字符串 toLocaleString(),toLocaleDateString()
         //字符串转成日期对象 具备指定格式的日期字符串 -> 毫秒值 -> 日期对象
         var date_str = "11/28/2014";
         var time_mi = Date.parse(date_str);//字符串与1970.1.1的毫秒差,但是必须是:月/日/年
         var date4 = new Date(time_mi);
         outln(date4.toLocaleString());


Js特有语句:with

为了简化对象调用内容的书写,可以使用Js中的特有语句with来完成

witn (对象){
    在该区域内可以直接使用指定的对象的内容,不需要  对象.
}

var date = new Date();
         with(date){
            //var year = date.getFullYear();
             var year = getFullYear();
         }
         outln(year);

Js常用对象Math对象—基本功能:

注意该对象中的方法都是静态,直接Math调用即可
var num1 = Math.ceil(12.35);//大于等于指定参数的最小整数
         var num2 = Math.floor(12.34);//小于等于指定参数的最大整数
         var num3 = Math.round(12.56);//四舍五入
         outln("num1 = "+num1);
         outln("num2 = "+num2);
         outln("num3 = "+num3);


        for(var i = 0;i<10;i++){
            //var num = Math.random()*10+1;//如此生成的是伪随机数
           // var num = Math.floor(Math.random()*10+1);可以
            var num = parseInt(Math.random()*10+1);//parseInt是全局方法,Global对象
            outln(num);
        }


JavaScript-基础语法(3)