零基础 javascript-从头学jQuery(剧场版)你必须知道的javascript

1. 摘要本文是jQuery系列教程的剧场版,即与jQuery主线无关。 主要介绍了一些你平时忽略的javascript细节。 适合想要巩固javascript理论知识和基础知识的开发者。 2.前言近期笔试

一、总结

本文是jQuery系列教程的剧场版,与jQuery主线无关。 主要介绍了一些你平时忽略的javascript细节。 适合想要巩固javascript理论知识和基础知识的开发者。

2. 前言

我最近和一些人进行了笔试,发现虽然经验丰富的开发人员,但对一些基本理论和细节往往模糊不清。 我写这篇文章是因为当我第一次学习下面的内容时,我发现自己确实有所收获和有所收获。 感觉。 事实上,JavaScript 还有更多的细节是我们容易忽视的。 本文只是冰山一角。 希望你能通过这篇文章有所收获。

3.Javascript面向对象

JavaScript 是一种面向对象的语言。 虽然很多书上都有解释,但仍然有很多中级开发人员不明白。

创建对象

ps:之前写过一篇关于对象创建(原型方法、工厂方法等)的详细文章,但是找不到了。 如果以后能找到的话我会添加的。 以下仅作简单介绍。

在C#中我们使用new关键字来创建对象,在javascript中我们也可以使用new关键字:

var objectA = new Object();

但实际上“new”可以省略:

var objectA = Object();

但我建议始终使用 new 关键字声明对象,以保持语法不变。

创建属性和参数

javascript中的属性不需要声明,当它们是形参时,需要手动创建:

objectA.name = "my name";

访问属性

一般我们用“.”。 分层访问对象的属性:

alert(objectA.name);

嵌套属性

对象属性也可以是任何 JavaScript 对象:

var objectB = objectA;
objectB.other = objectA;
//此时下面三个值相当, 并且改变其中任何一个值其余两个值都改变

objectA.name;
objectB.name;
objectB.other.name;

使用索引

如果objectA上有一个名为“school.college”的属性,那么我们就无法通过“.”来访问它,因为“objectA.school.college”语句指的是寻找objectA的school属性对象的college属性。

在这种情况下,我们需要通过索引设置和访问属性:

         objectA["school.college"] = "BITI";
         alert(objectA["school.college"]);

下面的句子是等价的:

        objectA["school.college"] = "BITI";
        var key = "school.college"
        alert(objectA["school.college"]);
        alert(objectA["school" + "." + "college"]);        
        alert(objectA[key]);

JSON格式句型

JSON指的是Javascript Object Notation零基础 javascript,即Javascript对象表示。

我们可以用下面的语句声明一个对象并创建属性:

        //JSON
        var objectA = {
            name: "myName",
            age: 19,
            school:
            {
                college: "大学",
                "high school": "高中" 
            },
            like:["睡觉","C#","还是睡觉"]
        }

JSON的句子格式是用“{”和“}”表示一个对象,使用“属性名:值”的格式创建属性,多个属性用“,”分隔。

在上面的示例中,school 属性是另一个对象。 like属性是一个链表。 使用JSON格式的字符串创建对象后,可以使用“.”。 或索引来访问属性:

objectA.school["high school"];
objectA.like[1];

静态模式和实例模式

静态方法是指无需声明类实例即可使用的技巧。

实例方法是指必须使用“new”关键字声明类的实例才能通过该实例访问它的技术。

        function staticClass() { }; //声明一个类
        staticClass.staticMethod = function() { alert("static method") }; //创建一个静态方法
        staticClass.prototype.instanceMethod = function() { "instance method" }; //创建一个实例方法
      

上面首先声明了一个类staticClass零基础 javascript,然后给它添加了一个静态方法staticMethod和一个动态方法instanceMethod。 不同的是,添加动态方法需要使用prototype原型属性。

对于静态方法,可以直接调用:

staticClass.staticMethod();

但动态方法不能直接调用:

staticClass.instanceMethod(); //语句错误, 无法运行.

它需要首先实例化才能调用:

        var instance = new staticClass();//首先实例化
        instance.instanceMethod(); //在实例上可以调用实例方法

4.全局对象是window属性

通常我们在