win8:匿名函数与严格模式

简介:

代码如下:

复制代码
(function () {
    "use strict"; // Declares strict mode. 

    ...

})();
复制代码

匿名函数原因:

JavaScript 有两个作用域:全局和局部。如果在任何函数定义之外声明变量,则该变量为全局变量,并且在整个程序中都可以访问和修改该变量的值。如果在某个函数定义内声明变量,则该变量为局部变量。该函数之外任何内容都无法访问该变量。

将代码包装在匿名函数中可以使代码变为私有代码。将代码包装在匿名函数中是一个较好的编码做法,因为这样做可以限制代码的作用域,避免破坏全局命名空间。这样做还便于避免命名冲突或不小心修改某值的情况。

虽然 JavaScript 并不支持私有成员,但在使用 JavaScript 编码时,基本上可以通过匿名函数来创建私有成员。

函数声明末尾的额外括号是用来调用匿名函数的。

严格模式:

严格模式可以为 JavaScript 代码提供更好的错误检查。使用 strict 模式时,代码受到的限制比 JavaScript 正常情况下允许的限制更严格。

更多限制可查看:http://msdn.microsoft.com/zh-cn/library/windows/apps/br230269.aspx

   本文转自老Zhan博客园博客,原文链接:http://www.cnblogs.com/mybkn/archive/2012/09/23/2699087.html,如需转载请自行联系原作者
相关文章
|
9月前
|
存储 Python 数据处理
Python 05 之函数【参数,返回值,嵌套调用,作用域,匿名函数】
Python 05 之函数【参数,返回值,嵌套调用,作用域,匿名函数】
79 0
|
8月前
|
JavaScript 前端开发 开发者
JavaScript的变量提升是一种编译阶段的行为,它将`var`声明的变量和函数声明移至作用域顶部。
【6月更文挑战第27天】JavaScript的变量提升是一种编译阶段的行为,它将`var`声明的变量和函数声明移至作用域顶部。变量默认值为`undefined`,函数则整体提升。`let`和`const`不在提升范围内,存在暂时性死区。现代实践推荐明确声明位置以减少误解。
55 2
|
5月前
|
JSON JavaScript 前端开发
JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级
JavaScript第五天(函数,this,严格模式,高阶函数,闭包,递归,正则,ES6)高级
匿名函数 嵌套函数 高级函数
匿名函数 嵌套函数 高级函数
|
9月前
|
存储 JavaScript 前端开发
每日一道javascript面试题(九)函数的参数可以和函数体中的变量重名吗
每日一道javascript面试题(九)函数的参数可以和函数体中的变量重名吗
|
9月前
|
JavaScript 前端开发 编译器
TypeScript 中的变量声明:变量声明的语法、变量的作用域、变量的类型推断和类型断言
TypeScript 中的变量声明:变量声明的语法、变量的作用域、变量的类型推断和类型断言
93 1
|
JavaScript 前端开发
JavaScript(函数,作用域和闭包)(下)
JavaScript(函数,作用域和闭包)
|
JavaScript 前端开发
JavaScript函数篇之ES6箭头函数与匿名函数
对于箭头函数,this 关键字始终表示定义箭头函数的对象。
145 0
|
JavaScript 前端开发
【JavaScript】21_debug,立即执行函数 与 严格模式
# 14、debug ```html <script> //debugger // 在代码中打了一个断点 console.log(a) // 2 var a = 1 console.log(a) // 1 function a() { alert(2) } console.log(a) // 1 var a = 3
102 0
frida hook重载函数的几种写法
apply arguments MyClass.MyFunc.overload("java.util.List").implementation = function() { this.
4886 0