引用类型 和 类 不是一个概念 用typeof来检测属性是否存在 typeof args.name == "string"  需要实验 访问属性的方法 .号和[] 一般情况下要用. 判断是否是数组 Array.isArray( a )  数组变字符串 array.join("||") ; 重排序 reverse sort sort( compare )    function compare(a, b){    if( a > b ) return 1 …
  对DOM的两个主要的扩展 Selectors API HTML5  Element Traversal 元素遍历规范 querySelector var body = document.querySelector("body"); var myDiv = document.querySelector("#myDiv"); 取得id为myDiv的元素 var selected = document.querySelector(".selected&quo…
  闭包 有权访问另一个函数作用域中的变量的函数 匿名函数 函数没有名字 少用闭包 由于闭包会携带包含它的函数的作用域,因此会比其它函数占用更多的内存.过度使用闭包可能会导致内存占用过多,我们建议读者只在绝对必要时再考虑使用闭包 模块模式   增强的模块模式   特权方法 有权访问私有变量的公有方法叫做特权方法 块级作用域   实现单例的特权方法  …
  EcmaScript有两种属性 数据属性 和 访问器属性 数据属性有4个特性 Configurable Enumerable Writable Value   前三个值的默认值都为false   举例 Object.defineProperty( person, "name", { writable:false, value:"niko"} ) ;   一旦属性定义为不可配置的,就不能再把它变回可配置的了 读取属性 的特性 var descriptor  = O…
  5种基本数据类型 可以直接对值操作 判断引用类型 var result = instanceof Array 执行环境 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中 执行环境的销毁 某个执行环境中的所有代码执行完毕后 该环境被销毁 保存在其中的所有变量了函数定义也会随之销毁 作用域链中的对象 全局执行环境的变更对象始终都是作用域链中的最后一个对象 没有块级作用域 if 和 for 内的变量 外部也可以访问 标记清除 不同浏览器 只不过垃圾时间的长短不同…
启用严格模式 "use strict" 这是一个 pragma 编译指示 让编码意图更清晰  是一个重要原则 5种简单数据类型 Undefined Null Boolean Number String 1种复杂数据类型 Object 检测数据类型的方法 typeof 有如下值: undefined boolean object string number function typeof Null object 意在保存对象还没有保存对象的变量的初始值最好是什么 null 八进制的第一位…
读书笔记 - js高级程序设计 - 第十三章 事件   canvas 具备绘图能力的2D上下文 及文本API 很多浏览器对WebGL的3D上下文支持还不够好   有时候即使浏览器支持,操作系统如果缺缺乏必要的绘图驱动程序,则浏览器即使支持了也没用   <canvas> var drawing = document.getElementById("drawing"); if( drawing.getContext ){     drawing.getContext("…
  Node类型的变化   访问元素的样式 myDiv.style.backgroundColor = "red" myDiv.style.width = "100px"   计算的样式 记住所有计算的样式都是只读的 偏移量 offsetHeight 外边框外 offsetWidth  offsetLeft  外边框外 到 左端 offsetTop  客户区的大小 clientWidth  内边框外缘 clientHeight 内边框外缘 滚动大小 scrollHe…
  文档元素 是文档的最外层元素,在Html页面中,文档元素始终都是<html>元素 在xml中,任何元素都可以是文档元素 Node类型 Node.ELEMENT_NODE 元素 Node.ATTRIBUTE_NODE 属性 Node.TEXT_NODE 文本元素 Node.CDATA_SECTION_NODE  Node.ENTITY_REFERENCE_NODE Node.ENTITY_NODE Node.PROCESSING_INSTRUCTION_NODE; Node.COMMENT_…
  BOM的核心对象是window 它表示浏览器的一个实例,在浏览器中,window对象有双重角色,它既是通过js访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象,这意味着在网页中定义的任何一个对象,变量 和 函数  都以window作为其Global函数 窗口关系和frame 每个frame都有自己的window对象,并且保存在frames集合中, 在frames集合中,可能通过数值索引 或者 框架名称来访问 相应的 window 对象 top 始终指向 最高层的 框架…
Object类型 创建Object 实例的方式有两种.第一种是使用new 操作符后跟Object 构造函数. var person = new Object(); person.name = "Nicholas"; person.age = 29; 另一种方式是使用对象字面量表示法.对象字面量是对象定义的一种简写形式,目的在于简化创建包含大量属性的对象的过程. var person = { name : "Nicholas", age : 29 }; 在这个例子中,…
第五章 引用类型 一.object类型 1.创建方法: 1.使用new 操作符创建 var person=new object() Person.name=”Nicholasa” Porson.age=28 2. 适用对象字面量创建(推荐使用) Var person={ Name:”Nicholasa”, Age:28 } 2.访问对象属性 1.使用person.Name 2.使用peerson[“name”](如果括号内是变量可以遍历数组的所有属性) 2.ARRAY类型 1.创建方法: 1. …
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> </body> <script> //一元加和减操作符 var s1='01'; var s2='1.1'; var s3='z'; var b=fal…
  第一章 简介   诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262  一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BOM 浏览器对象模型 ECMAScript的宿主环境 web浏览器 Node(服务器js平台) adobe flash js和as的关系 他们都实现了 ECMAScript 五大主流浏览器 IE Firefox Safari Chrome Opera dom介绍 它是针对xml但经过扩展用于html的…
1.浮点数值 虽然小数点前面可以没有整数,但是并不推荐这种写法. 由于保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机地将浮点数值转化为整数数值.显然,如果小数点后面没有任何数字,那么这个数值就可以作为整数值来保存.同样,如果浮点数值本身表示的就是一个整数,那么该值也会被转换为整数.例如: var floatNum1 = 1.; //小数点后没有数字——解析为1 var floatNum2 = 10.0;//整数,解析未10 浮点数值的最高精度是17位小数,但在进…
1 <script>的6个属性 async  立即下载当前script标签的外部脚本 但不能影响别的 charset 没用了 defer  文档显示之后再执行脚本,只对外部脚本有效 language 没用了 src  type 描述代码内容Mine类型 默认就是text/javascript 没什么用   2 在解释器对<script>元素内部的所有代码求值完毕以前 页面中的其余内容都不会被浏览器加载或显示   3 有两种script 嵌入式 外部引入式 在解析外部引入式的js文件…
5.4 控制流  语句(statement)是一条单独的R语句或一组复合语句(包含在花括号{ } 中的一组R语 句,使用分号分隔):  条件(cond)是一条最终被解析为真(TRUE)或假(FALSE)的表达式:  表达式(expr)是一条数值或字符串的求值语句: q    序列(seq)是一个数值或字符串序列. q  5.4.1重复和循环 q  1.for结构  循环重复地执行一个语句,直到某个变量的值不再包含序列seq中为止 q  语法:for(var in seq) statemen…
5.2.1数学函数 函数 描述 abs(x) 绝对值 sqrt(x) 平方根 ceiling(x) 不小于x的最小整数 floor(x) 不大于x的最大整数 trunc(x) 向0的方向截取的X中的整数部分 round(x,digits=n) 将x舍入为指定位的小数 signif(x, digits=n) 将x舍入为指定的有效数字位数 cos(x).sin(x).tan(x) 余弦.正弦和正切 acos(x).asin(x).atan(x) 反余弦.反正弦和反正切 cosh(x).sinh(x)…
问题:怎么才能形象的理解堆栈空间? 1. 声明变量 使用 var 声明的变量会自动被添加到最接近的环境中.在函数内部,最接近的环境就是函数的局部 环境:在 with 语句中,最接近的环境是函数环境.如果初始化变量时没有使用 var 声明,该变量会自 动被添加到全局环境.如下所示: function add(num1, num2) { var sum = num1 + num2; return sum; } alert(sum); //由于 sum 不是有效的变量,因此会导致错误…
前言:纯手打!!!按照自己思路重写!!!这次是二刷了,想暑假做一次完整的笔记,但用本子来写笔记的话太贵了,可能哪天还丢了..所以还是博客好== 第四章:变量.作用域和内存问题 4.1 基本类型和引用类型的值: ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值: 指的是简单的数据段. 类型:Undefined.Null.Boolean.Number.String.这五种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值. 在内存中占据固定大小的空…
前言:这次是二刷了,想暑假做一次完整的笔记,但用本子来写笔记的话太贵了,可能哪天还丢了..所以还是博客好== 第二章:在HTML中使用JavaScript 2.1 <script>元素: 即在HTML页面插入JS的主要方法.HTML4.01定义了以下JS属性(主要): async :表示立即下载脚本(只对外部脚本文件有效),但不妨碍页面中的其他操作. defer : 表示脚本可以延迟到文档完全被解析和显示之后再执行(只对外部脚本文件有效). src : 表示包含要执行代码的外部文件. type…
前言:纯手打!!!按照自己思路重写!!!这次是二刷了,想暑假做一次完整的笔记,但用本子来写笔记的话太贵了,可能哪天还丢了..所以还是博客好== 第三章:基本概念(语法.数据类型.流控制语句.函数) 3.1 语法: ECMAScript的语法大量借鉴了C及其他语言. 3.1.1 区分大小写 3.1.2 标识符: 指的是变量.函数.属性的名字.函数的参数.注意:首字符必须是一个字母.下划线.或者美元$符号. ES标识符采用驼峰大小写格式(首字母小写,其他单词的首字母大写,如:setData),不可以…
1:JS中的一切(变量,函数名和操作符)都是区分大小写的 2:标识符(变量,函数,属性的名字,以及函数的参数),第一个字符必须是字母,下划线,或者美元$,书写方式采用驼峰式,不能将关键字作为标识符. 3:JS的变量是松散类型,每个变量仅仅是一个用于保存值的占位符,未初始化的变量都会保存一个特殊值--undefined. 4:JS的五种基本数据类型(Undefined,Null,Boolean,Number,String),复杂数据类型--Object(本质是一组无序的键值对组成).从技术上讲,函…
BOM提供了很多对象,用于访问浏览器的功能.这些功能与任何网页无关. 1BOM的核心对象是window,它代表浏览器的一个实例,它是通过JS访问浏览器窗口的一个借口,同时又是ECMAScript规定的global对象,因此我们在网页中定义的任何一个对象,变量和函数都是以window作为其global对象的(ES6规定,let,const,class定义的全局变量,不再是以window作为global) 注意:定义的全局变量是不能通过delete操作符删除的,但是window对象上面定义的属性可以…
1在将一个值赋给变量时,解析器必须确认这个值是基本类值还是引用类型值,基本类型值是按值访问的,可以操作保存在在变量中的实际值,引用类型是保 存在内存中的对象,JS不允许直接访问内存中的位置,所以实际操作的是对象的引用而不是实际对象.(当复制保存这对象的某个变量时,操作的是对象的引用,但是为对象添加属性的时候,操作的却是实际对象). 2"JS一切皆对象",当然了简单值就不是对象.对象就是若干属性的集合,所以说对象只有属性,没有方法.其实方法也是属性,因为他的属性表现为键值对,对象可以随意…
成员初始化 Java尽力保证:所有变量在使用前都能得到恰当的初始化. 对于方法的局部变量,Java会以编译时报错的形式贯彻这种保证,比如: void f() { int i; //这里编译时就会报错,未初始化 } 但是如果是类的数据成员,情况会有所不同.类的每个基本类型数据成员会保证一个默认初始值,通常为0,布尔型就是false,引用类型会为null. 指定初始化 (1 直接在类里定义时写变量等于多少(这样在C++中是不允许的)如, public class initialV { int a=1…
1.组合继承 (JavaScript 中最常用的继承模式 ) (position: page168) (书中定义了两个变量名 SuperType   SubType  乍一看 感觉不太能区分,我将改为 a b ,更加明显区分开来这是两个东西.) function a(name){ this.name = name; this.colors = ["red", "blue", "green"]; } a.prototype.sayName = fu…
ES3方法集合: 1join()方法,将一个数组里面的所有元素转换成字符串,然后再将他们连接起来返回一个字符串,通过制定的符号,默认值为逗号.不会改变原数组 ,,,,]; a.join(); "1,2,3,4,5" typeof (a.join()); "string" typeof a "object" 2reverse()方法对数组顺序进行反转,会改变原本的数组. ,,,,]; a.reverse(); [, , , , ] a [, , ,…
js高级程序设计笔记之-addEventListener()与removeEventListener(),事件解除与绑定 addEventListener()与removeEventListener()用于处理指定事件和删除事件处理程序.所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名.作为事件处理程序的函数和一个布尔值.这个布尔值参数是true,表示在捕获阶段调用事件处理程序:如果是false,表示在冒泡阶段调用事件处理程序. 要在按钮上为click事件添加事件处理程…
今天在继续翻阅<JS高级程序设计>的时候,正好翻到location对象这一小节,其中有一部分就是讲的解析查询字符串.看到这个内容立马想到了做去哪儿秋招笔试题的时候有这么一道题. 去哪儿笔试没有过自己还是一直都挺心塞的,可能当时也写得不好吧,现在看到这个内容赶紧记下来. 函数的功能就是为了能逐个访问每个查询字符串参数,返回一个包含所有参数的对象. function getQueryStringArgs(){ //利用location.search属性先提取出URL中的查询字符串,这个字符串包含&…