JavaScript高级程序设计(学习)】的更多相关文章

今天,2017.3.17开始利用课余时间仔细学习<JavaScript高级程序设计>,将需要掌握的知识点记录下来,争取把书里的所有代码敲一遍并掌握. 1.标识符命名最好是第一个字母小写,剩下每个单词的首字母大写,如:firstSecond.myCar 2.var定义的变量是作用域里的局部变量,若在函数中定义,函数退出后就会被销毁 function test(){ var message = "hi"; } test(); alert(message);//错误 若在函数里定…
在javascript中也是有引用类型的,java同样如此. javascript常见也比较常用的引用类型就熟Object和Array. 一个对象和一个数组,这个在前后端分离开发中也用的最多.比如ajax传参,有时我不仅仅只是需要一个参数,例如添加方法,传的是一个对象,对象存在属性.在java中对象也可以说类.因为类存在属性,例如人类,他的属性有身高,体重,姓名,年龄,性别等.而js对象,也可以这样,比如车,它可以有品牌,颜色,造型等等. js对象可以做什么呢?同java对象有什么区别呢? 第一…
这次讲的主要是变量,作用域和内存问题. 任何一门编程语言,都涉及这三个. 变量,比如全局变量,局部变量等,作用域,也分全局作用域和方法作用域,内存问题,在java中就涉及到一个垃圾回收的问题,由于java中涉及到jvm,因此可以自动垃圾回收和内存分配,而不需要手动. 一.变量 每个变量都有其类型,数据类型.在java中分基本数据类型和引用数据类型,js同样如此. 面试题:java的基本数据类型有哪些,及其所占字节?引用类型有哪些? java基本数据类型分别为int(4),float(4),dou…
javascript高级程序设计,当枕头书已经好久了~zz  现在觉得自己在js的开发上遇到了一些瓶颈,归根究底还是基础太薄弱,所以重新刷一遍js高程希望有更新的认识. 一.javascript简介 1.ECMAScript 版本规范 2.DOM 文档对象模型 3.BOM 浏览器对象模型 二.HTML中应用script 1.<script>标签 属性:async="async" / defer="defer" 异步脚本:async:立即下载脚本,对外部脚…
一.Date类型 其实引用类型和相关的操作方法,远远不止昨天的所说的那些,还有一部分今天继续补充. 在java中日期Date,它所属的包有sql包,也有util包.我个人比较喜欢用util包的.理由,顺手习惯,个人也觉得比较好用.sql的Date类用的不算多.也用过. 下面就进入正题吧,不单单在java,在js中也存在日期函数,或换言之,日期对象. var now = new Date(); 通过now.getYear(),now.getMonth(),now.getMonth(),简单的翻译,…
<!--<script> // 异步请求封装 IE6即以上浏览器 // ajax(url,fnSucc,selectID,fnFaild) //url 请求地址 //fnSucc 异步请求后的内容处理函数 //fnFaild 请求失败处理函数 function ajax(url,fnSucc,fnFaild) { //1.创建Ajax对象 //非IE6 var oAjax; if(window.XMLHttpRequest)//不会报错,只会是undefined {oAjax=new X…
面向对象程序设计1.属性类型.定义多属性.读取属性特性对象的属性在创建时都带有一些特征值,JavaScript通过这些特征值来定义它们的行为.这些特性是为了实现JavaScript引擎用的,因此不能直接访问它们.ECMAScript中有两种属性:数据属性和访问器属性.1)数据属性数据属性包含一个数据值的位置,在这个位置可以读取和写入值.数据属性有4个描述其行为的特征.1.[[Configurable]]:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访…
作为一名web开发人员,日常用的最多的就是js,也就是大名鼎鼎的ECMAScript,又称javascript.再次声明js与java除了语法上相似,没有半毛钱关系.据说之所以叫javascript,是因为过去网景公司花了十天时间开发历史上的第一版js,但当时没有名气,故借用java之名在该script前缀上加上一个java,以提升其知名度.具体的历史或老皇历,百度或者相关官网一大堆,这里不再赘述. 作为一名前后台都攻的软件工程师,虽说平时js足以解决常见的问题和共性问题,但发现总会有这样那样的…
相关文章: 面向对象的程序设计(一) — 创建对象 http://www.cnblogs.com/blackwood/archive/2013/04/24/3039523.html 继承 继承是OO语言中的一个最为人津津乐道的概念. 许多OO语言都支持两种继承方式:接口继承和实现继承. 接口继承只继承方法签名,而实现继承则继承实际的方法. 如其所述,由于函数没有签名,在ECMAScript中无法实现接口继承. ECMAScript只支持实现继承,而且其实现继承主要是依靠原型链来实现的. 原型链…
作为学习javascript的小白,为了督促自己读书,写下自己在读书时的提炼的关键点. 第一章: 1.JavaScript简史:Netscape Navigator中的JavaScript与Internet Explorer中的JScript各成一派,是两个不同的JavaScript版本.为了取得统一,以JavaScript1.1为蓝本定义了ECMA-262,一种名为ECMAScript新语言标准,作为JavaScript的基础. 2.JavaScript含义比ECMAScript定义的多,完整…
1.事件流 事件流描述的是从页面中接收事件的顺序. 事件冒泡 IE的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档).(DOM树向上传播)(通俗解释(个人理解: 当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发.这 一过程被称为事件冒泡:这个事件从原始元素开始一直冒泡到DOM树的最上层.)) 事件冒泡的优点与缺点 优点:想象一下现在…
1.事件流 浏览器开发团队遇到一个很有意思问题:页面的那一部分会拥有特定的事件? 对于理解这个问题您可以想象画在一张纸上的一组同心圆,如果你把手指放在圆心上,那么你的手指指向的其实不是一个圆,而是纸上所有的圆.放到实际页面中就是,你点击一个按钮,而是纸上所有的圆. <栗子:现实生活中的声波.水波> 事件流:从页面中接收事件的顺序,通俗说:用户操作DOM的一系列行为交互. 2.事件冒泡 事件冒泡:IE的事件流叫事件冒泡,即事件开始由最具体的元素(文档中嵌套层次最深的那个元素)接收,然后逐级向上传…
惰性载入函数 因为浏览器之间行为的差异,多数JavaScript代码包含了大量的if语句,将执行引导到正确的代码中,看看下面来自上一章的createXHR()函数. function createXHR(){ if (typeof XMLHttpRequest != "undefined"){ return new XMLHttpRequest(); } else if (typeof ActiveXObject != "undefined"){ if (typeo…
try-catch语句 只要代码中包含finally子句,则无论try或catch语句块中包含什么代码--甚至return语句,都不会阻止finally子句的执行,来看下面这个函数: function testFinally(){ try{ ; }catch(error){ ; }finally{ ; } } 调用这个函数会返回0(PS:但我实际执行的时候会先返回0,再返回2) 抛出错误 与try-catch语句相配的还有一个throw操作符,用于随时抛出自定义错误.抛出错误时,必须要给thro…
提交表单 用户单击提交按钮或图像按钮时,就会提交表单.使用<input>和<button>都可以定义提交按钮,只要将其type特性的值设置为"submit"即可,而图像按钮则是通过将<input>的type特性设置为"image"来定义. <input type="submit" vlaue="Submit Form"> --通用提交按钮 <button type=&quo…
HTML事件处理程序 <input type="button" value="Click Me" onclick"showMessage()"/> 通过HTML指定事件处理程序的的缺点是HTML与JavaScript代码紧密耦合.如果要更换事件处理程序,就要改动两个地方:HTML代码和JavaScript代码. DOM0级事件处理程序 var btn=document.getElementById("myBtn")…
DOM(文档对象模型)是针对HTML和XML文档的一个API(应用程序接口). Document类型 文档的子节点 虽然DOM标准规定Document节点的子节点可以是DocumentType,Element,ProcessingInstruction或Comment,但还有两个内置的访问其子节点的快捷方式.第一个就是documnetElement属性,该属性始终指向HTML页面中的<html>元素.另一个就是通过childNodes列表访问文档元素,但通过documentElement属性则…
window对象 BOM的核心对象是window,它表示浏览器的一个实例.在浏览器中,window对象有双重角色,它既是通过JavaScript访问浏览器窗口的一个接口,又是ECMScript规定的Global对象. 全局作用域 由于window对象同时扮演着ECMAScript中Global对象的角色,因此所有在全局作用域中声明的变量.函数都会变成window对象的属性和方法.来看下面的例子: var age=29; function sayAge(){ alert(this.age); }…
关于函数声明,它的一个重要特征就是函数声明提升,意思是在执行代码之间会读取函数声明,意思是在执行代码之前会先读取函数声明.这就意味着可以把函数声明放在调用它的语句 后面. sayHi(); function sayHi(){ alert("Hi!"); } 理解函数提升的关键,就是理解函数声明与函数表达式之间的区别. //不要这样做 if(condition){ function sayHi(){ alert("HI!"); } }else{ function sa…
传递参数 function setName(obj){ obj.name="Nicholas"; obj=new object(); obj.name="Greg"; } var person=new Object(); setName(person); alert(person.name); //"Nicholas" 在函数体内重新new一个Object,并将它赋值为"Greg",但在函数外部访问name属性时,其值仍为&q…
看完w3school的javascript的概念,有点基础,开始红皮书的路程,今晚总结前二章的心得. 第一章:javascript简介 重点是javascript的实现是由 ECMAScript(核心):提供核心语言功能 DOM(文档对象模型):提供访问和操作页面的内容的方法和接口 BOM(浏览器对象模型):提供与浏览器窗口交互的方法和接口. 第二章:在html中使用javascript 嵌入脚本和外部脚本两种方法. 嵌入脚本示例如下: <script type="text/javascr…
函数表达式 定义函数的方式有两种:一种是函数声明,另一种是函数表达式. 关于函数声明,它的一个重要特征就是函数声明提升,意思是在执行代码之前会先读取函数声明所以可以把函数声明放在调用它的语句后面. 而函数表达式必须在调用它之前定义. 1.递归 递归函数是在一个函数通过名字调用自身的情况下构成的,如: function factorial(num){ if(num <= 1){ return 1; }else{ return num * factorial(num - 1); } } 这是一个经典…
1.全局变量不能通过delete操作符删除,而直接在window对象上定义的属性可以. var age = 29; window.color = "red"; delete age;//无法删除 delete color;//可以删除 alert(window.age); alert(window.color);//undefined 2.尝试访问未声明的变量会抛出错误,但通过查询window对象可以知道某个可能未声明的变量是否存在. var newValue = oldValue;/…
每种编程语言都有其自己的设计模式.不禁让人疑惑设计模式是用来做什么?有什么用? 简单的说,设计模式是为了让代码更简洁,更优雅,更完美. 同时设计模式也会让软件的性能更好,同时也会让程序员们更轻松.设计模式可谓是编程界的“葵花宝典”或“辟邪剑法”.如果一旦练成,必可在编程界中来去自如,游刃有余. 下面进入正题 (1)工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程(本书后 面还将讨论其他设计模式及其在 JavaScript中的实现).考虑到在 ECMAScr…
众说周知,java是面向对象的编程语言.一个类包含多个对象,例如车类,它包含宝马,奔驰,东风,本田,莲花等这样的车,而品牌和颜色或者某种标识就是它的属性.车包含很多种类,但是共性还是有的,比如共性有四个轮子,有品牌,有发动机等等.这些可以抽象为一个类,让子类继承这些共性,子类重写父类的方法,然后在此可以新增自己的属性和方法,以此标明差异活不同. js为什么不是面向对象的编程语言呢? 用一句说明: 面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可…
任何语言的核心都必然会描述这门语言基本的工作原理.而描述的内容通常都要涉及这门语 言的语法.操作符.数据类型.内置功能等用于构建复杂解决方案的基本概念.如前所述, ECMA-262通过叫做 ECMAScript的“伪语言”为我们描述了 JavaScript的所有这些基本概念 本篇文章主要讲语法,类型,操作符,语句和函数. 任何编程,都是从基础的语法开始,例如java,java也有基础语法,操作符,数据类型,控制语句等.c++,php,python也同理. js与java在变量上有其共同点,这也是…
1.JSON:JavaScript Object Notation, JavaScript 对象表示法. 2.最重要的是要理解它是一种数据格式,不是一种编程语言.虽然具有相同的语法形式,但 JSON 并不从属于 JavaScript.而且,并不是只有 JavaScript 才使用 JSON,毕竟 JSON 只是一种数据格式.很多编程语言都有针对 JSON 的解析器和序列化器. 3.语法: JSON 的语法可以表示以下三种类型的值: 简单值:使用与 JavaScript 相同的语法,可以在 JSO…
1.在 HTML 中,表单是由<form>元素来表示的,而在 JavaScript 中,表单对应的则是 HTMLFormElement 类型. HTMLFormElement 继承了 HTMLElement,因而与其他 HTML 元素具有相同的默认属性. 2.HTMLFormElement的独特属性和方法: acceptCharset:服务器能够处理的字符集:等价于 HTML 中的 accept-charset 特性. action:接受请求的 URL:等价于 HTML 中的 action 特…
事件冒泡: IE 的事件流,事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档).例如: <!DOCTYPE html> <html> <head> <title>Event Bubbling Example</title> </head> <body> <div id="myDiv">Click Me</div> </b…
1.DOM:文档对象模型,是针对 HTML 和 XML 文档的一个 API(应用程序编程接口). 2.DOM 可以将任何 HTML 或 XML 文档描绘成一个由多层节点构成的结构. 3.文档节点是每个文档的根节点.在这个例子中,文档节点只有一个子节点,即<html>元素,我们称之为文档元素.文档元素是文档的最外层元素,文档中的其他所有元素都包含在文档元素中.每个文档只能有一个文档元素.在 HTML 页面中,文档元素始终都是<html>元素.在 XML 中,没有预定义的元素,因此任何…