黑马程序员技术交流社区

标题: 【广州前端】- JavaScript命名——name不能做变量名 [打印本页]

作者: coral菜菜    时间: 2018-7-22 17:06
标题: 【广州前端】- JavaScript命名——name不能做变量名
本帖最后由 coral菜菜 于 2018-7-22 17:07 编辑

使用name作为变量名(var name = ‘’),在IE中未引起bug,在Chrome中引起bug但未明确指出命名错误,而是会报其他错误,故不便于发现。
现象原因:
javascript中name既不是保留字,也不是关键字,因此用作变量时并不会报错;但是在Firefox、Safari、Chrome和Opera中都给函数定义了一个非标准的name属性,通过这个属性可以访问到给函数指定的名字,因此在这些浏览器中不能使用name作为变量名。
function functionName(arg0, arg1, arg2){
  //函数体
}
//只在Firefox、Safari、Chrome和Opera有效
alert(functionName.name); // "functionName"

发现使用typeof name得到 的类型是string。因为name是全局变量,可以在任意浏览器中使用 。
cosole.dir(window)查看。
console.log(typeof name);
会报错或造成一些错误的命名

  点击查看更多精彩前端资源
点击有惊喜








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2