JavaScript小白教程6JS高级教程

JavaScript 对象

所有事物都是对象

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

  • 布尔型可以是一个对象。
  • 数字型可以是一个对象。
  • 字符串也可以是一个对象
  • 日期是一个对象
  • 数学和正则表达式也是对象
  • 数组是一个对象
  • 甚至函数也可以是对象

JavaScript 类

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

在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。

JavaScript 基于 prototype,而不是基于类的。

<body>
<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("Sally","Rally",48,"green"); myMother.changeName("Doe"); document.write(myMother.lastname); </script> </body>
<body>
    
<p>点击下面的按钮,循环遍历对象 "person" 的属性。</p>
<button onclick="myFunction()">点击这里</button>
<p ></p>
<p ></p>
<p ></p>
    
<script>
//for循环输出对象所有的属性值 function myFunction(){ var y=0; var x; var txt=""; var person={fname:"Bill",lname:"Gates",age:56}; for (x in person){ alert(x) alert(person[x]) txt=txt + person[x]; } document.getElementById("demo").innerHTML=txt; } </script> </body>

JavaScript prototype

prototype 继承

所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法:

  • Date 对象从 Date.prototype 继承。
  • Array 对象从 Array.prototype 继承。
  • Person 对象从 Person.prototype 继承。
<body>

<h2>JavaScript 对象</h2>

<p ></p>
<p ></p>

<script>
//类中添加属性 function Person(first, last, age, eye) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eye; } Person.prototype.nationality = "English"; var myFather = new Person("John", "Doe", 50, "blue"); document.getElementById("demo").innerHTML = "我父亲对国籍是 " + myFather.nationality; var myFather1 = new Person("John", "Doe", 500, "blue"); document.getElementById("demo1").innerHTML = "我父亲对国籍是 " + myFather1.nationality + "我父亲的年龄是" + myFather1.age; </script> </body>
<body>

<h2>JavaScript 对象</h2>

<p ></p>

<script>
//类中添加方法
function Person(first, last, age, eye) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eye; } Person.prototype.name = function() { return this.firstName + " " + this.lastName }; var myFather = new Person("John", "Doe", 50, "blue"); document.getElementById("demo").innerHTML = "我对父亲是 " + myFather.name(); </script> </body>

JavaScript Number 对象

<body>

<script>
//无穷大(Infinity) var x = 2/0; var y = -2/0; document.write(x + "<br>"); document.write(y + "<br>"); </script> </body>
<body>
    
<p>一个数字除以一个字符串结果不是一个数字</p>
<p>一个数字除以一个字符串数字结果是一个数字</p>
<p ></p>
<script>
//NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。 var x = 1000 / "Apple"; var y = 1000 / "1000"; document.getElementById("demo").innerHTML = isNaN(x) + "<br>" + isNaN(y); </script> </body>
<body>
<p ></p>
<script>
//数字可以是数字或者对象 typeof()判断类型 var x = 123; // x 是一个数字 var y = new Number(123); // y 是一个对象 var txt = typeof(x) + " " + typeof(y); document.getElementById("demo").innerHTML=txt; </script> </body>

JavaScript 字符串(String) 对象

1:字符串(String)使用长度属性length来计算字符串的长度

2:字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置

3:match()函数用来查找字符串中特定的字符,并且如果找到的话,则返回这个字符

4:replace() 方法在字符串中用某些字符替换另一些字符

5:字符串大小写转换使用函数 toUpperCase() / toLowerCase():

6:字符串使用split()函数转为数组:

7:Javascript 中可以使用反斜线(\)插入特殊符号,如:撇号,引号等其他特殊符号

JavaScript Date(日期) 对象

日期对象用于处理日期和时间

JavaScript Array(数组) 对象

都是对象,会调用它的属性和方法

<body>

<p >单击按钮创建一个数组,调用 ucase()方法, 并显示结果。</p>
<button onclick="myFunction()">点我</button>
<script>
Array.prototype.myUcase=function(){
    for (i=0;i<this.length;i++){
        this[i]=this[i].toUpperCase();
    }
}
function myFunction(){
    var fruits = ["Banana", "Orange", "Apple", "Mango"];
    fruits.myUcase();
    var x=document.getElementById("demo");
    x.innerHTML=fruits;
}
</script>

</body>

JavaScript Boolean(布尔) 对象

Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false)

JavaScript Math(算数) 对象

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

JavaScript RegExp 对象

RegExp:是正则表达式(regular expression)的简写