一.快捷位置和尺寸属性 DOM已经提供给我们计算后的样式,但是还是觉得不方便,因为计算后的样式属性值都是字符串类型. 不能直接参与运算. 所以DOM又提供了一些API:得到的就是number类型的数据,不需要parseInt(),直接可以参与运算. offsetLeft和offsetTop offsetWidth和offsetHeight clinetWidth和clinetHeight 1.1 offsetWidth和offsetHeight 全线兼容,是自己的属性,和别的盒子无关的. 一个盒…
出处:https://blog.csdn.net/u010297791/article/details/71158212(1)上面主要讲了同步和回调执行顺序的问题,接着我就举一个包含同步.异步.回调的例子. let a = new Promise(//声明了一个Promise回调函数,能够使用then function(resolve, reject) { console.log(1) setTimeout(() => console.log(2), 0) console.log(3) cons…
源码 https://gitee.com/s0611163/AsyncAwaitDemo 为什么会研究这个? 我们项目的客户端和服务端通信用的是WCF,我就想,能不能用异步的方式调用WCF服务呢?或者说能不能用async await的方式调用WCF服务呢? 然后我发现WCF是通过BeginXXX和EndXXX这种回调的方式实现异步的,似乎不支持async await语法糖,那只能通过状态机的方式实现了,不然多个请求就会写成回调地狱. 如果用Task.Run包起来,里面再写个Wait,这就是假异步…
作者:刘耀 部分内容参考一下链接 参考: http://www.cnblogs.com/wupeiqi/articles/5369773.html http://javascript.ruanyifeng.com/oop/basic.html http://www.cnblogs.com/gaojun/archive/2013/10/24/3386552.html 一.JavaScript简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释…
一.自定义函数function 函数就是功能.方法的封装.函数能够帮我们封装一段程序代码,这一段代码会具备某一项功能,函数在执行时,封装的这一段代码都会执行一次,实现某种功能.而且,函数可以多次调用. 1.1函数的定义和调用 语法: 定义:把需要实现的功能预先做好 执行:需要的时候执行这个功能,而且还可以执行多次 定义:function myName(){} 执行:myName() [语法解释]: function  定义函数的关键字 myName    函数名称 ()         参数集…
回调(callback)在我们做工程过程中经常会使用到,今天想整理一下回调的原理和使用方法. 回调的原理可以简单理解为:A发送消息给B,B处理完后告诉A处理结果.再简单点就是A调用B,B调用A. 那么是如何实现的呢?一般而言,处理消息的类是唯一的,而发送消息的类却是各种各样的,所以一般的做法是将回调方法做成一个接口,不同的发送者去实现该接口,并且把自己的接口实现类的对象在发送消息时传递给消息处理者. (现在不太方便画图,之后再补上图) 现在以一个CS结构的示例来说明回调的过程: Client类:…
原文地址 同步调用 委托的Invoke方法用来进行同步调用.同步调用也可以叫阻塞调用,它将阻塞当前线程,然后执行调用,调用完毕后再继续向下进行. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Runtime.Remoting.Messaging; namespace invoke { public…
一.ES6语法 ES6中对数组新增了几个函数:map().filter().reduce() ES5新增的forEach(). 都是一些语法糖. 1.1 forEach()遍历数组 forEach()方法用来循环遍历数组,方法中的function回调函数接收3个参数 参数1是遍历的数组内容(item):参数2是对应的数组索引(index),参数3是是数组本身(array). [].forEach(function(item,index,array){ ... }) var arr = ["白板&…
一.对象(Object) 1.1 认识对象 对象在JS中狭义对象.广义对象两种. 广义:相当于宏观概念,是狭义内容的升华,高度的提升,范围的拓展.狭义:相当于微观概念,什么是“狭”?因为内容狭隘具体,范围窄所以称为“狭” l 狭义对象 就是用{}这种字面量的形式定义的对象,它是一组属性的无序集合 var obj = { name : "小明", age : 12, sex : "男", hobby : ["足球","刺绣",&…
一.组件化开发 1.1组件化概述 页面特效的制作,特别需要HTML.CSS有固定的布局,所以说现在越来越流行组件开发的模式,就是用JS写一个类,当你实例化这个类的时候,页面上的效果布局也能自动完成. new Carousel(); 实例化后,页面中就有一个轮播图的布局结构,而且可以通过参数传递进去. 这个new里面封装了HTML.CSS.JS的业务逻辑.组件开发的规律就是所有按钮.小圆点.图片等等都是这个类(的实例的)属性,自己管理自己. 组件开发的好处就是在用的时候可以高度自定义,在new的时…
一.DOM JavaScript语言核心.变量的定义.变量的类型.运算符.表达式.函数.if语句.for循环.算法等等.这些东西都属于语言核心,下次继续学习语言核心就是面向对象了.JavaScript能做非常多的事情:DOM开发.Ajax开发.Canvas开发.NodeJS开发.前端框架(React.Vue.Angular等等).HTML5开发.这些都需要语言核心的知识. DOM开发说白了就是浏览器中的页面效果开发,在2011年之前,DOM开发占据了前端开发工程师的90%的工作:年之后,前端要负…
一.函数补充 1.1 arguments类数组对象 arguments 是一个对应于传递给函数的参数的类数组对象. 在函数中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们. 在其它编程语言中,比如java:如果一个函数被定义过两次,每次参数个数都不同.相当于定义了两个不同的函数,根据参数个数不同,会选择不同的函数执行.一个函数名定义了两个函数,称为“函数重载”(overloaded). 复习一下函数,定义函数时,参数要罗列在圆括号中,这些参数,叫“形参”: funct…
一.正则表达式 1.1正则概述和体验 正则表达式是被用来匹配字符串中的字符组合的模式,常用来做表单验证.在JavaScript中,正则表达式也是对象,是一种引用类型. 案例:正确输入一个电话号码,010-12345678,用户输入正确返回“对”,错误返回“错” var tel = prompt("请输入电话号码"); var reg = /^\d{3}-\d{8}$/; if(reg.test(tel)){ alert("对"); }else{ alert(&quo…
一.JavaScript简介 1.1网页分层 web前端一共分三层: 结构层 HTML         : 负责搭建页面结构 样式层 CSS          : 负责页面的美观 行为层 JavaScript  : 负责页面的交互效果,提高用户体验 如果用舞台来进行比喻: HTML  是演员:div,a CSS   是化妆师:负责给每个演员添加装饰效果 javascript是剧本:负责描述每个演员之间的交互 1.2 JavaScript诞生 JavaScript一种直译式脚本语言,是一种动态类型…
一.复习 1.1复习上下文 函数的调用方式 上下文 fun() window obj.fun() obj box.onclick = fun box setInterval(fun,1000) setTimeout(fun,1000) window array[8]() array new fun() 秘密创建的新对象 要看清楚最终的函数调用者是谁. IIFE也被当做函数直接运行,IIFE的this都是window对象 函数的arguments是类数组对象,比如传入的第0项参数是函数,让它运行:…
一.数组 1.1数组概念 数组(array)是一个有序的数据集合.说白了,数组就是一组数.数组内部可以存放一个或多个单独的数据,整体组成数组. 定义数组最简单的方式:数组字面量. 数组的字面量“[]”.习惯将数组赋值给一个变量. var arr = []; var arr = [1,2,3,4,5,6,7,888,999,666]; arr[5] = 88; //把数组下标为5的项改为88(设置数组中的某一项) console.log(arr); console.log(arr[0]); //1…
一.JavaScript缓冲公式ease 原生JS没有自己的缓冲公式,但是你要自己推理的话,必须要懂一些数学和物理公式: 让div用100毫秒(帧),从left100px的位置变化到left800px的位置,要求匀速: 大致计算如下: 毫秒编号(帧) 距离起点的增量 目前绝对的位置 0 0 100 1 7 107 2 14 114 ... ... ... t t*c/d b+t*c/d 49 343 443 50 350 450 98 686 786 99 693 793 100 700 800…
一.获取元素方法(JS选择器) 1.1概述 得到id元素的方法 document.getElementById() 得到一个元素.事实上,还有一个方法可以得到标签元素,并且得到的是多个元素: document.getElementsByTagName(); 全线浏览器兼容的,得到元素的方法,就这两个: document.getElementById()        通过id得到元素 document.getElementsByTagName();    通过标签名得到元素们 还有更多的得到元素…
一.事件对象event 1.1 preventdefault()和returnValue阻止默认事件 通知浏览器不要执行与事件关联的默认动作. preventdefault()  支持Chrome等高级浏览器 returnValue     支持IE6.7.8 var box = document.getElementById('box'); var i = 0; //鼠标在box盒子滚动时触发 box.onmousewheel = function(event){ var event = ev…
一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力语法能够书写所有的条件分支语句.也就是说,一会儿学switch case语句,switch case语句能干的,if else语句一定也能干. 标准的完整结构: if(){ }else if(){ }else if(){ }else{ } else只能有一个,并且一定要放在最后.表示所有的分支都不满足的…
运算符 数学运算符的正统,number和number的数学运算,结果是number.出于面试的考虑,有一些奇奇怪怪的数学运算: 数学运算中:只有纯字符串.布尔值.null能够进行隐式转换. //隐式转换:就是没有写parseInt().parseFloat()也能自动帮你转换类型 console.log(2 + "4"); console.log(26 - "2"); console.log(3 * "8"); console.log("…
使用 Javascript  编程, 组合使用 JSON 数据格式,Mapping 和回调技术, 可以产生很强的表达效果. 在实际工作中, 总会有数据汇总的需求. 比如说, 取得了多个 device 的性能数据, 现在希望能够对其中的若干字段进行不同的汇总(有的求和,有的求平均值,有的求最大值),得到所有Device 的总的性能状况. 具体怎么实现呢? 显然, 对于指定的不同字段, 需要不同的数据汇总函数, 可以使用一个 Mapping 来管理字段与数据汇总函数之间的映射关系,并采用回调方式来计…
####################总结######################## 管道:是进程间通信的第二种方式,但是不推荐使用,因为管道会导致数据不安全的情况出现 事件:当我运行主进程的时候 需要子执行某个进程后 需要的返回值时 可以使用 信号量:互斥锁同时只允许一个线程更改数据,而信号量Semaphore是同时允许一定数量的线程更改数据 . 内部维护了一个计数器,acquire-1,release+1,为0的时候,其他的进程都要在acquire之前等待 进程池:  进程的创建和销…
  一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力语法能够书写所有的条件分支语句.也就是说,一会儿学switch case语句,switch case语句能干的,if else语句一定也能干. 标准的完整结构: if(){ }else if(){ }else if(){ }else{ } else只能有一个,并且一定要放在最后.表示所有的分支都不满…
JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名ScriptEase(客户端执行的语言). Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape共同完成,后改名叫JavaScript. 微软随后模仿在其IE3.0的产品中搭载了一…
一.JSON的简介 1.什么是JSON JSON 英文全称 JavaScript Object Notation JSON 是一种轻量级的数据交换格式. JSON是独立的语言 * JSON 易于理解. 2.json的起源 在JSON出现之前,大家一直用XML来传递数据.因为XML是一种纯文本格式,所以它适合在网络上交换数据.XML本身不算复杂,但是,加上DTD.XSD.XPath.XSLT等一大堆复杂的规范以后,任何正常的软件开发人员碰到XML都会感觉头大了,最后大家发现,即使你努力钻研几个月,…
一.自定义函数function 函数就是功能.方法的封装.函数能够帮我们封装一段程序代码,这一段代码会具备某一项功能,函数在执行时,封装的这一段代码都会执行一次,实现某种功能.而且,函数可以多次调用. 1.1函数的定义和调用 语法: 定义:把需要实现的功能预先做好 执行:需要的时候执行这个功能,而且还可以执行多次 定义:function myName(){} 执行:myName() [语法解释]: function  定义函数的关键字 myName    函数名称 ()         参数集…
1.0, 概述.JavaScript是ECMAScript的实现之一 2.0,在HTML中使用JavaScript. 2.1 3.0,基本概念 3.1,ECMAScript中的一切(变量,函数名,操作符)都是区分大小写的. 3.2, 3.3, 3.4, 3.5, typeof 用于基本类型的判别,instanceof用于引用类型(Object类型)的判别. 3.6, 3.7, 3.8,Boolean类型有两个取值:true 和 false(区分大小写).使用Boolean()函数如下:注意,除n…
JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成.它们向任务队列添加定时任务. setTimeout() setTimeout函数用来指定某个函数或某段代码,在多少毫秒之后执行.它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器. var timerId = setTimeout(func|code, delay) 上面代码中,setTimeout函数接受两个参数,第一个参数func|cod…
第18天    ajax技术和javascript加强(json) 复习: B/S架构实现文件上传的思路? 使用a标签实现文件下载功能,有什么问题? 使用Servlet实现文件下载的思路? 今日任务 Ajax技术 javaScript加强(json) 课堂笔记 1.ajax介绍 1.1.什么是ajax 全称:Asynchronous JavaScript And XML(异步 JavaScript 及 XML)     Ajax的作用:实现异步请求的技术.     什么是同步请求? 场景:页面上…