立即调用函数表达式

July. 08, 2015

我的理解

立即调用的函数表达式, 就是函数外面用括号()包裹起来。(这里指的函数大多数是匿名函数),如下所示:

(function() { ... })();  //1
(function() { ... }());  //2

匿名函数使用括号包围起来之后,其实称为“函数表达式”。第一条语句可以理解为:组操作符环绕函数表达式不包含调用括号;第二条语句:组操作符环绕函数表达式和调用括号。它们都解释为:立即调用的函数表达式。

(),对于函数而言,放在函数的引用后面,可以理解为“函数调用操作符”; 而它的另一个用途便是“组操作符”,“组操作符”里面只能是表达式。

关于函数为什么要用括号围绕起来,请看:ECMAScript:Question "about surrounding parentheses"

也可以使用,如下的方式来使用立即调用函数表达式:

 !function(){}();
 +function(){}();
 -function(){}();
 ~function(){}();
 ~(function(){})();
 void function(){}();

注意

  1. 圆括号(parentheses)在Javascript中有两种作用,一种表示调用函数,另一种表示不同的值的组合(grouping),即组操作符。

  2. JavaScript里括号()里面不能包含语句,所以在这一点上,解析器在解析function关键字的时候,会将相应的代码解析成function表达式,而不是function声明。也因此立即调用函数表达式只有在程序执行到函数时它才能被访问。 所以,任何消除函数声明和函数表达式间歧义的方法,都可以被解析器正确识别(如上面给出的方法都是可以的)。

  3. 这种方法能够有效的避免变量污染问题

Continue Reading →

web在线编辑器

July. 07, 2015

  1. runjs

  2. jsfiddle

  3. jsbin

  4. dabblet

  5. codepen

Continue Reading →

css单位

July. 07, 2015

这个算是笔记整理,留着备忘!!!

基础的CSS单位

  • % :百分比
  • in :寸
  • cm :厘米
  • mm :毫米
  • pt :大约1/72寸
  • pc :大约6pt,1/6寸
  • px :屏幕的一个像素点
  • em :被定义为相对于当前对象内文本的字体大小
  • ex :为小写字母x的高度,通常相对于字体大小的一半

CSS3引入的新单位

  • rem被定义为相对于根元素(html元素)内文本的字体大小

例子:px、em、rem

具体请看:http://codepen.io/anon/pen/QbmQQe

Continue Reading →

一些问题,一些思考

July. 04, 2015

一些问题

  1. 你现在做的是什么?
  2. 你对于HTML语义化,结构化了解的多深入?
  3. 你现在又在端正自己的态度在好好的学习吗?

一些思考

昨天一位师兄和我说,其实很多时候,对于要考虑到浏览器兼容方面的事情,不是都必须要使用CSS hack的。很多时候,我们需要注意HTML的结构化、语义化以及规范化,然后在此基础上进行渲染和交互的工作。

现在想想,觉得很多时候自己缺少了太多探索的精神。对于一些问题,也许只是想想当时解决了就好,并没有去深入的了解到为什么会出现该问题?为什么要用这种方法去解决该问题?还有没有其它更好的方法去解决呢?

希望从此刻开始,让自己多问自己几个问题!加油!

Continue Reading →

【译】Git基础-检查仓库

July. 04, 2015

inspecting

git status

git status 命令用于显示工作目录和暂存区的状态。它可以让你查看Git中,哪些内容已经暂存,哪些未暂存,还有哪些文件没有被追踪。git status 命令输出的状态没有展示任何有关提交项目的历史信息。对于这个,你需要使用 git log 命令。

使用方法

git status

列出哪些文件已经暂存,哪些未暂存还有哪些没有被跟踪

Continue Reading →

【译】Git基础——保存改变的记录

June. 29, 2015

git-save

git add

git add命令用于将工作目录中的改变添加到临时区域。它告诉Git,你想要在下一次的提交之前将更新的版本包括到一个特定的文件中。然而,git add没有真正影响到存储库中任何重要的地方——只到你运行git commit命令,改变才会真正的记录到版本库中。

在使用这些命令的同时,你需要使用git status命令去查看工作目录和临时区域的状态。

Continue Reading →

【译】Git基础——建立Git仓库

June. 24, 2015

git

这个练习提供了最重要的Git命令的简要概述。

首先,建立一个仓库章节解释了你需要开始一个新的版本控制项目的所有工具。然后,接下来的章节介绍了你每天需要使用的Git命令。
在这个模块的最后,你应该能够创建一个Git仓库,用于妥善保管你项目中的记录快照,而且可以查看你的项目历史状态。

Continue Reading →

AngularJS——作用域

June. 24, 2015

AngularJS 2都出来了,我还开始接触AngularJS 1.4.0
《AngularJS权威教程》读书笔记

作用域($scope)

应用的作用域是和应用的数据模型相关联的,同时作用域也是表达式执行的上下文。$scope对象时定义应用业务逻辑、控制器方法和视图属性的地方。

作用域是视图和控制器之间的桥梁。
应用将视图渲染并呈现给用户之前,视图中的模板会和作用域进行连接,然后应用会对DOM进行设置以便将属性变化通知给AngularJS。

作用域是应用状态的基础。基于动态绑定,我们可以依赖视图在修改数据时立刻更新$scope,也可以依赖$scope在其发生变化时立刻重新渲染视图。

Continue Reading →

学习AngularJS的第一个例子-数据绑定

June. 14, 2015

AngularJS 2都出来了,我还开始接触AngularJS 1.4.0
《AngularJS权威教程》读书笔记

AngularJS中的数据绑定

AngularJS创建实时模板来代替视图,而不是将数据合并进模板之后更新DOM。
任何一个独立视图组件中的值都是动态替换的。这个功能可以说是AngularJS中最重要的功能之一。

Continue Reading →

git和svn的区别

June. 13, 2015

【转】git不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等等。如果你是一个具有使用SVN背景的人,你需要做一定的思想转换,来适应git提供的一些概念和特征。所以,这篇文章的主要目的就是通过介绍git能做什么,它和SVN在深层次上究竟有什么不同来帮助你认识它。

Continue Reading →