我在Node.js
中使用startsWith时遇到错误脚本sw.js
//startswith
var str = 'Sein oder nicht sein, dass ist hier die Frage'; console.log(str.startsWith('Sein oder'));
// true
console.log(str.startsWith('nicht sein'));
// false
console.log(str.startsWith('nicht sein', 10));
// true
脚本输出:
/Users/.../sw.js:2
= 'Sein oder nicht sein, dass ist hier die Frage'; console.log(str.startsWith
^
TypeError: undefined is not a function
at Object.<anonymous> (/Users/.../sw.js:2:76)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
节点版本(不确定是否相关)
node -v
v0.12.8
答案 0 :(得分:2)
您的节点版本不支持ecmascript6功能,例如// Create a person
var p: Person = new Person("One", 1);
// JSON roundtrip
var p_fromjson = JSON.parse(JSON.stringify(p))
// Hydrate it
var p2: Person = Object.create(Person.prototype);
Object.assign(p2, p_fromjson);
document.writeln(p2.Age()); // OK
。在编写本节时,Node的最新版本是6.9.2 / 7.3.0,因此您应该考虑将节点升级到最新版本,因为您的节点很旧。
但是,如果您无法使用,则可以使用polyfill found on mdn:
String.prototype.startsWith()
答案 1 :(得分:0)
startsWith
仅在es6中可用,您的节点版本不支持。尝试将节点升级到节点v6(当前的LTS),它应该可以工作。