JavaScript split() 不起作用!完全被难住了
2014-03-25
83
filename = "file_1";
name = filename.split('_');
test1 = name[0];
test2 = name[1];
console.log(test1);
console.log(test2);
预期结果:
file
1
实际结果:
f
i
我肯定是做错了什么,但我无论如何也想不出是什么。
我试过:
- 使用不同的引号 ' 和 "
- 在使用 (filename = ''; name = [];) 之前定义文件名和名称
- 使用不同的字符 ('-') 进行拆分
3个回答
首先定义数组变量:
var name = [];
DEMO http://jsfiddle.net/j667q/5/
为什么这样?
根据评论更新以获得更多说明:
尽管
name
不是保留字,但它是
window
的全局属性(例如
window.name
和
name
意思相同),
var name;
将定义一个名为
name
的新变量,该变量位于另一个作用域中并避免了冲突。
JavaScript 保留字: http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words
Arbel
2014-03-25
问题是,与 全局冲突 有关,全局对象有一个名为 name 的属性,并且在某种程度上与您的代码冲突。
将其重命名为 http://jsfiddle.net/j667q/3/
如果不想重命名,可以执行
var name = ...split...
是的,还请注意,您应该
始终
使用
var
声明变量,没有理由不这样做,如果您想要一个全局属性,请执行
window.someName = something;
iConnor
2014-03-25
将变量声明为 var 以正确限定其范围
var filename = "file_1";
var names = filename.split('_');
test1 = name[0];
test2 = name[1];
console.log(test1);
console.log(test2);
Pete TNT
2014-03-25