- 浏览: 103675 次
- 性别:
- 来自: 昆明
文章分类
- 全部博客 (151)
- 120D02 (5)
- 直升机 (1)
- 我的技术资料收集 (82)
- 的技术资料收集 (4)
- .NET Solution (2)
- ASP.NET (1)
- Linq to sql (1)
- 数据库技术(MS SQL) (2)
- 架构/设计 (1)
- 敏捷/持续集成 (1)
- C#.NET开发 (1)
- Matlab开发 (1)
- WinForm开发 (1)
- 开源技术 (1)
- jQuery (1)
- 我的博文 (4)
- js (2)
- android (2)
- 9. 读书笔记 (1)
- CSS3 (1)
- HTML5 (1)
- JavaScript (5)
- 移动开发 (2)
- 编程心得 (1)
- Linux操作系统 (1)
- (BI)商业智能 (1)
- IOS (1)
- Windows Phone (2)
- C# API (1)
- JQuery系列 (1)
- TFS (1)
- C# (2)
- ExtJs (1)
- .NET (1)
- Nginx (1)
- WCF学习笔记 (1)
- Computer Graphic (1)
- IT产品 (1)
- 工具分享 (1)
- MySelf (1)
- C#专栏 (1)
- 管理 (1)
- 基于Oracle Logminer数据同步 (1)
- 日常 (1)
- 实用工具 (1)
- 网页设计 (1)
- avalon (1)
- flash (1)
- DDD (1)
- 01 技术Android (1)
- WCF (1)
- selenium (1)
最新评论
-
464410531:
三国杀。。。。。。。。。。。。。。。。。。。。。。。。。。。。 ...
实用的职场宝典:不提拔你,就因为你只想把工作做好
原帖地址:http://www.cnblogs.com/happyframework/p/3160254.html
背景
经常需要向新入职的年轻同学解释Javascript的两个概念:单线程和作用域链,今天就再写篇博客说明一下。
单线程
- 队列:只有一个用来存储回调方法的队列。
- 消费线程:只有一个消费线程,不停的从队列中取方法,然后进行调用。这也是为什么Javascript称作为单线程的原因。
- 生产线程:有多个生产线程,不同的向队列中插入方法,常见的生成线程有:定时器、Ajax和浏览器事件。这也是为什么Javascript称作为事件驱动的原因。
参考文章:http://www.cnblogs.com/happyframework/archive/2013/04/23/3035596.html。
作用域链条
局部变量不是存储在“栈”中的,不要试着用传统的“栈”式作用域来理解。
参考文章:http://www.cnblogs.com/happyframework/archive/2013/04/22/3034087.html。
示例
1 function sleep(millisecond){
2 var start = new Date();
3 while(new Date().getTime() - start.getTime() <= millisecond) {}
4 }
5
6 var a = 6;
7 setTimeout(function () {
8 alert(a);
9 a = 666;
10 }, 0);
11 sleep(5000);
12 a = 66;
2 var start = new Date();
3 while(new Date().getTime() - start.getTime() <= millisecond) {}
4 }
5
6 var a = 6;
7 setTimeout(function () {
8 alert(a);
9 a = 666;
10 }, 0);
11 sleep(5000);
12 a = 66;
这个例子的执行过程向队列里插入了2快代码:
第一块:sleep定义、局部变量a定义和赋值、setTimeout方法调用、sleep方法调用和a赋值。
第二块:setTimeout的第二个参数(匿名函数)的调用。
根据这个可以知道,匿名函数的执行是在a = 66之后执行的,结合作用域链的知识,可以知道弹出的结果是66。
备注
写的还不够清晰,基本上是QQ里聊天的内容,有些概念是我在网上找的,没有看Javascript规范,所以大家要慎重理解。
本文链接:http://www.cnblogs.com/happyframework/p/3160254.html,转载请注明。
发表评论
-
C#中WindowsForm常见控件的运用 -- - 李晓峰
2013-06-28 13:27 1665原帖地址:http://www.cnblogs.com/liy ... -
海量数据处理利器之Hash——在线邮件地址过滤 - MyDetail
2013-06-27 12:00 601原帖地址:http://www.cnblo ... -
ASP.NET MVC 4 for Visual Studio 2010 下载地址 - 张鸿伟
2013-06-27 11:48 710原帖地址:http://www.cnblogs.com/wei ... -
【ASP.NET Web API教程】6.2 ASP.NET Web API中的JSON和XML序列化 - r01cn
2013-06-26 11:00 870原帖地址:http://www.cnblogs.com/r01 ... -
[珠玑之椟]估算的应用与Little定律 - 五岳
2013-06-26 10:54 585原帖地址:http://www.cnblogs.com/wuy ... -
30行,金额转人民币大写的代码 - 史蒂芬.王
2013-06-26 10:42 972原帖地址:http://www.cnblogs.com/ste ... -
从银行的钱荒看一个公司的团队建设 产品线过多最终导致最赚钱的项目面临破产 - James Li
2013-06-26 10:36 594原帖地址:http://www.cnblogs.com/Jam ... -
Windows 8 动手实验系列教程 实验6:设置和首选项 - zigzagPath
2013-06-25 13:39 490原帖地址:http://www.cnblogs.com/zig ... -
闲聊可穿戴设备 - shawn.xie
2013-06-25 13:33 578原帖地址:http://www.cnblo ... -
如何使用开源库,吐在VS2013发布之前,顺便介绍下VS2013的新特性"Bootstrap" - 量子计算机
2013-06-25 13:27 830原帖地址:http://www.cnblogs.com/DSh ... -
一步一步将自己的代码转换为观察者模式 - 文酱
2013-06-23 11:36 568原帖地址:http://www.cnblo ... -
iOS内存错误EXC_BAD_ACCESS的解决方法(message sent to deallocated instance) - VicStudio
2013-06-23 11:30 500原帖地址:http://www.cnblogs.com/vic ... -
记录asp.net在IE10下事件丢失排错经过 - Adming
2013-06-23 11:24 661原帖地址:http://www.cnblogs.com/wea ... -
记 FineUI 官方论坛所遭受的一次真实网络攻击!做一个像 ice 有道德的黑客! - 三生石上
2013-06-23 11:18 751原帖地址:http://www.cnblogs.com/san ... -
3、使用Oracle Logminer同步Demo
2013-06-19 10:33 534原帖地址:http://www.cnblogs.com/shi ... -
算法实践——数独的基本解法
2013-06-19 10:27 1392原帖地址:http://www.cnblogs.com/gre ... -
简单实现TCP下的大文件高效传输
2013-06-19 10:21 650原帖地址:http://www.cnblogs.com/sma ... -
avalon - 初步接触
2013-06-18 10:06 751原帖地址:http://www.cnblogs.com/aar ... -
Nginx学习笔记(一) Nginx架构
2013-06-18 09:59 492原帖地址:http://www.cnblogs.com/cod ... -
证书打印《二》
2013-06-17 10:47 492原帖地址:http://www.cnblogs.com/bin ...
相关推荐
Javascript弹出框架,功能相当不错
囍管家是我们与团队成员共同开发的婚礼管理平台,它基于Python的Django框架,致力于为用户提供一站式的婚礼筹备解决方案。该平台使用了前沿的前端技术,如JavaScript、CSS和HTML,确保了用户体验的流畅与界面设计的...
lhgdialog DIV弹出窗口框架,基于JavaScript,它与Alert弹出窗口有着本质的区别,lhgdialog DIV弹出窗口是JS+CSS结合打造的产物,界面非常漂亮,无刷新弹出窗口。
16款最流行的JavaScript框架-开源中国社区.docx16款最流行的JavaScript框架-开源中国社区.docx16款最流行的JavaScript框架-开源中国社区.docx16款最流行的JavaScript框架-开源中国社区.docx16款最流行的JavaScript...
16款最流行的JavaScript框架-开源中国社区.pdf16款最流行的JavaScript框架-开源中国社区.pdf16款最流行的JavaScript框架-开源中国社区.pdf16款最流行的JavaScript框架-开源中国社区.pdf16款最流行的JavaScript框架-...
中文名: JavaScript权威指南 (第6版) 原名: JavaScript: The Definitive Guide: Activate Your Web Pages, 6th edition 作者: David Flanagan 版本: 英文文字版-pdf/EPUB + 完整书中源代码 出版社: O'Reilly 书号: ...
2.width height弹出框的长宽 默认500 300 3.scrolling弹出框是否有滚动条 可选值 auto no yes 默认auto 4.titleColor 弹出框title背景颜色 默认#7093DB 5.title 弹出框名称 6.弹出框url 7.弹出框是否可拖动 true or ...
javaScript实现点击输入框弹出窗体选择信息,提供源码,希望可以共同学习,不足处请指出,呵呵 -------javascript爱好者,java交流群:166256747,分享自己的技术是一种美德!
项目名称:彤筹网 - 基于SSM框架的完整项目源码 技术栈: - 主要语言:Java - 相关技术:CSS, JavaScript 项目概述: - 文件数量:共192个 - 文件类型: - XML配置文件:22个 - Java源代码文件:22个 - 图片...
Javascript,iframe的使用,框架,弹出新的窗口,警告框 window.open Javascript,iframe的使用,框架,弹出新的窗口,警告框 window.open Javascript,iframe的使用,框架,弹出新的窗口,警告框 window.open ...
项目名称:多功能SSM框架权限管理系统源码 技术栈: - 主要语言:JavaScript - 包含语言:JavaScript, CSS, HTML, Java, PHP 文件构成: - 总文件数:2350个 - JavaScript 文件:1024个 - CSS 文件:344个 - ...
精选JavaScript框架,库和软件的清单。 的开源代码库和课程表。 在家学习编码。 :vulcan_salute: Vue.js是一个渐进的,可逐步采用JavaScript框架,用于在Web上构建UI。 用于构建用户界面的声明性,高效且灵活...
项目标题:基于SSM框架的企业工资管理系统源码 技术概述: - 主要编程语言:JavaScript - 综合技术栈:JavaScript, Java, CSS - 文件构成:总计268个文件,包括以下类型: - GIF预览图:75个 - JavaScript文件:...
项目名称:基于SSM框架的积分管理系统 技术栈: - 主要编程语言:Java - 辅助技术:JavaScript 文件构成: - 总文件数:442个 - Java类文件:150个 - 配置文件(XML):111个 - Java源代码文件:66个 - JAR...
项目名称:Java SSM框架集成日志功能增强Demo 主要编程语言:Java 技术栈包含: - Java - JavaScript - CSS - HTML 文件概览: - 总计文件数:86个 - Java源文件:26个 - XML配置文件:16个 - JavaScript脚本...
项目标题:基于SSM框架的JavaScript全栈简易案例源码集 项目概述: 本项目采用JavaScript作为主要开发语言,整合了前端与后端的开发技术,构建了一个基于SSM(Spring、SpringMVC、MyBatis)框架的全栈简易案例。...
本项目采用Python语言为主开发,结合JavaScript、CSS、HTML等多种技术构建。系统旨在提供一个简易、高效的库存管理解决方案。 技术栈: - 后端:Python(Django框架) - 前端:JavaScript、CSS、HTML 文件构成: -...
项目概述:基于SSM框架的企业级客户关系管理(CRM)...简述:本项目是采用SSM(Spring、Spring MVC、MyBatis)框架开发的企业CRM系统,集成了前端与后端完整的功能实现,为企业的客户关系维护提供了一站式的解决方案。
项目概述:这是一款基于Python Django框架开发的完整后台管理系统,采用前后端不分离的模式构建。系统源码包含多种文件类型,总计173个文件,其中主要包括JavaScript(90个文件)、Python(41个,包括py和pyc文件)...
javascript弹出层表单提交代码,就是点击按钮后,弹出一个form表单让你填写,等你填好后再提交