JavaScript - fromCharCode不是函数吗?

JavaScript - fromCharCode不是函数吗?

问题描述:

我试图转换小数为文本这样的:JavaScript - fromCharCode不是函数吗?

function decimalToText(str){ 
    var arr = []; 
    for (var i = 0, l = str.length; i < l; i ++) { 
     var text = str.fromCharCode(i); 
     arr.push(text); 
    } 
    return arr.join(''); 
} 

所以我想 '104 101 108 108 111 32 119 111 114 108 100' 转换到 '世界你好',例如

但我不断收到Uncaught TypeError: str.fromCharCode is not a function

任何人都知道我要去哪里错了吗?

+0

This is String.fromCharCode(number).check this https://www.w3schools.com/jsref/jsref_fromCharCode.asp – Debabrata

+0

因为它不是一个函数,它不是所有字符串的原型,它存在于字符串的构造函数中 – adeneo

+0

什么是你期望通过这个功能,你期望什么?请举一个例子 –

你就近了。如果你在为fromCharCode()文件看看,你会先看到你被错误地称之为

因为fromCharCode()是字符串的静态方法,你总是把它作为使用String.fromCharCode(),而不是一个你创建的String对象的方法。

您可以在Unicode字符和循环通过他们的阵传球,例如:

function decimalToText(unicodeArray){ 
    var arr = []; 
    for (var index in unicodeArray) { 
     var text = String.fromCharCode(unicodeArray[index]); 
     arr.push(text); 
    } 
    return arr.join(''); 
} 

console.log(decimalToText([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100])); 

甚至清洁剂(无环),你可以使用apply function

function decimalToText(unicodeArray){ 
    return String.fromCharCode.apply(null, unicodeArray); 
} 

console.log(decimalToText([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100])); 

或者用ES6,您可以使用spread operator

function decimalToText(unicodeArray){ 
    return String.fromCharCode(...unicodeArray); 
} 

console.log(decimalToText([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]));