一、富有表现力的JavaScript
第一章:富有表现力的JavaScript
1.1 JavaScript的灵活性
1.2 弱类型语言
1.3 函数是一等对象
1.4 对象的易变性
1.5 继承
1.6 JavaScript中的设计模式
1.7 小结
1.1 JavaScript的灵活性
JavaScript最强大的特性是其灵活性。作为JavaScript程序员,只要你愿意,可以把程序写得很简单,也可以很复杂。这种语言也支持多种不同的编程风格。你既可以采用函数式编程风格,也可以采用更复杂一点的面向对象编程风格。
1.2 弱类型语言
JavaScript中有3种原始类型:布尔型、数值型、和字符串类型。此外,还有对象类型和包含可执行代码的函数类型。最后,还有空类型(null)和为定义类型(undefined) 这两种类型。原始数据类型按值传送(递),而其他数据类型则按引用传送(递)。
toString方法可以把数值或布尔值变为字符串。
parseFloat和parseInt函数可以把字符串变成数值
双重“非”操作可以把字符串或数值变为布尔值 var bool = !!num;
1.3函数是一等对象
JavaScript中函数可以存储在变量中,可以作为参数传递给其他函数,可以作为返回值从其他函数传出,还可以运行时进行构造。
匿名函数示例:
// An anonymous function, executed immediately.
(function(){
var foo = 10;
var bar = 2;
alert(foo * bar);
})();
(function(foo , bar){
alert(foo * bar);
})(10,2);
匿名函数最有趣的用途是用来创建闭包。闭包(closure)是一个受到保护的变量空间,由内嵌函数生成。
创建类的私用(private)变量原理:
JavaScript具有函数级的作用域。这意味着定义在函数内部的变量在函数外部不能被访问。JavaScript的作用域又是词法性质的(lexically scoped)。这意味着函数运行在定义它的作用域中,而不是在调用它的作用域中。把这两个因素结合起来,就能通过把变量包裹在匿名函数中而对其加以保护。
1.4 对象的易变性
在JavaScript中可以为函数添加属性,也可以对先前定义的类和实例化的对象进行修改:
内省概念:可以在运行时检查对象所具有的属性和方法,还可以使用这种信息动态实例化类和执行其方法。
JavaScript大多用来模仿传统的面向对象特性的技术都依赖于对象的易变性和反射。
1.5 继承
JavaScript使用的是基于对象的原型示(prototypal)继承,它可以用来模仿基于类的继承。
1.6 JavaScript中的设计模式
JavaScript使用设计模式主要有如下原因:
1) 可维护性。有助于减低模块间的耦合程度。
2) 沟通。为处理不同类型的对象提供了一套通用的术语。
3) 性能。提高程序的运行速度,减少需要传送到客户端的代码量。最重要的例子是享元模式和代理模式。
一、富有表现力的JavaScript的更多相关文章
- 【总结】富有表现力的JavaScript
1.JavaScript的灵活性 JavaScript是目前最流行.应用最广泛的语言之一,它是一种极富表现力的语言,它具有C家族语言所罕见的特性.这种语言允许我们使用各种方式来完成同一个任务或者功能, ...
- 富有表现力的javascript
1.javascript的灵活性,你可以把它写的很简单,也可以写的很复杂,简直就是随心所欲: 2.javascript是弱类型语言,定义变量的时候不用声明变量类型,不声明类型,并不是说,javascr ...
- 《JavaScript设计模式》笔记之第一、二章:富有表现力的JavaScript 和 接口
第一章 创建一个类 方法一: var Anim = function() { ... }; Anim.prototype.start = functi ...
- JS设计模式——1.富有表现力的JS
创建支持链式调用的类(构造函数+原型) Function.prototype.method = function(name, fn){ this.prototype[name] = fn; retur ...
- 8款极具表现力的jQuery/CSS3网页菜单
上一篇我向大家分享了7款效果震憾的HTML5应用组件,今天主要来分享一下CSS3网页菜单,因为在一个网站中,菜单起着举足轻重的作用,所以作为WEB开发人员,我们有必要将网站的菜单设计得尽量完美,下面向 ...
- 充满想象力的 JavaScript 物理和重力实验
在这个列表中挑选了9个物理和重力实验,用来展示 Javascript 的强大.几年前,所有这些实验都必须使用 Java 或 Flash 才能做.在下面这些惊人的例子中,就个人而言,我比较喜欢仿真布料的 ...
- 9个充满想象力的 JavaScript 物理和重力实验
在这个列表中挑选了9个物理和重力实验,用来展示 Javascript 的强大.几年前,所有这些实验都必须使用 Java 或 Flash 才能做.在下面这些惊人的例子中,就个人而言,我比较喜欢仿真布料的 ...
- 富有魅力的git stash
git stash 会把当前的改动暂时搁置起来, 也就是所谓的git 暂存区. 你可以执行 git stash list 来查看你所有暂存的东东. 也可以 git stash apple ** 来拿下 ...
- Stylus-富有表现力的、动态的、健壮的CSS
今天总结一下Stylus记一些常用的也是最基本的用法 一. 选择器 Stylus是基于缩进的这让我们可以更快捷的编写css比如 body { margin:; paddind:; font-size ...
随机推荐
- TCP/IP协议族
1.TCP(传输控制协议)/IP(网际协议)协议族是一个网络通讯模型,以及一整个网络传输协议家族,为互联网的基础通讯架构. TCP/IP四层协议的表示方法: 2.TCP/IP参考模型映射到OSI模型: ...
- DOM缘起
DOM是现在按W3C标准的浏览器均实现的标准.HTML.CSS.DOM共同在结构.表现.交互上共同支撑起一个页面.当然,必须以用户为中心.平稳退化.逐渐增强.DOM的操作是通过JS来实现的.JS最初在 ...
- OpenCV学习(1)OpenCV简介
简介 OpenCV的全称是:Open Source Computer Vision Library,OpenCV是一个开源的跨平台的计算机视觉库,可以运行在Linux.Windows和Mac OS操作 ...
- leetcode Longest Valid Parentheses python
class Solution(object): def longestValidParentheses(self, s): """ :type s: str :rtype ...
- CFILE追加写入文件
CFile file; file.Open(strName, CFile::modeWrite|CFile::modeNoTruncate|CFile::modeCreate); ) { file.S ...
- 各种数据库的批量插入操作_Oracle
最近工作中需要优化以前各种的Excel批量导入功能,目前将能优化的方面做个记录. 选用技术: 目前.Net可以访问Oracle常用的Dll,有三种: 微软自带的 System.Data.OracleC ...
- SharedPreferences最佳实践
转:http://blog.csdn.net/xushuaic/article/details/24513599 笔记摘要:该文章是我在Android Weekly中看到的,以前也一直用SharedP ...
- vim note
2016-1-22 vim plugin collections: (参考 https://www.youtube.com/watch?v=0QFR-_wUoA0) vim-pathogen 插件管 ...
- Python 模块的一般处理
因为Python模块在被导入时,定义在模块中的顶级代码是会被执行的!如果我们想改变这种运行方向可以这样做: if __name__ == '__main__':#当这个模块作为主程序时__name__ ...
- header.htm
<!--{ad/subnavbanner/a_mu}--> 的意思是 全局 页头二级导航栏广告 位 <!--{subtemplate common/pubsearchform}- ...