Javascript
在
web
应用开发使用非常的频繁,它可以轻易帮助我们实现数据验证,完成特殊效果或动作。今天我们就来谈谈
Javascript
的一些事。
JavaScript
对象
看到“对象”二字,听惯面向对象编程的你,是否第一感觉是要有个类,然后进行实例化生成一个对象?
Javascript
恰恰相反,它没有
“类”的概念。分“类”有助于我们理解和使用东西,但是在我们享受这些福利的同时“类”也限制了我们的思想,编程应该是自由的,
Javascript
抛弃了类的概念,从而也解放了我们。接下来我们看一下
Javascript
是怎么海阔天空的。
示例一:
var testObj = {};
testObj.name = "testObj";
//testObj.name.firstName = "a"; //简单数据类型不是对象,所以不能给它加属性
testObj.remark = "您可以给我随便加属性";
……
alert(testObj.name);
alert(testObj.remark);
示例中我首先创建了一个对象
testObj
,
一开始它里面什么都没有,空的,什么都不能做,然后我给它加了一个名字属性,再给它加了个备注属性,它开始成为一个“具体”的东西了(当然你还可以给它加
方法),之后你就可以使用这里面的这些属性和方法了。如果你对这些属性和方法不满意,你还可以随时删除它们,或者新增其他的属性和方法。
示例二:
//
接示例一脚本
TestObj.say = function(){ //增加一个说话的方法
alert(“Hi!我可以说话了!”);
};
TestObj.name = undefined; //我不想让人知道我的名字,删掉这个属性
Javascript
的是可以随意删掉对象里的属性和方法的,删除方法很简单,就是把这个属性或方法置为
undefined
。
Javascript
中找不到某个对象或方法时就会提示你“
undefined
”(未定义),于是我们要删除对象的某个属性时就强制把它设置为
undefined
,就是告诉解析器这个属性我不要了,如果下面的脚本要使用它,就跟它们说没了。
也许你注意到示例一中的被注释掉的红色代码了,没错,我是想告诉你,简单数据类型(包括
string
、
number
、
null
、
boolean
、
undefined
)它们都不是对象,不能使用对象的这些特性。
函数(
function
)
函数有两种定义方式:定义式和变量式。
示例三:
function funcA(){
alert(“定义式!”);
}
var funcB = function(){
alert(“变量式!”);
}
这两种写法几乎等价的,细微的不同点在于定义式创建时函数会在脚本执行前就被声明了(后面讲
javascript
脚本执行方式会提及),我们可以在脚本的任何地方使用这个函数。变量式创建函数时则不行,如果我们在创建前使用这个函数,那是不可能成功的。
我们可以认为,
Javascript
的函数就是一个特殊的变量
,
变量类型
function
,变量名
: funcB
,变量值
:
函数代码体代码,这个变量的变量值可以执行的,同样,作为一个变量,它也是可以进行赋值的。
示例四:
var funcA = function (){
alert("funcA");
};
funcA();//输出funcA
funcA = function (){
alert("funcB");
};
funcA();//输出funcB
函数具有对象的全部特征。同样你可以对函数内部的属性进行增加删除。
示例五:
//
接示例四脚本
funcA.name = “funcA”; //我有名字了
alert(“大家好!我叫”+ funcA.name);
funcA.name = undefined; //我的名字被剥夺了!
Javascript支持重载吗?
Javascript是不支持重载的。
示例六:
function funcA(str1, str2){
alert(str1 + “ and ” + str2);
}
function funcA(str1){
alert(str);
}
funcA(“a”,”b”); //输出 a
funcA(“a”); //输出 a
在
Javascript
中后声明的函数会覆盖掉前面声明的函数,这里的第二个函数才是有效的,当你传两个参数时,第二个参数会被忽略掉。
如果你实在是想重载怎么办?那么我告诉你一种方法吧。
我称之为“伪重载”,其实这里连“伪”都谈不上,因为我们只是利用
javascript
函数的一个特性,在同一个函数上打主意,让人看起来这个函数被重载了一样。
Javascript
函数有个特性,他可以灵活的传递参数的个数。
示例七:
function func2(a,b,c){
alert("a+b="+(a+b));
if(c){
alert("a+b+c="+(a+b+c));
}
}
func2(1,2); //输出a+b=3
func2(1,2,3); //输出a+b+c=6
Javascript
脚本在执行时是不管函数定义时有多少个参数的,一切皆由你来控制。这是否能满足你的要求呢?
JavaScript
脚本执行方式
JavaScript
执行引擎并非一行一行地分析和执行程序,而是一段一段(
为一段)地分析执行的。而且,在同一段程序的分析执行中,定义式的函数语句会被提取出来优先执行。函数定义执行完之后,才会按顺序执行其他语句代码,另外名称相同的函数后定义的函数会覆盖掉前面声明的函数。
示例八:
第一个
script
段中在第一次调用
func
之前,第一个函数语句定义的代码逻辑,已被第二个函数定义语句覆盖了。所以,两次都调用都是执行最后一个函数逻辑了,而第二个
script
段的
func
没受到影响。
Javascript
虽然是脚本型语言,简单、易用,但它还有很多特性或技巧还值得我们去深究,我们只有不断去发掘才会写出更优雅的代码来。
分享到:
相关推荐
javascript自动化停止做平凡的工作。本地构建 $ npm install$ bower install$ grunt在此处:在此处下载演示文稿:
具有链接的概念的词典索引 摘自资源HowProgrammingWorks 需要添加示例 目录: 基本概念 是一种概括,是从细节中抽象出来的,突出了本质,并切断了非本质的属性和连接。 抽象-抽象或模型的构建,可以提高算法和数据...
Javascript API 使用Javascript API API JAVACSRIPT
这可以通过验证非平凡程序 () 和查找已知安全漏洞 () 来证明。 如何运行语义 以下说明适用于标准 Debian/Ubuntu 发行版,尤其适用于 64 位 Ubuntu 14.04 LTS。 0. 安装基本依赖 安装 JDK 1.8: $ sudo add-apt-...
杰西,简单的通用安全移动代码 该文档是早期草案。 评论表示赞赏! 谢谢。 如今,JavaScript已成为(某种程度上)安全的移动代码的普遍... 非专家可以用来编写非平凡的不可利用的智能合约。 子集EcmaScript 除非另有
MandelbrotJS 分形的实验性渲染器,例如用javascript编写的mandelbrot集。 这目前还不是一个完成的程序,而是一个让我测试新想法、工具和渲染算法的地方——但我希望其中的一些能让我随着时间的推移把它变成一个真正...
专业JavaScript 对JavaScript的深入了解使学习其他各种框架(包括React,Angular以及相关工具和库)变得更加容易。 本课程旨在帮助您涵盖构建现代应用程序所需的核心JavaScript概念。 您将开始学习如何在文档对象...
数学浏览器中的非平凡数学。 100%纯JavaScript。 对于现代数学物理学家及其同类。 为了易于使用,所有数学函数都在全局上下文中公开。 尽管这与大多数JavaScript开发相反,但它使最终用户的生活变得更加简单。 该库...
如今,构建任何非平凡的 JavaScript 应用程序都需要大量代码。 历史上,JavaScript 没有任何模块化系统,它允许您将代码拆分为模块、分离文件并控制它们的依赖项。 此外,大型应用程序不需要在启动时初始化其所有子...
迪布斯Deebs 是一个简单的 JavaScript 数据库库,专为基于浏览器的应用程序设计。 Deebs 简化了许多常见的数据操作,让您有时间专注于不太平凡的编码任务。 Deebs 可以: *获取唯一记录 *删除重复记录(重复数据删除...
所有问题描述都可以在javascript文件中找到。 可以在dom/README.md找到有关DOM练习的说明。 可以在__tests__/README.md找到测试练习的说明。 ****************************************************** ****** Git...
jsbeeb-Javascript BBC Micro模拟器使用Javascript的BBC Micro模拟器。 在Firefox,Chrome和Microsoft Edge上运行。 模拟32K BBC B(具有侧面RAM)和128K BBC主设备。 BBC的键盘与现代PC的键盘有些不同,因此了解...
初学者系列-JavaScript简介(Node.js) 概述 我们创建了一个视频系列,以帮助开发人员对为编写感到好奇。 我们的目标是帮助您向您展示足够JavaScript,以便为您提供开始快速入门所需的背景以及针对使用JavaScript的...
高级 JavaScript 高级 JavaScript 课程库 @ SoftUni
JavaScript 乒乓 经典的 Pong 游戏,旨在学习 JavaScript。 关于 目的是了解 JavaScript,学习任何编程语言的最佳方式就是编写代码,所以就在这里。 请不要介意马虎的碰撞检测。 正如一位智者曾经说过的:“我遇到了...
专业javascript-fed01 更新 | 第 6 周更新 截至今天,所有材料都是最新的。 即使是第 1 - 5 周的一些材料也进行了翻新。 欢迎 此存储库包含媒体技术程序 javascript 课程的代码示例和家庭作业。 不幸的是,它完全是...
位置选择器 JavaScript位置选择器!
TiendaVideojuegos Proyecto Final Javascript de Coderhouse
其实网上关于JavaScript中setTimeout的文章很多,但总感觉例子不够直接具体,因此写了个简单的例子并加以解释希望能让大家明白setTimeout是如何执行的。下面话不多说了,来一起看看详细的介绍: 实例代码如下: ...
观察者模式JavaScript教程库网址: :