为什么当变量赋值之后相同变量名的函数不会覆盖

weixin_42693752 2018-08-16 02:44:58

为什么这两个的结果一个是string,一个是function
...全文
324 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq137510669 2018-08-21
  • 打赏
  • 举报
回复
var b只是声明一个变量,而function() b{}相当于,var b=function(){}
讨厌走开啦 2018-08-20
  • 打赏
  • 举报
回复
console.log(typeof c);//输出function c已经被预定义(但只会取初始化时的变量类型,即function而不是string),但实际值为undefined
function c (c) {}
console.log(typeof c);//输出function
c = "aaa";
console.log(typeof c);//输出string

console.log(typeof b);//输出function 原因同上
function b (b) {}
console.log(typeof b);//输出function
b;
console.log(typeof b);//输出function b定义为function,但并没有像c那样被重新赋值,所以b的值保持不变,仍然是一个function
天际的海浪 2018-08-20
  • 打赏
  • 举报
回复
var b;只是声明了变量,并没有赋值操作,不会改变变量的值。
75闪光雷 2018-08-20
  • 打赏
  • 举报
回复

function  c(c){
}
c只是一个名字,你可以理解为一段咒语“雷咒”, c后面的函数是 咒语的效果,比如 ”掉下一段雷劈死你“ var c="aaa"; 这里 c没变还是一段咒语“雷咒”,但是后面的被你改变了,现在c只代表一个“aaa”物体了。
jinhx 2018-08-16
  • 打赏
  • 举报
回复
重复定义变量时,如果没有赋值,就会忽略后面的定义
Logerlink 2018-08-16
  • 打赏
  • 举报
回复
第二个b只是声明而已,并没有重新分配,所以b还是原来的值
cry5cry 2018-08-16
  • 打赏
  • 举报
回复
非声明变量只有在执行赋值操作的时候才会被创建,而声明变量在执行前已被创建,所以两个的结果不一样。

87,901

社区成员

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

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