JS对象

Number对象

1)Number对象和number基本数据类型不同;Number的类型是 Object, 而 number 的类型是 number;

2)创建对象: var x = new Number(120);

3)属性:最大值最小值     Number.MIN_VALUE 和 Number.MAX_VALUE

                非数字:NaN(Not a Number),通过非数字新创建的Number对象就是非数字; var a = new Number("123abc");  

         判断非数字:isNaN(a);    不可使用  a == Number.NaN;

4)返回小数表达: a.toFixed(5);  表示返回的小数保留5位

     返回科学记数法: a.toExponential();

     返回基本数字类型的值: a.valueOf();

String对象

1)String 对象的数据类型是 object, string基本数据的数据类型是string

2)创建对象: var str = new String("sakjdhaskd");

3)属性:str.length 可得到字符串长度

4)返回指定位置字符: str.charAt(5); //返回5处的字符

                                       str.charCodeAt(5); //返回5处的字符的Unicode码

   字符串拼接:str2 = new String("jsad");     str.concat(str2);

   查找子串位置:str.indexOf("a"); //返回a第一次出现的位置

          str.lastIndexOf("a"); //返回a最后一次出现的位置

   字符串比较:str.localeCompare(str2);  //大于返回1,等于为0,小于为-1

   截取子串:str.substring(0, 3);  //左闭右开

   拆分字符串:str.split(" "); //根据空格拆分字符串,返回字串数组

   替换子串:仅替换第一个满足的子串:str.replace("search", "replace");

        替换所有子串:var regS = new RegExp("search", "g");       str.replace(regS, "replace");

   注:上述大部分方法,在执行完后都会返回基本类型的 string 而非  object 的string;str自身不会变化;

数组

1)创建数组:var arr = new Array(); //空数组

                        var arr = new Array(5);//长度为5的数组

         var arr = new Array(1,2,3,4,5); //有初值的数组

2)arr.length 获取长度

3)遍历数组:

  方法一:与C语言一致

  方法二:for in 循环

for(i in arr){
    p( x[i] );      
}

4)连接数组:var z = arr1.concat( arr2 );

   返回数组的字符串表达:z = arr.join("@");  其中arr内容为1、2、3....,则得到 z为 “1@2@3”的字符串

   在末尾增删数据:arr.push(6);   var z  = arr.pop();

   在开始位置增删数据:arr.unshift(6);    var z = arr.shift();

   排序:arr.sort();

   自定义排序算法:   function cmp(a,  b){  return a > b; }      arr.sort(cmp);

   数组反转:arr.reverse();

   获取子数组:arr.slice(1, 3);  获取1、2位置的元素,区间左闭右开

 日期

1)var d = new Date(); //新建的日期为当前时间

2)获取年月日:d.getFullYear();  d.getMonth();  d.getDate();  //月份从0开始,其它从1开始

   获取时分秒毫秒:d.getHours();  d.getMinutes();  d.getSeconds();  d.getMilliseconds();

   获取今天是本周的第几天:d.getDay(); //从0开始

   获取从1970/1/1 08:00:00 到当前的毫秒数:d.getTime();

3)修改日期和时间:d.setFullYear(2012);    d.setMonth(0); //月份的0表示1月

例子1

制作年龄计算器

<script>
    function getValue(id){
        return document.getElementById(id).value;
    }
    function setValue(id, value){
        document.getElementById(id).value = value;
    }
    function cacl(){
        var year = parseInt(getValue("year"));
        var month = parseInt(getValue("month"));
        var day = parseInt(getValue("day"));
        var today = new Date();
        var birth = new Date();
        birth.setFullYear(year);
        birth.setMonth(month + 1);
        birth.setDate(day);
        var t1 = birth.getTime();
        var t2 = today.getTime();
        var age = (t2 - t1) / (1000*3600*24*365);
        var ans = Math.round(age);
        document.getElementById("ans").innerHTML="今年" + ans + "";
    }
</script>
<strong>请输入出生年月日</strong><br/><br/>
<strong>年份</strong>
<select id="year">
    <script>
        for(i = 1900; i < 2020; i++){
            document.write("<option value=" + i + ">" + i + "</option>")
        }
    </script>
</select>
<strong>月份</strong>
<select id="month">
    <script>
        for(i = 1; i < 13; i++){
            document.write("<option value=" + i + ">" + i + "</option>")
        }
    </script>
</select>
<strong></strong>
<select id="day">
    <script>
        for(i = 1; i < 32; i++){
            document.write("<option value=" + i + ">" + i + "</option>")
        }
    </script>
</select>
<br/>
<br/>
<button onclick="cacl()">计算年龄</button>
<br/>
<br/>
<strong id="ans"></strong>
View Code

1)select选择器的最终value即为选项option的value;

2)当选项过多时,可以在select中插入js代码,由js循环打印生成html代码;

3)用到了部分DOM的知识

 Math

1)常数Π和E:Math.PI  Math.E

2)绝对值:Math.abs(-100);

   最小最大:Math.min(1, 100);

   求幂:Math.pow(3, 2); //求3的2次方

   四舍五入:Math.round( 3.14);

   随机数:Math.random();

自定义对象

1)通过new Object 创建临时对象,这样创建的对象无法重用

<script>
    var cat = new object();
    cat.name = "kitty";  //定义属性
    cat.eat = function(){  //定义方法
        alert("eat!");
    }
</script>

2)通过function设计一个对象

<script>
    function cat(name){   //设计对象
        this.name = name;   
        this.eat = function(){
            alert("eat!");
        }
    }
    cat.prototype.talk = function(){  //为已经设计好的对象追加新的方法
        alert("talk!");
    }

    var a = new cat("kitty");
    a.eat();
    a.tale();
</script>

  这个对象可以重用,还可以通过 prototype 追加新的方法

 

posted @ 2019-01-25 12:38  ZHUQW  阅读(136)  评论(0编辑  收藏  举报