BOM(JavaScript高程笔记)】的更多相关文章

再次编辑于20160115 一.window对象 双重角色 JS访问浏览器窗口的接口 ECAMAscript规定的Global对象 1.全局作用域 所有在全局作用域中声明的变量.函数都会变成window对象的属性和方法 delete的差别 直接在window对象上定义的属性可以delete,返回true 全局变量不能通过delete操作符删除([configurable] = false),返回false IE<9在使用delete删除window属性时会抛出错误 访问未声明变量的差别 访问未声…
8.1 window对象--表示一个浏览器的实例 在全局作用域中声明的任何变量.函数都会变成window对象的属性和方法,与之直接定义window对象的属性的区别是   window.xxx 可以通过delete操作符删除   而全局中定义的无法通过delete操作符 删除! 浏览器窗口位置以及关系 --如果页面包含框架那么每个框架都拥有自己的window对象,并且保存在frames集合中,在frames集合中可以通过索引(从0开始,由左至右,由上到下)或者框架的名称来访问相应的window对象…
一.Object类型 1.1创建方式 ①new关键字 : var person = new Oject(); ②给定直接量: var person = { name : "zhangsan", age : "18" } 1.2.访问方式 :一种为 对象点属性名称   “person.name”   或者使用中括号  “person["name"]” 使用中括号必须用引号括起来  或者括号内使用的是变量  例如:var b="name&q…
一.节点层次 1.Node类型 if (someNode.nodeType == 1){ // 适用于所有浏览器 alert("Node is an element."); } Node.ELEMENT_NODE (1): Node.ATTRIBUTE_NODE (2): Node.TEXT_NODE (3): nodeName 和 nodeValue 属性 在使用这两个值以前,最好是像下面这样先检测一下节点的类型. if (someNode.nodeType == 1){ value…
函数声明 特点:函数声明提升(执行代码之前解析器会先读取函数声明,并使其在执行任何代码之前可用,意味着可以把函数声明放在调用语句之后) function functionName(arg0,arg1) { //do something } 函数表达式 特点:无提升(须等到解析器执行到它所在的代码行才会真正被解析执行) 1.最常见-匿名函数 var functionName = function() { //do something }; 2.命名函数表达式 var functionName =…
1.可维护性 <1>什么是可维护的代码 (1)可理解性 (2)直观性 (3)可适应性 (4)可扩展性 (5)可调试性 <2>代码约定 (1)可读性---适当的进行注释[函数和方法.大段代码.复杂的算法.Hack浏览器差异性] (2)变量和函数名--语义化 (3)变量类型透明---一眼看出来是什么类型的数据 <3>松散耦合---代码最好不要交叉---排错方便 (1)HTML和JavaScript (2)Css和JavaScript (3)应用逻辑和事件处理程序(按键.获取…
逻辑与和或 逻辑与 当 && 前后两个操作数都是布尔值,无可厚非,同时为true才为true.与其他强类型语言不同的是,javascript逻辑与前后的操作数可以应用于任何类型. 而且,在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值. 如果第一个操作数是对象,则返回第二个操作数 //返回 字符串:"this is the secondObject" function LogicAnd1(){ var firstObject ={ valueOf:func…
json对象——语法 简单值:与JS相同语法,可以是字符串,数值,布尔值,null:但不支持undefined 对象: 复杂数据类型,表示一组有序的键值对,键值对的值可以是简单数据,也可以是复杂数据 数组:也是复杂数据类型,数组的值也可以是简单或者复杂类型 json字符串必须要使用双引号 json对象方法 JSON.stringify(js对象),此方法接收一个或者两个参数,第一个参数为js对象并将其解析返回一个json对象 ,在解析过程中,所有的函数及原型成员都会被有意忽略,此外值为undef…
10.1.1 node类型 --除IE外 所有浏览器都可以访问到这个类型 :JS中所有的节点类型都继承自Node类型 nodeName 与nodeValue  如果是一个元素 那么nodeName中保存的是标签名称,而nodeValue默认为空 节点关系-每个节点都有一个childNodes属性 ,其中保存着nodeList对象, 注意的是nodeList对象并不是Array实例,而是基于DOM结构动态执行查询的结果:因此在删除或者添加nodeChild时特别注意下标的变化 parentNode…
首先JavaScript中的变量分为基本类型和引用类型. 基本类型就是保存在栈内存中的简单数据段,而引用类型指的是那些保存在堆内存中的对象. 1.参数传递 javascript中所有参数的传递都是值传递. 1.1 基本数据类型的传递(undefined ,Null,Boolean,number,String) 1--->var money = 10; 2--->var t=function (money){ money = 5; alert(money); //5 }3--->t(mon…
7.1递归 经典递归例子 function factorial(num){ if(num <= 1){ return 1; }else{ return num * factorial(num - 1); } } var a = factorial; //① factorial = null; //② alert(a(3)); // ③ factorial is not a function //原因 栈内存中存放一个factorial变量 指向堆内存中的函数体 第①句代码 执行后 变量a 亦指向…
理解对象的概念  js中的对象与其他 编程语言中的类不一样  ECMAscript 没有类的概念      ECMA-262 把对象定义为 “无序属性的集合,其属性可以包含基本值,对象或者函数”   也就是键值对   可以理解成散列表  示例简单的创建一个对象 var person = new Object(); person.name = "zhangsan" person.age = 20; person.sayhi = function (){ return "myNa…
JavaScript高级笔记 1,DOM的简单学习 1.1,功能:用于控制HTML文档的内容: 1.2,获取页面标签对象:Element *document.getElementById("id值(常常是div元素所设置的id值)"); 1.3操作Element对象: 1.3.1:修改属性值: 1,明确获取的对象是哪一个? 2,查看api文档,找到其中那些属性可以设置 1.3.2:修改标签体的内容: innerHTML:用于获取元素对象,可以修改标签体的内容 2,事件的简单学习 1,功…
JavaScript 重点笔记 ## 数组 // 必须掌握 - arr.length:获取数组元素的长度 - arr.splice(起始位置,长度):从数组中添加或删除元素. - arr.indexOf():获取指定元素在数组中的位置,不存在返回-1 - arr.sort([函数:排序规则]):排序(默认采用字符串顺序排序,数字排序则需要通过自定义函数实现) - arr.join(str):将arr以指定字符连接成字符串 // 次重点 - arr.push():在数组末尾推入指定元素 - arr…
一.函数返回值1.什么是函数返回值    函数的执行结果2. 可以没有return // 没有return或者return后面为空则会返回undefined3.一个函数应该只返回一种类型的值 二.可变参(不定参)arguments function sum (a,b) { var result=0; var i=0; for(i=0;i<arguments.length;i++) { result+=arguments(i); } alert(resulet); } sum(12,5,7,5,5…
一.真假判断 真的:true.非零数字.非空字符串.非空对象 假的:false.数字零.空字符串.空对象.undefined 例: if(0){ alert(1) }else{ alert(2) } 结果是2 二.JSON和for in 例: var obj={aa:1,bb:2,cc:3} var attr='';for (attr in obj){ alert(attr+'='+obj[attr]) } 结果是aa=1 bb=2 cc=3 三.NaN not a number 非数字 与自身…
最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Ja…
在javascript - 工作笔记 (事件绑定二)篇中,我将事件的方法做了简单的包装,  JavaScript Code  12345   yx.bind(item, "click", function (e) {         //console.log("Div Click 1 !");         alert("Div Click 1 !");         e.stopPropagation();     }); 但是这样用起来…
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) Java程…
计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) J…
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) Java程…
你不知道的JavaScript上卷笔记 前言 You don't know JavaScript是github上一个系列文章   初看到这一标题的时候,感觉怎么老外也搞标题党,用这种冲突性比较强的题目吸引眼球,以致最初真没去看内容.直到出了中文版<你不知道的JavaScript>,一看评价大家都说好,买来一读,内容果然很好,很多地方,让我这个半路转行JavaScript的人豁然开朗.中文版现在出了上卷,中卷应该很快会推出,下卷就要等久一点了 作用域和闭包 作用域是什么 1.现代JavaScri…
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) Ja…
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) Ja…
数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数  toExponential() 方法 用科学计数法表示数,参数指定小数位个数  toPrecision() 方法自动判断调用toFixed()或toExponential()方法,参数指定所有数的位数 复制代码代码如下: var num = 99;  alert(toFixed(2)); //99.00  alert(toExponentia…
JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN] // map有三个参数:数组元素,元素索引,数组本身 // parseInt有两个参数,元素本身以及进制parseInt(string,radix) ['1','2','3'].map(parseInt); ['1','2','3'].map(function(item,index,array)…
第六章   Canvas与javaScript特效笔记 q  <canvas>标签的用途 HTML5 canvas 提供了通过 JavaScript 绘制图形的方法,此方法使用简单但功能强大.每一个canvas 元素都有一个"上下文( context )" (想象成绘图板上的一页),在其中可以绘制任意图形.浏览器支持多个 canvas 上下文,并通过不同的 API 提供图形绘制功能. 为了能在 JavaScript 中引用元素,最好给元素设置 id:也需要给 canvas…
js是一门函数式语言,因为js的强大威力依赖于是否将其作为函数式语言进行使用.在js中,我们通常要大量使用函数式编程风格.函数式编程专注于:少而精.通常无副作用.将函数作为程序代码的基础构件块. 在函数式编程中,有一种函数称为匿名函数,也就是没有名称的函数,是js中的一个非常重要的概念.通常匿名函数的使用情况是,创建一个供以后使用的函数.比如将匿名函数保存在一个变量里面,或将其作为一个对象方法,更有甚者将其作为一个回调等等之类的. //保存在变量中,通过fn去引用 var fn=function…
JavaScript学习笔记[0] 使用的是廖雪峰JavaScript教程. 数据类型 Number 表示数字,不区分浮点整形. === 比较时不转化数据类型. == 反之. NaN与任何值都不想等,包括自己.只能用isNaN() isNaN(NaN); //true 浮点数计算有误差.任何语言都是这样.只能通过计算差值来确定. 1 / 3 === (1 - 2 / 3) //false Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001 //true null…
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript学习笔记(3--this/call/apply) Java程序猿的JavaScript学习笔记(4--this/闭包/getter/setter) Java程序猿的JavaScript学习笔记(5--prototype) Java程序猿的JavaScript学习笔记(6--面向对象模拟) Java程…