你了解javascript中的()吗?
也许,你会说,这有什么呀,不就是个括号吗?那好,下面代码正确吗?
(function (a){ alert(a);})(12);
也许你会说,这种花稍的代码有什么用处?
我们了解,JS中函数是可以匿名的,但不了解,变量也是可以匿名的。关键是,我们不太在意JS中的括号。
JS中的括号:
我们了解:var a={}; //{}是用来定义对象的
我们了解:var b=[]; //[]是用来定义数组的。{}和[]一起构成了Json
我们了解()吗?var str = (' abcde ').charAt(3);
() 是把括号内的代码存入匿名变量。
有人说JS是中的变量是函数加数据。这是因为:对象也是以函数构成的。
了解了这一点,我们再来看看已经熟悉的代码:
alert(('abcdef').charAt(3)); //匿名字串变量
alert(({s:'0'}).s) ; //匿名对象变量
alert(([1,3,5,7,9])[2]); //匿名数组变量
再看这一行:
(function s(a){ alert(a);})(12); //有函数名
然后再看:
(function (a){ alert(a);})(12); //无函数名,匿名函数调用
由此可见,(代码)后面可以根据代码是函数是对象是数组,分别给"()",".","[]",从而成为 ()() 和 (). 和 ()[]。
前述的结果,实际即是自动运行的函数。
要使函数自动运行,不需要多写调用该函数的代码。而是用()把要运行的函数括起来,后面再加一个()其中可以传入要传入的参数。
即:(匿名函数的代码)(传入的参数);
这样,函数的代码就自动运行了。
可以试一下以下的例子:
(function(a){ alert(a);})(12);
要注意的是前面的()中是匿名函数代码(因为,我们没有必要,也不需要给它函数名),后面则是对函数调用的参数。
自动运行函数,是进行模块隔离的最常用的手段。jQuery代码就是放在自动运行函数中的。
我们来看看经典的解释:
(function( ) { // Define an anonymous function. No name means no global symbol
// Code goes here
// Any variables are safely nested within the function,
// so no global symbols are created.
})( ); // End the function definition and invoke it.
假如我们在页面中多次调用jQuery, 最好的办法就是用这样的代码:
(function($){ //这里面,写你的代码!! })(jQuery);
最后,给大家一行代码,Hello,JavaScript!代码如下:
(function (){ window['alert'](({s:'Hello, JavaScript!'})['s']) ; })();
此行代码的语法结构有5层:
{s:'Hello, Javascript!'} //json定义对象
({s:'Hello, Javascript!'})['s'] //将json定义的对象作为匿名对象,并用软编码方式访问其名为's'的属性
window['alert'](({s:'Hello, Javascript!'})['s']) ; //用软编码方式调用window的alert方法,传入刚才访问的属性
function (){ window['alert'](({s:'Hello, Javascript!'})['s']) ; } //将代码放到匿名函数中。
(function (){ window['alert'](({s:'Hello, Javascript!'})['s']) ; })(); //实现匿名函数转换成匿名变量,对此匿名变量进行函数调用,使内部代码实现模块隔离。
分享到:
相关推荐
例如,`JavaScript????\JavaScript????.txt`可能是一个包含基本JavaScript语法的文本文件,其中可能讲解了如何使用`document.getElementById()`或`querySelector()`选择元素,以及如何使用`.innerHTML`属性改变元素...
JavaScript是一种广泛应用于网页和网络应用的轻量级编程语言,主要用作客户端脚本语言,可在用户的浏览器上运行,无需服务器支持。以下是基于题目提供的内容所...了解和掌握这些概念对于编写JavaScript代码至关重要。
首先,"JavaScript????\"可能是一个目录,用于存放与JavaScript相关的文件,包括示例代码、文档等。在学习JavaScript时,目录结构通常是用来组织代码和资源的有效方式,有助于保持项目整洁并方便管理。 "JavaScript...
深入了解JavaScript中的浅拷贝和深拷贝
此压缩包文件包含了多种JavaScript相关的中英文资料,是学习和深入理解JavaScript的好资源。 首先,"DHTML 手册.chm"可能是一个关于Dynamic HTML(动态HTML)的手册。DHTML是HTML、CSS、JavaScript和DOM(文档对象...
说出它们的值 1、typeof(NaN) 、typeof(Infinity)、typeof(null)、typeof(undefined) 2、NaN == NaN 3、NaN != NaN 4、NaN >= NaN 5、null == undefined 6、null >= undefined 7、null <...
两本书结合,读者可以全面了解JavaScript的基础知识,并掌握实际开发中不可或缺的DOM和AJAX技术。通过深入学习这两本书的内容,无论是网页开发者还是对JavaScript感兴趣的爱好者,都能建立起坚实的JavaScript基础,...
首先,我们要了解JavaScript的基础知识,包括变量、数据类型、操作符和语句。JavaScript支持动态类型,这意味着变量可以存储不同类型的数据,如字符串、数字、布尔值等。了解这些基本数据类型及其用法是学习...
《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM交互、页面生存周期等。雅虎的前端工程师Nicholas C. Zakas和其他五位...
在使用ArcGIS API for JavaScript时,首先要了解地图对象(Map),它是所有地图元素的基础,包含了地图的视图、图层、坐标系统等关键信息。然后,我们可以添加不同的图层类型,如TiledMapServiceLayer用于加载瓦片...
数组作为JavaScript中重要的数据结构,其章节详述了数组的定义、length属性、数组的空位处理以及ECMAScript 5中新增的数组方法(如map、forEach等),这些方法极大地增强了数组操作的灵活性和功能性。 函数章节讲解...
《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM交互、页面生存周期等。雅虎的前端工程师Nicholas C. Zakas和其他五位...
JavaScript DOM编程艺术第二版是一本深入探讨JavaScript与DOM(Document Object ...通过阅读这本书,开发者不仅能学会如何利用JavaScript操纵DOM,还能深入了解JavaScript语言本身,从而在Web开发领域取得更大的成就。
JavaScript 是 Web 世界中必不可少的脚本技术,能够为构建实际项目提供高效、稳定的解决方案。本课程标准主要讲述 JavaScript 相关的技术,旨在培养学生具备职业市场所需的职业能力、生涯发展所需的能力和终身学习的...
此外,书中还会涉及函数式编程的概念,这是JavaScript设计模式中的重要一环。函数式编程强调使用纯函数和避免副作用,能提高代码的可读性和可维护性。JavaScript中的闭包和高阶函数是实现这一编程范式的工具,书中有...
首先,要了解JavaScript的快速入门知识。初学者可以通过Sublime Text或Notepad++这样的文本编辑器开始编写代码。随后,学习JavaScript的基本语法是必要的,它包括数据类型、变量的使用,以及如何声明和调用函数。...
这个资源包中的JavaScript例子可能是针对上述各个知识点的实战演示,通过直接复制粘贴到项目中,可以帮助开发者快速理解和应用这些概念。无论你是初学者还是经验丰富的开发者,这些实例都能为你提供宝贵的参考。学习...
在书中,你会了解到JavaScript的基本语法,包括变量、数据类型(如字符串、数字和布尔值)、操作符、流程控制(条件语句和循环)以及函数的使用。这些是所有编程语言的基础,对于理解和编写任何JavaScript代码至关...