`
my249645546
  • 浏览: 427809 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

看了这个才发现jQuery源代码不是那么晦涩

阅读更多
32
4
分享到:
评论
25 楼 fhtwins 2014-05-06  
竹林闲人 写道
my249645546 写道
竹林闲人 写道
LZ能否推荐下这方面的参考资料那~~,谢谢

如果你想系统学习javascript的语言核心知识,那就看看《JavaScript权威指南》吧,讲得非常详细。
http://product.dangdang.com/product.aspx?product_id=22722790

非常感谢啊,我看了一些,真的很详细,LZ在软件园么?




?????
24 楼 fhtwins 2014-05-06  
引用
这里“ (value=nameInput.val(),value=="king")”中"()"将里面的表达式作为一个整体进行运算,而里面的表达式又是由","构成的多个表达式组,所以执行的时候会把这多个表达式都执行一次,并且返回最后一个表达式的值!
所以 (value=nameInput.val(),value=="king")执行时,先运算value的值,再判断是否为"king"。如果为king,会执行(nameErrorTip.hide(),"对了,输入为king!")。这个表达式又先将nameErrorTip隐藏,再返回一个"对了,输入为king!"字符串作为 整个return的值。


不错!
23 楼 CaptainKaren 2014-04-16  
学习了,讲的浅显易懂,非常感谢
22 楼 竹林闲人 2012-11-29  
my249645546 写道
竹林闲人 写道
LZ能否推荐下这方面的参考资料那~~,谢谢

如果你想系统学习javascript的语言核心知识,那就看看《JavaScript权威指南》吧,讲得非常详细。
http://product.dangdang.com/product.aspx?product_id=22722790

非常感谢啊,我看了一些,真的很详细,LZ在软件园么?
21 楼 my249645546 2012-11-07  
竹林闲人 写道
LZ能否推荐下这方面的参考资料那~~,谢谢

如果你想系统学习javascript的语言核心知识,那就看看《JavaScript权威指南》吧,讲得非常详细。
http://product.dangdang.com/product.aspx?product_id=22722790
20 楼 竹林闲人 2012-11-06  
LZ能否推荐下这方面的参考资料那~~,谢谢
19 楼 elan1986 2012-11-06  
18 楼 mfkvfn 2012-11-06  
    var showName=function(){  
        var value,nameInput=$("#nameHide");  
        return nameInput.show(),value=nameInput.val();  
    }; 

写成
    var showName=function(){   
        return $("#nameHide").show().val();  
    }; 

就就行了。搞那么复杂干嘛
17 楼 artair 2012-11-06  
my249645546 写道
sswh 写道
return (nameInput.length&&nameInput.val()&&nameErrorTip.length&&msg)||"没有找到name输入框或者输入框没有值!"; 

~~~~~~~~~~~~~~~~~
这种写法除了炫耀作用外,没有一点价值,而且也是混乱的来源。

其实我也是反对在实际应用中采用这种写法的,因为会对初学者造成阅读障碍。我写这篇文章的目的不是为了让大家以后就这样用,而是告诉大家可以这样用,在一些开源代码中遇到了能看懂。


编译语言和解释语言有很大的差别,尽量减少行数,会提高执行效率,(尤其在以前)。对于许多老一代程序员来说,牺牲可读性,增加效率是很重要的,毕竟程序还仅运行在486,586上
16 楼 artair 2012-11-06  
第一个解释起来非常的简单。
只要明白了,匿名函数,函数的执行。就够了!!!

分解出来就是

function niming = readydo() {...}; //定义一个函数

niming(); //执行它

如果把上面转成匿名函数方式:

先直接替换niming:

     readydo(){}();

看不清楚,那就加个括号吧

    (readydo(){})();

再把readydo变成匿名函数

    (function(){})();

ok!
15 楼 surpass 2012-11-06  
楼主写的不错
(function(){}){}
js模块化管理的开始。
14 楼 my249645546 2012-11-06  
sswh 写道
return (nameInput.length&&nameInput.val()&&nameErrorTip.length&&msg)||"没有找到name输入框或者输入框没有值!"; 

~~~~~~~~~~~~~~~~~
这种写法除了炫耀作用外,没有一点价值,而且也是混乱的来源。

其实我也是反对在实际应用中采用这种写法的,因为会对初学者造成阅读障碍。我写这篇文章的目的不是为了让大家以后就这样用,而是告诉大家可以这样用,在一些开源代码中遇到了能看懂。
13 楼 my249645546 2012-11-06  
sswh 写道
if(a){ 
    b 
}else{ 
    c 

//等价于 
(a&&(b))||c 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这两种写法是不等价的。 当a为true,b为false的时候,c一个会执行一个不会执行。
说实话,这种js的写法就是混乱的根源。完全是一种糟糕的代码风格。

你是对的 呵呵
12 楼 sswh 2012-11-06  
那么上面的(function(){})()中左侧定义function的()也是这个作用,将这个function给包裹起来,然后返回这个function。我们调用方法一般是a();那么(function(){})的作用就是返回这个function对象,然后(function(){})()右侧的()表示调用这个function。

~~~~~~~~~~~~~~~~~~
这个没有说清楚为什么需要在function前后添加括号的原因。
事实上是因为JS规范中表达式不能以function开头导致的。
类似的写法还有 +function(){}()    (function(){}())  也是可以的。

另外,如果目的是返回一个function,完全可以不使用括号。
var a = function(){return 22;}();
alert(a);
这个完全是可以的。
11 楼 sswh 2012-11-06  
return (nameInput.length&&nameInput.val()&&nameErrorTip.length&&msg)||"没有找到name输入框或者输入框没有值!"; 

~~~~~~~~~~~~~~~~~
这种写法除了炫耀作用外,没有一点价值,而且也是混乱的来源。
10 楼 sswh 2012-11-06  
if(a){ 
    b 
}else{ 
    c 

//等价于 
(a&&(b))||c 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这两种写法是不等价的。 当a为true,b为false的时候,c一个会执行一个不会执行。
说实话,这种js的写法就是混乱的根源。完全是一种糟糕的代码风格。
9 楼 jxfsuda 2012-11-06  
我现在的项目里面全部用 (fucntion(){})(); 这样的方式.省心
8 楼 crud0906 2012-11-05  
好文章,收藏
7 楼 my249645546 2012-11-05  
x87628 写道
有个疑问

最后的实例中,有这样的代码:
nameInput.length&&nameInput.val()&&nameErrorTip.length&&msg

如果nameInput.length为假值,会继续运算nameInput.val(),nameErrorTip.length以及msg么

不会。举个例子吧:
有语句
var result=nameInput.length&&nameInput.val()&&nameErrorTip.length&&msg;
如果nameInput.length等于0,为假值,几个表达式都是&&连接,那么一个为假值整个表达式都为假值,不需要再运算其他的表达式了。这时候result=0

var result=(nameInput.length&&nameInput.val()&&nameErrorTip.length)||"nameInput不存在";
如果nameInput.length等于0,为假值使得nameInput.length&&nameInput.val()&&nameErrorTip.length为假值;最后||了一个真值,所以最终结果为真值result="nameInput不存在

你可以自己写一个简单的 脚本测试一下
6 楼 x87628 2012-11-05  
有个疑问

最后的实例中,有这样的代码:
nameInput.length&&nameInput.val()&&nameErrorTip.length&&msg

如果nameInput.length为假值,会继续运算nameInput.val(),nameErrorTip.length以及msg么

相关推荐

    jQuery攻略 源代码

    在学习过程中,开发者可以参考这些源代码,逐步解析每个功能的实现,这对于提高jQuery技能和解决问题的能力大有裨益。 具体来说,jQuery攻略源代码可能包含以下知识点: 1. **选择器**: 学习如何使用jQuery选择器...

    javascript之jquery源代码,

    总的来说,jQuery-1.4.2.js和jQuery-1.4.2.min.js文件代表了jQuery的核心功能,对于想要深入了解JavaScript和前端开发的人员,研究这两个文件的源代码是非常有价值的。通过学习,开发者不仅可以提高工作效率,还能...

    jquery源代码 包括示例 包括示例

    这个压缩包文件"jquery源代码 包括示例 包括示例"显然包含了jQuery的核心源代码以及相关的示例,这对于学习和理解jQuery的工作原理及其用法是非常有价值的。 首先,jQuery的核心源代码是JavaScript的一个模块,它...

    Jquery学习 Jquery源代码 Jquery数据库操作

    Jquery学习 Jquery源代码 Jquery数据库操作 Jquery学习 Jquery源代码 Jquery数据库操作 绝对有用,技术含量

    jQuery实战 源代码

    在这个压缩包中,你将找到与书中的示例和讲解相关的源代码文件,帮助你深入理解和实践jQuery的各种功能。 首先,我们需要理解jQuery的核心概念。jQuery通过封装JavaScript的原生方法,提供了一套更加易用的API,...

    锋利的jQuery 源代码

    锋利的jQuery 源代码 锋利的jQuery 源代码 锋利的jQuery 源代码 锋利的jQuery 源代码 锋利的jQuery 源代码 锋利的jQuery 源代码 锋利的jQuery 源代码 锋利的jQuery 源代码 锋利的jQuery 源代码

    jQueryMobile源代码

    在这个“jQueryMobile源代码”中,我们可以深入研究其内部机制,了解它是如何实现这些功能的。 首先,jQuery Mobile的核心概念是“页面(Pages)”和“面板(Panels)”。页面是应用的基本单元,而面板则用于提供...

    Jquery学习+源代码+数据库操作

    Jquery学习 Jquery源代码 Jquery数据库操作 绝对有帮助,请下载,有技术含量的,没有你骂我

    jQuery网页开发实例精解源代码

    这本书的源代码包含了书中各个实例的完整实现,这使得读者能够直接运行和调试代码,加深对jQuery原理的理解。源代码的结构可能按照书中的章节进行组织,每个章节对应一个或多个实例,覆盖了DOM操作、事件处理、选择...

    jQuery基础教程 (Learning jQuery) 完整源代码

    《jQuery基础教程 (Learning jQuery) 完整源代码》涵盖了jQuery这一强大JavaScript库的基本概念、核心功能以及实际应用。jQuery简化了HTML文档遍历、事件处理、动画制作和Ajax交互等任务,使得JavaScript编程变得...

    锋利的jQuery源代码

    《锋利的jQuery源代码》是一本专门为jQuery初学者设计的学习资源,旨在帮助读者深入理解jQuery的核心机制,通过解析和解读jQuery的源代码,提升JavaScript编程能力。jQuery是一款广泛使用的JavaScript库,它简化了...

    jquery 简单效果源代码

    **jQuery 简单效果源代码详解** jQuery 是一个广泛使用的 JavaScript 库,它极大地简化了 JavaScript 的DOM操作、事件处理、动画制作等任务。在"jquery 简单效果源代码"中,我们可能涉及到的基本概念和技巧包括: ...

    巧用jquery源代码

    《巧用jQuery源代码》是针对JavaScript库jQuery的一本实践性书籍,旨在帮助开发者深入理解jQuery的内部工作原理,以及如何高效地运用它来优化Web应用。jQuery是一个强大的JavaScript库,简化了HTML文档遍历、事件...

    jQuery Mobile快速入门源代码

    这个压缩包包含了《jQuery Mobile快速入门》这本书的配套源代码,适合初学者深入理解jQuery Mobile的基础用法和实践操作。 jQuery Mobile 的核心特性包括: 1. **统一的用户界面 (UI) 框架**:jQuery Mobile 提供...

    jQuery权威指南配套源代码

    这本书的配套源代码提供了丰富的示例和练习,涵盖了jQuery的各个方面,包括选择器、事件处理、DOM操作、动画效果以及AJAX交互等。 在提供的压缩包文件中,我们可以看到以下几个关键文件: 1. **web.config**:这是...

    精妙绝伦的jQuery 源代码

    总的来说,《精妙绝伦的jQuery 源代码》这本书不仅提供了对jQuery源码的深度解析,还通过丰富的实例引导读者深入实践,是进阶JavaScript和jQuery开发者的必备参考资料。通过学习这本书,你可以掌握jQuery的核心技术...

    jquery 1.2 和1.3 源代码

    本文将深入探讨jQuery 1.2和1.3两个版本的源代码,揭示其中蕴含的核心技术和设计理念,为读者提供一个理解jQuery演进历程的窗口。 一、jQuery 1.2:奠定基石 jQuery 1.2版本在2008年发布,是jQuery发展史上的一座...

    李炎恢jquery pdf和源代码

    【李炎恢jQuery PDF与源代码】集合包含了李炎恢老师关于jQuery的全面教学资源,包括视频教程和PDF文档,这些材料旨在帮助学习者深入理解并掌握jQuery这门强大的JavaScript库。通过配合讲义观看视频,可以有效地复习...

    JSP&Servlet&JavaScript&Ajax&jQuery源代码

    这些文件名称列表揭示了一个关于Web开发的教程结构,主要涵盖了JSP(JavaServer Pages)、Servlet、JavaScript、Ajax和jQuery这五个关键的技术。接下来,我们将详细探讨这些技术及其在实际应用中的重要性。 **JSP...

Global site tag (gtag.js) - Google Analytics