黑马程序员技术交流社区
标题: 【广州前端】- 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); 会报错或造成一些错误的命名- 保留字
- 关键字
- JavaScript对象、属性和方法
- Java保留关键字(Java可以和JavaS一起使用)
- Windows保留关键字
- HTML事件句柄
- 非标准JavaScript
点击查看更多精彩前端资源
点击有惊喜
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |