JavaScript 基础教程JavaScript 简介JavaScript 用法JavaScript 输出JavaScript 语法JavaScript 语句JavaScript 注释JavaScript 变量JavaScript 数据类型JavaScript 对象JavaScript 函数JavaScript 作用域JavaScript 事件JavaScript 字符串JavaScript 运算符JavaScript 比较和逻辑运算符JavaScript if...else 语句JavaScript switch 语句JavaScript for 循环JavaScript while 循环JavaScript break 和 continue 语句JavaScript typeof, null, undefinedJavaScript 类型转换JavaScript 正则表达式JavaScript 错误throw try catchJavaScript 调试JavaScript 变量提升JavaScript 严格模式 (use strict)JavaScript 使用误区JavaScript 表单JavaScript 表单验证JavaScript 验证 APIJavaScript 保留关键字JavaScript JSONjavascript :void(0) 含义JavaScript 代码规范JavaScript 函数定义JavaScript 函数参数JavaScript 函数调用JavaScript 闭包JavaScript HTML DOMJavaScript DOM- 改变 HTMLJavaScript DOM - 改变 CSSJavaScript HTML DOM 事件JavaScript DOM EventListenerJavaScript DOM 元素(节点)JavaScript 对象类型JavaScript Number 对象JavaScript 字符串(String)对象JavaScript Date 对象JavaScript Array 对象JavaScript Boolean 对象JavaScript Math 对象JavaScript RegExp 对象JavaScript window 对象JavaScript window.screen 对象JavaScript window.location 对象JavaScript window.history 对象JavaScript window.navigator 对象JavaScript 弹窗JavaScript 计时事件JavaScript CookieJS中的if和switch该如何选择?JS优化多分支结构JS中的while和for循环该如何选择?JS优化循环结构JS输出杨辉三角JS定义字符串(3种方式)JS获取字符串长度JS字符串拼接/连接(3种方式)JS字符串查找(6种方法)JS截取字符串JS字符串替换replace()JS字符串大写小写转换JS字符串比较大小JS字符串和数组之间的转换JS给字符串添加HTML标签JS去除字符串前后空格JS Unicode编码和解码JS Base64编码和解码JS在接收表单数据时过滤特殊字符JS自定义编码和解码方案

JavaScript 对象类型

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

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

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


访问对象的属性

属性是与对象相关的值

访问对象属性的语法

objectName.propertyName

下面的代码使用了 String 对象的 length 属性来获得字符串的长度

var message="Hello World!";
var x=message.length;

上面的代码执行后,x 的值将是 12


访问对象的方法

方法是能够在对象上执行的动作

可以通过以下语法来调用方法

objectName.methodName()

下面的代码使用了 String 对象的 toUpperCase() 方法来将文本转换为大写

var message="Hello world!";
var x=message.toUpperCase();

上面的代码执行后,x 的值将是 HELLO WORLD!


创建 JavaScript 对象

JavaScript 允许我们定义并创建自己的对象

创建新对象有两种不同的方法

  1. 定义并创建对象的实例
  2. 使用函数来定义对象,然后创建新的对象实例


创建直接的实例

下面的代码创建了对象的一个新实例,并向其添加了四个属性

var person = new Object();
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue";

上面的代码也可以使用对象 literals 来简写

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


使用对象构造器

可以使用函数来构造对象

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

JavaScript 中,this 通常指向的是我们正在执行的函数本身,或者是指向该函数所属的对象(运行时)


创建 JavaScript 对象实例

一旦有了对象构造器,就可以创建新的对象实例

var myFather=new person("John","Doe",50,"blue");
var myMother=new person("Sally","Rally",48,"green");

把属性添加到 JavaScript 对象

可以通过为对象赋值,向已有对象添加新属性

下面的范例,我们给 person 对象添加这些新属性:firstname、lastname、age 以及 eyecolor

var person = {};
person.firstname="John";
person.lastname="Doe";
person.age=30;
person.eyecolor="blue";
x=person.firstname;

上面的代码执行后,x 的值将是:John


把方法添加到 JavaScript 对象

方法只不过是附加在对象上的函数

可以在构造器函数内部定义对象的方法

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

changeName() 函数 name 的值赋给 person 的 lastname 属性

然后我们就可以尝试调用 changeName() 方法

var my=new person("John","Doe",50,"blue");
my.changeName("Doe");


JavaScript 类

JavaScript 是基于原型( prototype ) 的语言,JavaScript 不使用类

JavaScript 中,不会创建类,也不会通过类来创建对象

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


JavaScript for...in 循环

我们可以使用 for...in 语句循环遍历对象的属性

语法

for (variable in object)
{
    //执行的代码...
}
for...in 循环中的代码块将针对每个属性执行一次

下面的代码用于循环遍历 person 对象的属性

var person={fname:"John",lname:"Doe",age:25}; 
for (x in person)
{
    txt=txt + person[x];
}

链接: https://www.fly63.com/course/7_513