Javascript中如果定义变量名为"name"会出现的问题

    大多数情况我们会选择避免使用关键字或者保留字做为变量的名称,但是name在javascript中既不是关键字也不是保留字,在使用name作为变量名后会出现什么问题呢?

在控制台随便输入一个变量名"hehe",可以看到,"hehe"这个变量并未定义

在控制台如果输入"name",可以看到,"name"是一个空的字符串然而我并没有定义name这个变量,为什么会默认赋值给空的字符串呢?


让我们再看一个奇怪的问题,运行下面的代码会在控制台输出hehe1,这也是我们预期会出现的结果,但是,如果我们把v2变量名改为name,看看会输出什么

var v1 ="hehe1,hehe2,hehe3"

var v2 = v1.split(",");

console.log(v2[0])


var v1 ="hehe1,hehe2,hehe3"

var name= v1.split(",");

console.log(name[0])


这时我们可以看到,name虽然被赋值给v1.split(","),v1.split(",")返回的是一个数组,但是呢name确输出了"hehe1,hehe2,hehe3",这里就很奇怪了,如果在输出console.log(name[0]),输出的不是"hehe1"而是"h",很奇怪额,问了很多人,大家都说name是javascript中的内置对象,在这里我也不太确定是不是,总之先记录一下,以后在研究一下,看看name到底是什么,总之在定义变量的时候要尽量避免取名为name就好了。

对学习抱有热情的开发小伙伴欢迎加入 qq群685421881,更欢迎热爱编程的妹子进入,让我们一起学习 并进步吧!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,963评论 2 17
  • 模块通常是指编程语言所提供的代码组织机制,利用此机制可将程序拆解为独立且通用的代码单元。所谓模块化主要是解决代码分...
    MapleLeafFall阅读 1,207评论 0 0
  • 今天是好报写作13期的最后一天,很多同学都在写总结,突然发觉得这已是自己参加好报写作群的第二期了,是该给自己写一份...
    聴海阅读 1,166评论 0 0
  • 2017年,时间已然过半,转眼进入了6月,在近年中的时刻,写下2017年想要实现的梦想,想来也不算晚吧~ 在想着2...
    精灵王子魔豆公主阅读 264评论 2 0