javascript(三)之对象

来源:互联网 发布:淘宝卖的摩托车怎么样 编辑:程序博客网 时间:2024/05/17 23:00

JavaScript 是面向对象的语言,但 JavaScript 不使用类。


JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...

JavaScript 允许自定义对象。

JavaScript 提供多个内建对象,比如 String、Date、Array 等等。

对象只是带有属性方法的特殊数据类型

创建对象=================

<body>
<script>

//创建对象方法一
person=new Object();
person.firstname="Bill";//向对象中添加属性
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

创建对象方法二-------------使用对象 literals

person={firstname:"Bill",lastname:"gates",age:56,eyecolor:"blue"}

创建对象方法三======使用构造器窗前对象

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(person.firstname + " is " + person.age + " years old.");


</script>
</body>


/==============循环遍历=====

针对对象中的每个属性循环遍历一次

<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 只有一种数字类型。

可以使用也可以不使用小数点来书写数字。

所有 JavaScript 数字均为 64 位

JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。

JavaScript 中的所有数字都存储为根为 10 的 64 位(8 比特),浮点数。

精度

整数(不使用小数点或指数计数法)最多为 15 位。

小数的最大位数是 17,但是浮点运算并不总是 100% 准确:


如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。


数字属性和方法

属性:

  • MAX VALUE
  • MIN VALUE
  • NEGATIVE INFINITIVE
  • POSITIVE INFINITIVE
  • NaN
  • prototype
  • constructor

方法:

  • toExponential()
  • toFixed()
  • toPrecision()
  • toString()
  • valueOf()

计算字符串长度========================

<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"))

</script>

match()查找一个字符串中特定的字符,如果找到返回这个字符,如果找不到返回null

<script type="text/javascript">


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!"))

</script>


replace()用某些字符替换字符串的某些字符==========

<script type="text/javascript">
var str="Visit Microsoft!"
document.write(str.replace(/Microsoft/,"W3School"))
</script>


toUpperCase()将字符串转换成大些==============

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


日期====================

Date() 方法获得当日的日期。Date 对象自动使用当前的日期和时间作为其初始值==================

<script type="text/javascript">
document.write(Date())//结果Thu Jan 19 2017 14:05:37 GMT+0800 (CST)
</script>

getTime() 返回从 1970 年 1 月 1 日至今的毫秒数======

<script type="text/javascript">
var d=new Date();
document.write("从 1970/01/01 至今已过去 " + d.getTime() + " 毫秒");
</script>


setFullYear() 设置具体的日期==============

<script type="text/javascript">
var d = new Date()
d.setFullYear(1992,10,3)
document.write(d)
</script>


toUTCString() 将当日的日期(根据 UTC)转换为字符串。=================

<script type="text/javascript">
var d = new Date()
document.write (d.toUTCString())
</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>


==========获取时分秒

var today=new Date()
var h=today.getHours()
var m=today.getMinutes()
var s=today.getSeconds()


=============

var myDate=new Date();
myDate.setFullYear(2008,7,9)
2008年8月9日

表示月份的参数介于 0 到 11 之间。也就是说,如果希望把月设置为 8 月,则参数应该是 7。

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");}

=================数组============
1,创建数组
<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>

2.contact合并数组==========================

<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>

3.join()用数组的元素组成字符串===============

<script type="text/javascript">
var arr = new Array(3);
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

document.write(arr.join());//如果join中没参数,默认是用,连接数组元素

document.write("<br />");
document.write(arr.join("."));//用.连接数组的元素
</script>

4.sort()对数组元素进行升序排列========

<script type="text/javascript">
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>

5.======逻辑对象==========

使用关键词 new 来定义 Boolean 对象。下面的代码定义了一个名为 myBoolean 的逻辑对象:

如果逻辑对象无初始值或者其值为 0、-0、null、""、false、undefined 或者 NaN,那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 "false" 时)!
下面的结果均为false;
<script type="text/javascript">
var myBoolean=new Boolean();
document.write(myBoolean);
document.write("<br />");


var myBoolean=new Boolean(0);
document.write(myBoolean);
document.write("<br />");


var myBoolean=new Boolean(null);
document.write(myBoolean);
document.write("<br />");


var myBoolean=new Boolean("");
document.write(myBoolean);
document.write("<br />");


var myBoolean=new Boolean(false);
document.write(myBoolean);
document.write("<br />");


var myBoolean=new Boolean(NaN);
document.write(myBoolean);
document.write("<br />");
</script>

下面的均为true

<body>


<script type="text/javascript">
var myBoolean=new Boolean(1);
document.write(myBoolean);
document.write("<br />");


var myBoolean=new Boolean(true);
document.write(myBoolean);
document.write("<br />");


var myBoolean=new Boolean("true");
document.write(myBoolean);
document.write("<br />");


var myBoolean=new Boolean("false");//注意这个,如果false不加引号则为true
document.write(myBoolean);
document.write("<br />");


var myBoolean=new Boolean("Bill Gates");
document.write(myBoolean);
document.write("<br />");
</script>


==========算数========

Math(算数)对象的作用是:执行常见的算数任务。

1.round()四舍五入======

<script type="text/javascript">


document.write(Math.round(0.60) + "<br />")//1
document.write(Math.round(0.50) + "<br />")//1
document.write(Math.round(0.49) + "<br />")//0
document.write(Math.round(-4.40) + "<br />")//-4
document.write(Math.round(-4.60))                 //-5
</script>

2.random() 来返回 0 到 1 之间的随机数。

<script type="text/javascript">

document.write(Math.random())
</script>

3.max() 来返回两个给定的数中的最大的数,min()返回最小的数;

<script type="text/javascript">
document.write(Math.max(5,7,8) + "<br />")
document.write(Math.max(-3,5) + "<br />")
document.write(Math.max(-3,-5) + "<br />")
document.write(Math.max(7.25,7.30))
</script>

4.Math.floor()把消暑部分舍去

Math.floor(Math.random()*10

算数值

JavaScript 提供 8 种可被 Math 对象访问的算数值:

  • 常数
  • 圆周率
  • 2 的平方根
  • 1/2 的平方根
  • 2 的自然对数
  • 10 的自然对数
  • 以 2 为底的 e 的对数
  • 以 10 为底的 e 的对数

这是在 Javascript 中使用这些值的方法:(与上面的算数值一一对应)

  • Math.E
  • Math.PI
  • Math.SQRT2
  • Math.SQRT1_2
  • Math.LN2
  • Math.LN10
  • Math.LOG2E
  • Math.LOG10E

=========正则表达式==============

RegExp 对象用于规定在文本中检索的内容。

RegExp 是正则表达式的缩写。

当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。

简单的模式可以是一个单独的字符。

更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。

您可以规定字符串中的检索位置,以及要检索的字符类型,等等。

RegExp 对象用于存储检索模式

1.定义RegExp=======

通过 new 关键词来定义 RegExp 对象。以下代码定义了名为 patt1 的 RegExp 对象,其模式是 "e":

var patt1=new RegExp("e");

当您使用该 RegExp 对象在一个字符串中检索时,将寻找的是字符 "e"。

RegExp 对象的方法:

1.test() 方法检索字符串中的指定值。返回值是 true 或 false。

<script type="text/javascript">
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
</script>

2.exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

<script type="text/javascript">
var patt1=new RegExp("e");
document.write(patt1.exec("The best things in life are free"));
</script>

3.

您可以向 RegExp 对象添加第二个参数,以设定检索。例如,如果需要找到所有某个字符的所有存在,则可以使用 "g" 参数 ("global")。

在使用 "g" 参数时,exec() 的工作原理如下:

  • 找到第一个 "e",并存储其位置
  • 如果再次运行 exec(),则从存储的位置开始检索,并找到下一个 "e",并存储其位置
  • <script type="text/javascript">
    var patt1=new RegExp("e","g");
    do
    {
    result=patt1.exec("The best things in life are free");
    document.write(result);
    }
    while (result!=null)
    </script>

4.compile() 方法用于改变 RegExp。===============

compile() 既可以改变检索模式,也可以添加或删除第二个参数。

<script type="text/javascript">
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"));
</script>

0 0