关于JS 函数里 修改js 回调函数 全局变量量 的问题

JavaScript函数内部修改全局变量的问题_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
JavaScript函数内部修改全局变量的问题
代码如下,为什么加了 function a(){};这个函数,就不能改变全局变量a的值了?
var a = 1;
function b(){
console.log(a);
//有函数,a不变;没函数,a变2
function a(){};
b();//输出2
我有更好的答案
因为A. JavaScript中函数就是一种值而已, 与数字对象字符串等都是值B. JavaScript会预解析整个代码後执行, 其中一点是会把function FunctionName(){}这种形式的函数声明带定义预先绑定到其所在的作用域所以, 你的b函数函数体等价於function b(){
function a(){}
console.log(a)}因此不会改变全局的值
感谢回复,B中的函数声明提前我了解一些,倒是A给我很大启发。你的意思是,变量a=2其实是把函数a()重新赋值成数字变量了?那么函数a()可以看成是一个局部变量,a=2虽然前面没有加var,但也只是给a()这个局部变量重新赋值,但a依然是一个局部变量,只是与函数外面的全局变量a=1重名,这样理解对吗?
'变量a=2其实是把函数a()重新赋值成数字变量了?'正确'但a依然是一个局部变量,只是与函数外面的全局变量a=1重名'正确
好的,非常感谢!
采纳率:72%
为您推荐:
其他类似问题
全局变量的相关知识
换一换
回答问题,赢新手礼包君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
javascript(jquery)利用函数修改全局变量的代码
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口js 事件调用函数,无法修改全局变量?_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
js 事件调用函数,无法修改全局变量?
&p id=&p1&&&/p&
&button id=&btn1&&请点击&/button&
&script type=&text/javascript&&
var p1=document.getElementById('p1');
var btn1=document.getElementById('btn1');
var boole=
function fun(){
btn1.onclick=...
我有更好的答案
function&fun(){&&&&boole&nbsp.onclick&=&&&=&下面那行都执行完了;=&;p1.innerHTML&nbsp,p1 已经输出 true 了,那个时候你根本都没时间去点击 btn1 呢。难道说题主的手速已经超越了你电脑执行一行代码的速度?想看结果好歹在方法里刷新一下显示的数据哇;&nbsp!&nbsp,题主说没改变难道是通过看 p1 显示的啥么……btn1先是看了三遍代码也没明白为啥题主说“没改变”,后来恍然大悟;p1.innerHTML&nbsp
谢谢解答!但是我感觉我自己还存在这种惯性思维,导致我下次可能犯同样的错误,敢问大师这种错误的根本原因是什么我哪一部分知识不清楚导致的?
写代码写的少……
采纳率:75%
来自团队:
为您推荐:
其他类似问题
全局变量的相关知识
换一换
回答问题,赢新手礼包更好的工作机会
在100offer,提交一份个人资料,一周内即会有5-10家Top互联网公司主动向你发出邀请。100offer确保你的隐私万无一失,同时Consultant将为你全程提供专业服务。
最具价值web全栈课程
只做前端开发培训的好学校,专注于多方向全栈工程师培养。前端名师邵山欢亲自授课,课程涵盖HTML5、CSS3、Node.js、Angular、React诸多课程,免费视频广受学生好评。
跟牛人学前端
跟牛人学前端
妙味大前端自学宝典
妙味课堂2016年JavaScript课程大纲震撼升级、全栈来袭!
前端最新干货
前端最新干货
web在线直播课
潭州教育是中国较早的在线教育平台,教学内容涵盖网络营销,java,javascript,jquery,android,ios,mysql,围棋,刺绣,养殖,农业,手艺,网页设计,平面设计,影视后期,CAD建筑机械,网络营销,商战智慧,办公软件,三维设计,工业设计,淘宝摄影,英语,音乐,大学代理,Photoshop教程,
Max教程,Maya教程,CAD教程,会声会影教程,AI教程,淘宝开店,摄影教程,免费教程,素材下载等众多在线学习精品课程。经过10年的发展,潭州教育已经发展为中国规模较大的在线教育平台。
腾讯前端NEXT学位
IMWeb 前端 Next 学位_腾讯前端专家领衔打造的 Web 前端课程
Parcel 中文文档
快速,零配置的 Web 应用程序打包器
您的位置: » 分类:
» 文章: javascript的全局变量和局部变量
全局变量是个魔鬼,令人头痛。据说庞大的YUI只用了两个全局变量,真是令人赞叹!
JavaScript 有两种变量:全局变量和局部变量。
如果在任何函数定义之外声明了一个变量,则该变量为全局变量,且该变量的值在整个持续范围内都可以访问和修改。
如果在函数定义内声明了一个变量,则该变量为局部变量。每次执行该函数时都会创建和破坏该变量;且它不能被该函数外的任何事物访问。
局部变量一定要以var申明,否则是全局变量。
像 C++ 这样的语言也有“块范围”。在这里,任何一对“{}”都定义新的范围。JavaScript 不支持块范围。
一个局部变量的名称可以与某个全局变量的名称相同,但这是完全不同和独立的两个变量。因此,更改一个变量的值不会影响另一个变量的值。在声明局部变量的函数内,只有该局部变量有意义。
function square(num){
total=num*
val total=50;
val number=square(20);
alert(total);
这些代码将导致全局变量total的值发生变化。
把这个函数写成这样才是正确的:
function square(num){
var total=num*
var cookie=“i am cookie”;
function test(){
var cookie=“i am not fei cookie”;//定义局部变量的值,test函数执行后不会影响到全局的cookie
document.write(cookie);
去掉test()函数中变量var 如下: 
var cookie=“i am cookie”;
function test(){
cookie=“i am not fei cookie”;//修改全局变量的值
document.write(cookie);
&/script&//////test函数执行后输出 i am not fei cookie
在函数中并且不加var 如何改变全局变量?如下:
var cookie=“i am cookie”;
function test(){
var cookie=“i am not fei cookie”;//定义局部变量的值,test函数执行后不会影响到全局的cookie
window.cookie=
}////利用window.变量
document.write(cookie);
&/script& /////输出 i am not fei cookie
 正文完。下面还有一个推广让最好的人才遇见更好的机会!
互联网行业的年轻人,他们面对着怎样的职业瓶颈、困惑与未来选择?过去,这鲜有人关心。资深的职场人,也多半优先选择熟人去推荐机会。
100offer致力于改变现状,帮互联网行业最好的人才发现更好的机会。使用
或 100offer App ,可以一周内获得中国、美国等数千家优质企业的工作机会。
 推广结束 
关注WEB前端开发官方公众号
关注国内外最新最好的前端开发技术干货,获取最新前端开发资讯,致力于打造高质量的前端技术分享公众号
所属分类:
您可能感兴趣的文章
近期最热文章
- 9,452 - 5,260 - 4,820 - 4,560 - 4,303 - 3,434
关注WEB前端开发公众号为什么自己定义的函数不能改变全局变量的值?_百度知道
为什么自己定义的函数不能改变全局变量的值?
main却可以。如图
我有更好的答案
你在 main 里面的 printf 前加一行 v(); 再看结果因为你没有调用 v ,所以 a = 3 根本没执行过
采纳率:71%
为您推荐:
其他类似问题
全局变量的相关知识
换一换
回答问题,赢新手礼包}

我要回帖

更多关于 js 回调函数 全局变量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信