在Node.js中的startsWith:TypeError:undefined不是函数

时间:2016-12-21 17:31:07

标签: node.js

我在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

2 个答案:

答案 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),它应该可以工作。