`
singleant
  • 浏览: 375298 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JavaScript关键特征,你了解几个?

阅读更多

(两年前本人在CSDN博客上的文章,那边都不维护了,今天顺便转过来)

 

JavaScript 相信做 web 编程的程序员没有人不熟悉。不管是 .net 还是 JavaEE ,作为前端的重要技术到处都会用到。大学开始学 web 编程的时候,感觉 JavaScript 这个玩意挺神奇的。能用来写一些简单验证,如判断空、邮箱格式判断、用正则表达式去空格等。大家肯定都写过 JS ,但是真正去研究 JS 的人不知道有多少。以我个人经验,我总是能在网上找到答案,并能实现一些想要的功能。但是很惭愧对 JS 这门语言真不能说是特别的了解。 AJAX 的风行, ext,dwr,jquery 等各种 js 的框架越来越多。 JS 也可以实现面向对象的一些特征。终于还是有必要对这个使用多年脚本做深入学习。

主要内容是看 <Ajax in action> 这本书对于 JS 的介绍,同时结合自己的理解。 JavaScript 的主要特征有 ( 很关键哦,不知道你理解几条 )

1.          弱类型

变量仅仅声明为变量,而不是整数,字符串或者特定类的对象。

Var object 而不是 int a; String b;

经常的变量定义如下 :

var length=10;

var memberId=“abingsky”;

var obj=new Object();

var date = new Date();

var strArr = new Array();

var companyIds=document.getElementById("companyIds").value;

可以从这一点看出来 JavaScript 变量的定义语法有多松散,弹性有多大。对于习惯了 Java C# 的面向对象的严格类型限制的程序员来说,多少有点不习惯。由于 Javascript 是一种动态解释的,所以在运行时会根据值来正确的解释。

2.          动态解释

JS 不需要预先编译。只是存储成文本,在程序运行时由专门的 JS 引擎解释为机器指令。

3.          函数是正常的对象

Java 对象的方法与拥有它的对象绑定在一起,只能通过该对象来调用,而 Javascript 的函数可以附加到对象上,使得它们的行为类似于方法。但是它们可以在上下文中调用,并且在运行是附加到其他对象身上。我觉得这也是 JS 语法松散的一个表现,所有的方法可以像变量一样被赋予不同的对象。例如要在页面装载后做一些操作,可以动态的将某一个函数对象赋值给 window.onload.

Window.onload=function (){

displayDiv=document.getElementById('display');

displayDiv.innerHTML= Hello,World! ”;

附几种常见对象的定义方式:

普通对象

Var myObject=new Object(); 这时候的对象初始化为空,不带有任何属性和方法。可以通过下面方式添加属性和方法:

myObject.shoeSIze=12;

myObject.sayHello=function(){

...

}

数组对象

用中括号括起来

var books=[book1,book2,book3]

JSON 对像

myObject.books={

bestSeller:book1,

cookbook:book2,

spaceFilter:book3

}

4.          构造函数、类和 prototype 属性

所有的 Javascript 对象是相同基类的实例。而这个基类就是有能力在运行时将成员字段和函数与自己绑定在一起的类。所以可以在运行时给对象分配任意属性。

Function MyObject(name,size){

this.name=name;

this.size=size;

}

var myObj=new MyObject ”ttt” 122

设置为 this 关键字的属性的任何东西随后都可以作为对象的一个成员使用。 ( 任何一个函数都可以通过 new 来调用,而生成的对象的属性关键要看该函数里面对于 this 的调用 )

 

prototype :定义了将自动绑定在对象上的属性和函数。 Prototype 在一定程度上为程序员提供了面向对象非常想要的规律性和熟悉感。个人感觉是 JavaScript 非常精髓的一个地方。

prototype JavaScript 对象的一个属性。函数和属性可以与构造函数的 prototype 关联起来。然后 prototype new 关键字协同工作,当使用 new 调用函数时,函数 prototype 的所以属性和方法会附加到结果对象上。

Function MyObject(name,size){

this.name=name;

this.size=size;

}

MyObject.protype.tellSize=function(){

alert( size of ”+ this.name+ is +this.size);

}

prototype 机制也可以与内建类协同工作。 DOM 节点在 IE 不能扩展,但在其他的核心类在所有主要的浏览器中都是可以扩展的。内建类包括 (Array,Object,Date ) 。如可以为 Array 类定义一些有作用的帮助函数:

Array.prototype.indexof=function(obj){

var result=-1;

for(var i=0;i<this.length;i++){

if(this[i]==obj){

result=i;

break;

}

}

return result;

}

这样定义之后 Array 类就有了一个方法 indexof ,和 java 里的基本一样。

 

以上是关于 JavaScript 几个关键特点的理解,可参考 Ajax in action 这本书里面的附录介绍。不知道你对 JavaScript 理解多少,一起来学习吧。

0
0
分享到:
评论

相关推荐

    《JavaScript语言精髓与编程实践》精选版

    本迷你书摘引了《JavaScript语言精髓与编程实践》一书有关语言讨论的关键章节(主要在第三、四、五章),从JavaScript 无关的角度综论这些语言的产生发展,以及特性的概要。作为纯语言学范畴的讨论,读者在本摘引中...

    你真的了解重排和重绘吗?

    下面是浏览器渲染过程中最关键的几个部分。如果想了解完整的浏览器渲染流程,推荐大家去阅读李兵老师的浏览器工作原理实践,需要付费阅读。后期我也会整理一下再出一篇博客详细介绍浏览器的渲染过程。 JavaScript:...

    JavaScript30:30天香草JS编码挑战

    找到的工具:在查找JavaScript事件键好工具第二天:2018年6月19日几秒钟后,了解了有关CSS过渡和转换,ES6 const关键字和实时UI的信息。第三天:2018年6月20日了解CSS变量并使用JavaScript更新它们第四天:2018年6...

    基于Web的教学网站前端开发设计.zip

    项目主页主要包括:搜索栏目、菜单、时间及新闻、焦点图、课程主要知识介绍、合作企业及网站底部等几个模块。 主要包括HTML、CSS、Javascript、DOM、BOM、AJAX等技术手段,用于解决web开发中的网页布局方面的问题。 ...

    JavaScript Table行定位效果

    用这个方法关键有两点,首先要做一个仿真度尽可能高的tr,还有是要准确的定位,这些请看后面的程序说明。 程序说明 【克隆table】 克隆一个元素用cloneNode就可以了,它有一个bool参数,表示克隆是否包含子节点...

    applicative-2015:在 Applicative 2015 上探索 JavaScript 中的React式扩展

    仅使用几个函数,您将学习如何执行以下操作: 从简单事件中声明性地构建复杂事件(例如拖放) 协调和排序多个 Ajax 请求响应数据更改以响应方式更新 UI 消除因忽略取消订阅事件而导致的内存泄漏优雅地传播和处理...

    后端开发技术要点&详细案例*注意事项

    当涉及后端开发时,主要有几个关键技术和概念需要了解,包括服务器端编程语言、数据库管理系统、API 设计、安全性和性能优化等。下面我将给出一个简单的后端开发教程,以及一个相关案例和项目。 后端开发教程 1. ...

    php网络开发完全手册

    1.2.2 PHP擅长的几个领域及产品介绍 5 1.2.3 PHP不适合做什么 6 1.2.4 其他案例 6 1.3 PHP的Hello, world预览 6 1.3.1 第一个PHP程序Hello, world 6 1.3.2 学习PHP应该准备哪些软件 8 1.3.3 相关知识领域的介绍 9 ...

    XML高级编程

    这些是贯穿全书的、在此后的章节中将重点突出的几个主线。这使得你能够在通读全书时把注意力集中在那些对于你非常重要的问题上,而跳过其他章节。学习主线 XML是从一种简单的文档标记语言逐步发展成为涉及范围广泛的...

    编写可读代码的艺术.[美]Dustin Boswell,Trevor Foucher(带详细书签)

    我们希望本书对你每天的编程工作有很多帮助,并且希望你把本书推荐给你团队中的每个人。本书内容安排这是一本关于如何编写具有高可读性代码的书。本书的关键思想是代码应该写得容易理解。确切地说,使别人用最短的...

    最新网络办公系统+jsp.zip

    该资源包可能包含以下几个关键部分: 1. **项目概述**: 提供系统的详细概述,包括开发背景、目标用户群体(如企业员工、团队领导、IT管理员)、实现的主要功能以及预期的效果。 2. **技术文档**: 详细介绍了使用JSP...

    玩游戏游戏学编程 CodeCombat.zip

    CodeCombat 是一个通过玩游戏来学习编程的网站,也是GitHub上最大的开源CoffeeScript(一种脚本语言,类似JavaScript)项目,构筑在几十个开源项目之上的,有上千程序员和玩家为其编写程序、测试游戏。到目前为止,...

    最新课程在线教学平台设计与实现+jsp.zip

    该资源包可能包含以下几个关键部分: 1. **项目概览**: 提供系统的详细概述,包括项目背景、目标用户群体(如教师、学生、教育管理员)、实现的主要功能以及预期的效益。 2. **技术文档**: 详细介绍如何使用JSP技术...

    brainhacks:清醒到可以骑摩托车回家吗? 发短信太累? 通过 Brain Hacks 找出答案

    我们的首席设计师曾在多个神经科学实验室工作,我们团队中的每个人都在过去几个月提交了大学应用程序。 因此,您可以说我们对在急性和慢性疲劳下进行手术了解一两件事。 21 小时不睡觉大约相当于 BAC 水平 0.08...

    Algorithm:算法学习以及一些编程领域的文档、知识、技巧、个人想法

    面试可能提问关键的几个函数 Vue对模板的解析 前端File那些事 大厂的第一堂课:完整的git流程 Vue打包优化之路 TypeScript在Vue的实践 算法 消息队列 栈结构 二叉树 选择排序 快速排序 冒泡排序 插入排序 Leetcode ...

    响应式山河旅行社网站-html项目源码

    导航栏清晰明了,包括首页、目的地、旅游套餐、关于我们、联系我们等几个主要板块,方便用户快速找到所需信息。 在目的地页面,用户可以浏览各个热门旅游目的地的详细介绍、图片和价格等信息。旅游套餐页面则提供了...

    Chapter-2:欢迎来到爱奥尼克

    第2章-欢迎来到Ionic关于本章在上一章中,我们看到了AngularJS的几个关键功能,即指令和服务。 在本章中,我们将了解移动混合应用程序的概况,设置开发Ionic应用程序所需的软件,最后搭建一些应用程序。 本章涵盖的...

Global site tag (gtag.js) - Google Analytics