filename = "file_1";
name = filename.split('_');
test1 = name[0];
test2 = name[1];
console.log(test1);
console.log(test2);
预期结果:
file
1
实际结果:
f
i
我一定是做错了什么,但不能为我的生活做出什么。
我试过了:
答案 0 :(得分:3)
首先定义数组变量:
var name = [];
DEMO http://jsfiddle.net/j667q/5/
为什么会这样?
根据评论更新更多说明:
虽然name
不是保留字,但它是window
的全局属性(例如window.name
和name
意味着相同),{{1将定义一个名为var name;
的新变量,该变量位于另一个范围内,避免冲突。
JavaScript保留字:http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words
答案 1 :(得分:2)
问题是,与全局冲突有关全局对象有一个名为name的属性,并且与您的代码存在某种冲突。
将其重命名为http://jsfiddle.net/j667q/3/
如果您不想重命名,可以var name = ...split...
是的,还要注意,你应该总是用var
声明变量没有理由不这样做,如果你想要一个全局属性做window.someName = something;
答案 2 :(得分:0)
name是js全局属性。所以尽量不要使用它。希望有所帮助
答案 3 :(得分:0)
将变量声明为var以正确定位它们
var filename = "file_1";
var names = filename.split('_');
test1 = name[0];
test2 = name[1];
console.log(test1);
console.log(test2);
答案 4 :(得分:0)
你必须声明这两个变量。
var filename = "file_1";
var name = filename.split('_');
查看更新的 JSFIDDLE ( http://jsfiddle.net/prakashcbe/j667q/17/ )
答案 5 :(得分:0)
试试这个...... 其他答案都是正确的。我不知道你的错误。无论如何,试试这个
[http://jsfiddle.net/puvanarajan/Nytgh/] [1]