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属性
通常我们在
发表评论