高手给看下

hikari光 2015-08-06 10:00:51
var s = 'abc';
function add(a)
{
s =a + 'def';
}
add(s);
console.log(s);
--------------------------------------------
var s = 'abc';
function add(s)
{
s =s + 'def';
}
add(s);
console.log(s);
为什么两个显示的值是不一样的?
...全文
63 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2015-08-07
  • 打赏
  • 举报
回复
第二个代码。全局变量和函数中的局部变量同名,这样在函数中直接写变量名访问的都是局部变量 s =s + 'def';这样只是对函数中的局部变量修改,不会影响到全局变量
卿柠 2015-08-07
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
第二个代码。全局变量和函数中的局部变量同名,这样在函数中直接写变量名访问的都是局部变量 s =s + 'def';这样只是对函数中的局部变量修改,不会影响到全局变量
正解!
hikari光 2015-08-07
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
第二个代码。全局变量和函数中的局部变量同名,这样在函数中直接写变量名访问的都是局部变量 s =s + 'def';这样只是对函数中的局部变量修改,不会影响到全局变量
第二个代码中的s是参数中定义并传过来的 所以是局部变量 是不是应该这样理解

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧