位置: 编程技术 - 正文
推荐整理分享浅析JavaScript声明变量(js调用声音),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:javascript audio,javascript用什么声明变量,javascript声明函数,javascript声明函数,js声明json,javascript用什么声明变量,javascript用什么声明变量,javascript 声音,内容如对您有帮助,希望把文章链接给更多的朋友!
JavaScript的变量声明语句无论出现在何处,都会先于其他代码首先被执行。使用var关键词声明变量的作用域是当前的执行上下文,有可能是外围函数,或者,当变量声明在函数体之外时,则为全局变量。
定义在函数体外的都属于全局变量,定义在函数体内的属于局部变量。这里的定义是指通过var声明的。
JavaScript有隐含的全局概念,意味着你不声明的任何变量都会成为一个全局对象属性。例如:
两个结果是一样的,说明myname是一个全局变量。
那么,隐式全局变量和明确定义的全局变量有没有区别呢。。答案肯定是有的,看下面的例子:
由上面的例子可以看出:在函数之外通过var定义的global_test1不能被删除,而没有经过var定义的global_test2和global_test3都被删除了(无论是否是在函数体内创建)。
总结来说,在函数体外通过var声明的全局变量不能被删除,而隐式全局变量是可以删除的。
这里要注意了:JavaScript有一种行为叫做“hoisting”(悬置/置顶解析/预解析)。
我们通过一个例子来说明:
你猜两次alert的内容一致吗??显然不一致,一致还用说吗。。实际输出是:"undefined", "local_huming"。
上面的例子等同于
第一次alert输出的myname并不是你以为的全局变量,而是和它在一个作用域(一个函数体)内的局部变量。虽然它还没有被声明,但被当作是声明了。这就是所谓的“hoisting”。
这样应该就明白了吧。当你在函数体中使用了一个变量,又在之后重新声明的话,就可能产生错误。
书写规范:
好处在于:
1、所有局部变量都定义在函数开始,方便查找;
2、防止变量在定义之前使用的逻辑错误。
在javascript中,一个变量名(name)有四种方式进入作用域(scope)中
语言内置,所有的作用域中都有this和arguments关键字
形式参数,函数的参数在整个作用域中都是有效的
函数声明
变量声明
上面列出的四种顺序也正是由高到底的优先级的顺序,一旦一个变量名已经声明了,那么它就不可能被其他更低优先级的变量声明形式所覆盖。
Flow之一个新的Javascript静态类型检查器 今天我们兴奋的发布了Flow的尝鲜版,一个新的Javascript静态类型检查器。Flow为Javascript添加了静态类型检查,以提高开发效率和代码质量。更明确的说,
图解Sublime Text3使用技巧 Sublime工具Web编程的我想大家都会知道吧,喜欢用的人也比较多,因为许多技巧,操作都很方便,下边介绍一下如何使用一些开发中常用的技巧!1.Sublime
Javascript实现Array和String互转换的方法 本文实例讲述了Javascript实现Array和String互转换的方法。分享给大家供大家参考,具体如下:Array类可以如下定义:varaValues=newArray();如果预先知道数组的
标签: js调用声音
本文链接地址:https://www.jiuchutong.com/biancheng/386436.html 转载请保留说明!上一篇:JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件(js控制浏览器返回按钮)
下一篇:Flow之一个新的Javascript静态类型检查器
友情链接: 武汉网站建设