JavaScript 对象

JavaScript 对象

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...
此外,JavaScript 允许自定义对象

JavaScript 对象

JavaScript 提供多个内建对象,比如 String、Date、Array 等等
对象只是带有属性和方法的特殊数据类型

访问对象的属性
    var message="Hello World!";
    var x=message.length;
访问对象的方法
    var message="Hello world!";
    var x=message.toUpperCase();
创建 JavaScript 对象
    person=new Object();
    person.firstname="Bill";
    person.lastname="Gates";
    person.age=56;
    person.eyecolor="blue";

    person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};

    <script>
        function person(firstname,lastname,age,eyecolor) {
            this.firstname=firstname;
            this.lastname=lastname;
            this.age=age;
            this.eyecolor=eyecolor;
        }

        myFather=new person("Bill","Gates",56,"blue");

        document.write(myFather.firstname + " is " + myFather.age + " years old.");
    </script>
把方法添加到 JavaScript 对象
    方法只不过是附加在对象上的函数
    在构造器函数内部定义对象的方法:
    <script>
        function person(firstname,lastname,age,eyecolor) {
            this.firstname=firstname;
            this.lastname=lastname;
            this.age=age;
            this.eyecolor=eyecolor;

            this.changeName=changeName;
            function changeName(name) {
                this.lastname=name;
            }
        }
        myMother=new person("Steve","Jobs",56,"green");
        myMother.changeName("Ballmer");
        document.write(myMother.lastname);
    </script>

JavaScript 类

JavaScript 是面向对象的语言,但 JavaScript 不使用类
在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)
JavaScript 基于 prototype,而不是基于类的

JavaScript for…in 循环

for...in 循环中的代码块将针对每个属性执行一次
<script>
    function myFunction() {
        var x;
        var txt="";
        var person={fname:"Bill",lname:"Gates",age:56}; 
        for (x in person) {
            txt=txt + person[x];
        }
        document.getElementById("demo").innerHTML=txt;
    }
</script>

JavaScript Number 对象

JavaScript 只有一种数字类型。
var pi=3.14;    // 使用小数点
var x=34;       // 不使用小数点
var y=123e5;    // 12300000
var z=123e-5;   // 0.00123
所有 JavaScript 数字均为 64 位
八进制和十六进制
如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。
var y=0377;
var z=0xFF;

数字属性和方法
属性:
    MAX VALUE
    MIN VALUE
    NEGATIVE INFINITIVE
    POSITIVE INFINITIVE
    NaN
    prototype
    constructor
方法:
    toExponential()
    toFixed()
    toPrecision()
    toString()
    valueOf()

JavaScript 字符串(String)对象

String 对象用于处理已有的字符块。
JavaScript String(字符串)对象 实例
计算字符串的长度:
    <script type="text/javascript">
        var txt="Hello World!"
        document.write(txt.length)
    </script>
为字符串添加样式:
<script type="text/javascript">
    var txt="Hello World!"

    document.write("<p>Big: " + txt.big() + "</p>")
    document.write("<p>Small: " + txt.small() + "</p>")

    document.write("<p>Bold: " + txt.bold() + "</p>")
    document.write("<p>Italic: " + txt.italics() + "</p>")

    document.write("<p>Blink: " + txt.blink() + " (does not work in IE)</p>")
    document.write("<p>Fixed: " + txt.fixed() + "</p>")
    document.write("<p>Strike: " + txt.strike() + "</p>")

    document.write("<p>Fontcolor: " + txt.fontcolor("Red") + "</p>")
    document.write("<p>Fontsize: " + txt.fontsize(16) + "</p>")

    document.write("<p>Lowercase: " + txt.toLowerCase() + "</p>")
    document.write("<p>Uppercase: " + txt.toUpperCase() + "</p>")

    document.write("<p>Subscript: " + txt.sub() + "</p>")
    document.write("<p>Superscript: " + txt.sup() + "</p>")

    document.write("<p>Link: " + txt.link("http://www.w3school.com.cn") + "</p>")
</script>
indexOf() 方法
首次出现的位置
    <script type="text/javascript">
        var str="Hello world!"
        document.write(str.indexOf("Hello") + "<br />")
        document.write(str.indexOf("World") + "<br />")
        document.write(str.indexOf("world"))
        //0
        //-1
        //6
    </script>
match() 方法
    找到的话,则返回这个字符
    <script>
        var str="Hello world!"
        document.write(str.match("world") + "<br />")
        document.write(str.match("World") + "<br />")
        document.write(str.match("worlld") + "<br />")
        document.write(str.match("world!"))

        //world
        //null
        //null
        //world!
    </script>
replace()
    <script type="text/javascript">
        var str="Visit Microsoft!"
        document.write(str.replace(/Microsoft/,"W3School"))// 有点特殊
    </script>
字符串对象
    var txt="Hello world!"
    document.write(txt.length)

    var txt="Hello world!"
    document.write(txt.toUpperCase())

JavaScript Date(日期)对象

日期对象用于处理日期和时间
返回当日的日期和时间
    <script type="text/javascript">
        document.write(Date()) // Wed Apr 20 2016 09:45:03 GMT+0800 (中国标准时间)
    </script>
getTime()
    getTime() 返回从 1970 年 1 月 1 日至今的毫秒数
    <script type="text/javascript">
        var d=new Date();
        document.write("从 1970/01/01 至今已过去 " + d.getTime() + " 毫秒"); // 从 1970/01/01 至今已过去 1461116743457 毫秒
    </script>
setFullYear()
    <script type="text/javascript">
        var d = new Date()
        d.setFullYear(1992,10,3)
        document.write(d)
        // Tue Nov 03 1992 09:47:08 GMT+0800 (中国标准时间)
    </script>
toUTCString()
    <script type="text/javascript">
        var d = new Date()
        document.write (d.toUTCString()) // Wed, 20 Apr 2016 01:47:52 GMT

    </script>
getDay()
    <script type="text/javascript">
        var d=new Date()
        var weekday=new Array(7)
        weekday[0]="星期日"
        weekday[1]="星期一"
        weekday[2]="星期二"
        weekday[3]="星期三"
        weekday[4]="星期四"
        weekday[5]="星期五"
        weekday[6]="星期六"

        document.write("今天是" + weekday[d.getDay()]) // 今天是星期三

    </script>
显示一个钟表
    <head>
        <script type="text/javascript">
        function startTime()
        {
        var today=new Date()
        var h=today.getHours()
        var m=today.getMinutes()
        var s=today.getSeconds()
        // add a zero in front of numbers<10
        m=checkTime(m)
        s=checkTime(s)
        document.getElementById('txt').innerHTML=h+":"+m+":"+s
        t=setTimeout('startTime()',500)
        }

        function checkTime(i)
        {
        if (i<10) 
          {i="0" + i}
          return i
        }
        </script>
    </head>

    <body onload="startTime()">
        <div id="txt"></div>
    </body>
定义日期
    var myDate=new Date() 
    Date 对象自动使用当前的日期和时间作为其初始值。
操作日期
    var myDate=new Date()
    myDate.setFullYear(2008,7,9)
    表示月份的参数介于 0 到 11 之间。也就是说,如果希望把月设置为 8 月,则参数应该是 7
    将日期对象设置为 5 天后的日期
        var myDate=new Date()
        myDate.setDate(myDate.getDate()+5)

        如果增加天数会改变月份或者年份,那么日期对象会自动完成这种转换

比较日期
    var myDate=new Date();
    myDate.setFullYear(2008,8,9);

    var today = new Date();

    if (myDate>today)
    {
        alert("Today is before 9th August 2008");
    }
    else
    {
        alert("Today is after 9th August 2008");
    }
JavaScript Array(数组)对象
数组对象的作用是:使用单独的变量名来存储一系列的值
创建数组
    <script type="text/javascript">
        var mycars = new Array()
        mycars[0] = "Saab"
        mycars[1] = "Volvo"
        mycars[2] = "BMW"

        for (i=0;i<mycars.length;i++) {
            document.write(mycars[i] + "<br />")
        }
    </script>
For...In 声明
    <script type="text/javascript">
        var x
        var mycars = new Array()
        mycars[0] = "Saab"
        mycars[1] = "Volvo"
        mycars[2] = "BMW"

        for (x in mycars) {
            document.write(mycars[x] + "<br />")
        }
    </script>
合并两个数组 - concat()
    <script type="text/javascript">

        var arr = new Array(3)
        arr[0] = "George"
        arr[1] = "John"
        arr[2] = "Thomas"

        var arr2 = new Array(3)
        arr2[0] = "James"
        arr2[1] = "Adrew"
        arr2[2] = "Martin"

        document.write(arr.concat(arr2))

    </script>
用数组的元素组成字符串 - join()
    <script type="text/javascript">

        var arr = new Array(3);
        arr[0] = "George"
        arr[1] = "John"
        arr[2] = "Thomas"

        document.write(arr.join());

        document.write("<br />");

        document.write(arr.join("."));

    </script>

    <script type="text/javascript">
文字数组 - sort()
        var arr = new Array(6)
        arr[0] = "George"
        arr[1] = "John"
        arr[2] = "Thomas"
        arr[3] = "James"
        arr[4] = "Adrew"
        arr[5] = "Martin"

        document.write(arr + "<br />")
        document.write(arr.sort())

    </script>
数字数组 - sort()
    <script type="text/javascript">

        function sortNumber(a, b) {
            return a - b
        }

        var arr = new Array(6)
        arr[0] = "10"
        arr[1] = "5"
        arr[2] = "40"
        arr[3] = "25"
        arr[4] = "1000"
        arr[5] = "1"

        document.write(arr + "<br />")
        document.write(arr.sort(sortNumber))

    </script>
定义数组
    var myArray=new Array()

    // 以添加任意多的值

    var mycars=new Array()
    mycars[0]="Saab"
    mycars[1]="Volvo"
    mycars[2]="BMW"

    var mycars=new Array(3)
    mycars[0]="Saab"
    mycars[1]="Volvo"
    mycars[2]="BMW"

    var mycars=new Array("Saab","Volvo","BMW")
    访问数组
        document.write(mycars[0])
    修改已有数组中的值
        mycars[0]="Opel";
JavaScript Boolean(逻辑)对象
Boolean(逻辑)对象用于将非逻辑值转换为逻辑值(true 或者 false)。
    <script type="text/javascript">
        var b1=new Boolean( 0)
        var b2=new Boolean(1)
        var b3=new Boolean("")
        var b4=new Boolean(null)
        var b5=new Boolean(NaN)
        var b6=new Boolean("false")

        document.write("0 是逻辑的 "+ b1 +"<br />")
        document.write("1 是逻辑的 "+ b2 +"<br />")
        document.write("空字符串是逻辑的 "+ b3 + "<br />")
        document.write("null 是逻辑的 "+ b4+ "<br />")
        document.write("NaN 是逻辑的 "+ b5 +"<br />")
        document.write("字符串 'false' 是逻辑的 "+ b6 +"<br />")
    </script>
    如果逻辑对象无初始值或者其值为 0、-0、null、""、false、undefined 或者 NaN,那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 "false" 时)!

JavaScript Math(算数)对象
执行常见的算数任务
round()
四舍五入
document.write(Math.round(0.60) + “
”) // 1

random()
    返回 0 到 1 之间的随机数
    document.write(Math.random())

max()
    返回两个给定的数中的较大的数
    document.write(Math.max(5,7) + "<br />")

min()
    返回两个给定的数中的较小的数
    document.write(Math.min(5,7) + "<br />")
Math.E
Math.PI
Math.SQRT2
Math.SQRT1_2
Math.LN2
Math.LN10
Math.LOG2E
Math.LOG10E

JavaScript RegExp 对象
var patt1=new RegExp(“e”);
3 个方法:test()、exec() 以及 compile()
test()
检索字符串中的指定值。返回值是 true 或 false
exec()
检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null
可以向 RegExp 对象添加第二个参数
在使用 “g” 参数时,exec() 的工作原理如下:
找到第一个 “e”,并存储其位置
如果再次运行 exec(),则从存储的位置开始检索,并找到下一个 “e”,并存储其位置
var patt1=new RegExp(“e”,”g”);
do {
result=patt1.exec(“The best things in life are free”);
document.write(result);
} while (result!=null)
由于这个字符串中 6 个 “e” 字母,代码的输出将是:
eeeeeenull
compile()
compile() 方法用于改变 RegExp。
compile() 既可以改变检索模式,也可以添加或删除第二个参数
var patt1=new RegExp(“e”);

    document.write(patt1.test("The best things in life are free"));

    patt1.compile("d");

    document.write(patt1.test("The best things in life are free"));
    由于字符串中存在 "e",而没有 "d",以上代码的输出是:
    truefalse
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值