数据属性:该属性包含了一个数据值的位置,它包含了4个描述行为的特性:1. [[Configurable]]:表示是否能通过delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访问器属性.2. [[Enumerable]]:表示能否用for-in循环返回.3. [[writable]]:表示能否修改属性的值.4. [[Value]]:包含这个属性的数据值.读取属性值的时候从这个位置读,写入属性值的时候更新到这个位置,默认值为undefined. 直接在对象上定义的属性的数据特…
js高级程序设计笔记之-addEventListener()与removeEventListener(),事件解除与绑定 addEventListener()与removeEventListener()用于处理指定事件和删除事件处理程序.所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名.作为事件处理程序的函数和一个布尔值.这个布尔值参数是true,表示在捕获阶段调用事件处理程序:如果是false,表示在冒泡阶段调用事件处理程序. 要在按钮上为click事件添加事件处理程…
今天在继续翻阅<JS高级程序设计>的时候,正好翻到location对象这一小节,其中有一部分就是讲的解析查询字符串.看到这个内容立马想到了做去哪儿秋招笔试题的时候有这么一道题. 去哪儿笔试没有过自己还是一直都挺心塞的,可能当时也写得不好吧,现在看到这个内容赶紧记下来. 函数的功能就是为了能逐个访问每个查询字符串参数,返回一个包含所有参数的对象. function getQueryStringArgs(){ //利用location.search属性先提取出URL中的查询字符串,这个字符串包含&…
server.jsvar connect=require('connect');serveStatic=require('serve-static');var app=connect();app.use(serveStatic("../angularjs"));app.listen(5000);运行server.js没反应,localhost:5000/test.html显示cant get test/html angular.js高级程序设计书本开头配置环境出错,谁能给解答一下 &g…
读书笔记 - js高级程序设计 - 第十三章 事件   canvas 具备绘图能力的2D上下文 及文本API 很多浏览器对WebGL的3D上下文支持还不够好   有时候即使浏览器支持,操作系统如果缺缺乏必要的绘图驱动程序,则浏览器即使支持了也没用   <canvas> var drawing = document.getElementById("drawing"); if( drawing.getContext ){     drawing.getContext("…
面向对象 ,基本模式.对象字面量模式.工厂模式.构造函数模式.原型模式.组合构造函数和原型模式.其他模式见电子书:动态原型模式.寄生构造函数模式(不推荐).稳妥构造函数模式(要求安全的环境,不使用new 和 this) //面向对象 /* [ 数据属性] * configurable true 通过 delete删除属性来修改属性 * enumberable true 通过 for-in 返回属性 * writable true 修改属性值 * value 数据值 * es5 通过 Object…
1,理解对象 通过对象字面量的方式,创建一个对象,为它添加属性和方法: var obj = { a: 1, b:2, sayA(){ console.log(this.a)}} 1,属性类型: 数据属性 : 数据属性包含一个数据值的位置.在这个位置可以读取和写入值.有四个特性 configurable  enumerable   writable  value  :  分为的意思为:是否能通过delete删除(能否修改特性).是否能通过for-in循环.是否能修改属性的值.包含这个属性的值 通过…
Js中的数据属性和访问器属性 在javaScript中,对象的属性分为两种类型:数据属性和访问器属性. 一.数据属性 1.数据属性:它包含的是一个数据值的位置,在这可以对数据值进行读写. 2.数据属性包含四个特性,分别是: configurable:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或能否把属性修改为访问器属性,默认为true enumerable:表示能否通过for-in循环返回属性 writable:表示能否修改属性的值 value:包含该属性的数据值.默…
嗯,之前在读js红宝书的时候,在对象那一章有介绍属性类型.第一种数据类型指的是数据属性,第二种是访问器属性.在初识vue的时候,其双向数据绑定也是基于访问器属性中的getter和setter函数原理来实现的.本篇文章就着重解析这两个函数的工作原理. 首先,我们先创建一个a对象,并给他定义了一个默认的属性_b,_b前面的下划线是一种常用的记号,用于表示只能通过对象方法访问的属性. var a={ _b=5;}; 接着定义一个属性为'c'的访问器属性,该属性包含一个get和set函数,get函数用来…
js中属性类型分为两种:数据属性和访问器属性 在js中,对象都是由名值对构成的,名:就是我们所说的属性名,值就是属性对应的值(基本值.对象.方法). ECMA-262第5版定义了只有内部才用的特性,描述了属性的各种特征,比如,这个属性能否被删除.能否被枚举.能否被修改.以及读取属性的值. 这些特性是为了实现JavaScript引擎用的,因此在JavaScript中不能直接访问他们. 1.先来说一下数据属性 数据属性:包含一个数据值的位置.在这个位置可以读取和写入值.数据属性有4个描述其行为的特性…
js面向对象 ECMA-262第5版在定义只有内部才用的特性(attribute)时,描述了属性(property)的各种特征.ECMA-262定义这些特性是为了实现javascript引擎用的,因此在javascript中不能直接访问它们.为了表示特性时内部值,该规范把它们放在了两对方括号中,例如[[Enumerable]]. 1数据属性 数据属性包含一个数据值的位置,在这个位置可以读取和写入值.数据属性有4个描述其行为的特性 1.[[Configurable]]:表示能否通过delete删除…
<JavaScript高级程序设计(第三版)>反反复复看了好多遍了,这次复习作为2017年上半年的最后一次,将所有模糊的.记不清的地方记录下来,方便以后巩固. 0. <script>元素属性 async表示立即下载脚本,但不应该妨碍页面中其他操作: defer表示延迟到文档完全被解析和显示之后再执行.这两个属性都仅适用于外部脚步,而且现实中脚步不一定按顺序执行.指定async属性的目的是不让页面等待脚本下载和执行. 最好只包含一个延迟脚本,把延迟脚本放在页面最底部仍然是最佳选择.…
1.instanceof 可以判断实例是否在某个对象的原型上: function A() { this.a = "a"; } function B() { this.b = "b"; } B.prototype = new A(); var test = new B(); console.log(test instanceof A); //true console.log(test instanceof B); //true console.log(test ins…
一,变量和作用域 1, js变量可以保存两种类型,基本类型.引用类型和symbol类型,基本类型有5种:undefined.null.boolean.number.string,它们都有以下的特征 基本类型在内存中占据固定大小的空间,因此被保存在栈内存中 从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本 引用类型的值是对象,保存在堆内存中 包含引用类型的变量只是一个指向该对象的指针 复制引用类型,只是复制了指针,其实两个变量都指向同一个对象. 确定基本类型的种类可以使用typeof…
前言:纯手打!!!按照自己思路重写!!!这次是二刷了,想暑假做一次完整的笔记,但用本子来写笔记的话太贵了,可能哪天还丢了..所以还是博客好== 第四章:变量.作用域和内存问题 4.1 基本类型和引用类型的值: ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值. 基本类型值: 指的是简单的数据段. 类型:Undefined.Null.Boolean.Number.String.这五种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值. 在内存中占据固定大小的空…
PS:有一小部分写在了 JS 2017了 JSON <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> IE8支持 JSON.stringify() <script> var book = { "title"…
js没有块级作用域(题外话:函数可以作为一个块级),所以我们经常使用闭包来模拟块级作用域,以避免变量或者函数因为名称相同而产生的冲突. 重点来了: 所以,如果我们把哪个变量或者函数放在全局作用域中,那就说明它不会产生冲突.不会产生冲突的原因是因为只有一个对象调用它,别的都不会调用它. 所以得出结论: 在全局作用域中定义的函数实际上只 能被某个对象调用…
JS Regexp 字面量模式 用\反斜杠转义 构造函数中的字符串 也用\转义正则也用\ RegExp实例属性 global -布尔值  /g ignoreCase -布尔值 /i lastIndex -整数 表示开始搜索下一个匹配项的字符位置,从0算起. multiline -布尔值 /m source -正则表达式的字符串 RegExp实例方法 exec() 接受一个参数(要应用模式的字符串) ,然后返回包含第一个匹配信息的数组,没匹配近回null,返回的数组包含两个额外的属性:index…
数据类型 ECMAscript中有五种简单数据类型Undefined,Null,Boolean,Number,String 还有一种复杂数据类型Object. typeof操作符 typeof可能返回下列某个字符串 undefined--------------如果这个值未定义 boolean----------------如果这个值是布尔值 string------------------如果这个值是字符串 number----------------如果这个值是数值 object------…
一. 事件流 1. 事件流描述的是从页面中接收事件的顺序 2. 事件冒泡(event bubble):事件从开始时由最具体的元素(就是嵌套最深的那个节点)开始,逐级向上传播到较为不具体的节点(就是Document) <!doctype html> <html> <head> <title>事件冒泡</title> </head> <body> <div id = 'myDiv'> 点击这里 </div&g…
一.语法: 区分大小写; 2.标识符:就是指变量.函数.属性的名字,或者函数的参数 a.标志符的规则:①第一个字符必须是一个字母.下划线(_)或一个美元符号($).                   ②其他字符可以是字母,下划线,美元符号或者数字. b.标志符采用驼峰大小写格式. c.严格模式:在顶部添加以下代码:"use strict"; d.语句:结尾加入分号.在控制语句中使用代码块为最佳实践. 二.关键字与保留字 三.变量:ECMAScript的变量是松散类型,可以保存任何类型…
ecma:欧洲计算机制造商协会iso/iec:国际标准化和国际电工委员会 dom级别(10*)文档对象模型1:DOM核心(映射基于xml文档)与dom html(在dom核心基础上)2:对鼠标,事件,范围,遍历,还有对css样式表的支持dom2:新接口...视图,事件(鼠标,移动),样式(css),遍历与范围(对文档树的操作)3:对文档加载和保存,验证模块,对核心进行扩展,对xml.0规范其他domsvg可伸缩矢量图mathml数学标记语言mghi同步多媒体集成语言ie5 dom1mozilla…
1.JS分三个部分:ECMAScript.DOM.BOM       1)ECMAScript:提供核心语言功能       2)DOM:提供访问和操作网页内容的方法和接口       3)BOM:提供与浏览器交互的方法和接口 2.在html页面写js代码,需要将代码放在<script></script>:并且中间不能出现字符串“</script>”       下方这个代码会报错:alert("</script>");        可…
1:JS中的一切(变量,函数名和操作符)都是区分大小写的 2:标识符(变量,函数,属性的名字,以及函数的参数),第一个字符必须是字母,下划线,或者美元$,书写方式采用驼峰式,不能将关键字作为标识符. 3:JS的变量是松散类型,每个变量仅仅是一个用于保存值的占位符,未初始化的变量都会保存一个特殊值--undefined. 4:JS的五种基本数据类型(Undefined,Null,Boolean,Number,String),复杂数据类型--Object(本质是一组无序的键值对组成).从技术上讲,函…
defer 异步脚本,脚本延迟到文档完全被解析和显示之后再执行.只对外部脚本文件有效.按顺序执行脚本.但在实际情况下,并不一定会按照顺序执行最好只有一个延迟脚本.支持H5的浏览器会忽略给脚本设置 defer 属性async 异步脚本,不保证按脚本的先后顺序执行.异步脚本一定会在页面的Load事件前执行. IE10+支持严格模式 function test (){ a = 12; //没有var, a 是全局变量, 不推荐 严格模式下会报错 ”use strict" } test(); conso…
BOM提供了很多对象,用于访问浏览器的功能.这些功能与任何网页无关. 1BOM的核心对象是window,它代表浏览器的一个实例,它是通过JS访问浏览器窗口的一个借口,同时又是ECMAScript规定的global对象,因此我们在网页中定义的任何一个对象,变量和函数都是以window作为其global对象的(ES6规定,let,const,class定义的全局变量,不再是以window作为global) 注意:定义的全局变量是不能通过delete操作符删除的,但是window对象上面定义的属性可以…
1在将一个值赋给变量时,解析器必须确认这个值是基本类值还是引用类型值,基本类型值是按值访问的,可以操作保存在在变量中的实际值,引用类型是保 存在内存中的对象,JS不允许直接访问内存中的位置,所以实际操作的是对象的引用而不是实际对象.(当复制保存这对象的某个变量时,操作的是对象的引用,但是为对象添加属性的时候,操作的却是实际对象). 2"JS一切皆对象",当然了简单值就不是对象.对象就是若干属性的集合,所以说对象只有属性,没有方法.其实方法也是属性,因为他的属性表现为键值对,对象可以随意…
javascript产生的原因: 在拨号上网时代,表单数据必须发送到服务器端才能验证输入值得有效性,JavaScript的研发就是为了解决这个问题,以便在客户端就验证输入值的有效性. ECMAScript/JavaScript: JavaScript是Netscape公司于1995年发布的脚本语言,ECMAScript是欧洲计算机制造商协会定义的一种通用.跨平台.供应商中立的脚本语言的语法和语义. 一个完整的JavaScript实现包含: 核心(ECMAScript):由ECMA-262定义,提…
一.关键字 二.保留字 三.数据类型 (数据类型具有动态性)   1.Undefined 声明变量却未对其加以初始化(赋值) 2.Null null值表示一个空对象指针,而这也正是使用typeof操作符检测null值时,会返回"object"的原因. 注:undefined派生自null值,因此,alert(null == undefined); //true 3.Boolean 4.Number 浮点数值,就是该数值中必须包含一个小数点.浮点数值的最高精度是17位小数.用e或者E表示…
1,错误处理 1,try-catch语句 try{可能导致错误的代码} catch(error) {在错误发生时该怎么处理} error.message是所有浏览器都支持的属性. finally语句是不论代码如何都会执行的. 2,错误类型 Error是基类型,其他错误都继承自该类型. EvalError:使用eval函数发生异常时被抛出 RangeError: 数值超出相应范围时触发. ReferenceError: 找不到对象,变量不存在 SyntaxError: 语法错误 TypeError…