首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript - fromCharCode不是一个函数?

JavaScript - fromCharCode不是一个函数?
EN

Stack Overflow用户
提问于 2017-09-12 20:47:10
回答 1查看 3.9K关注 0票数 0

我试着把十进制转换成这样的文本:

代码语言:javascript
复制
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

有人知道我哪里出问题了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-12 21:16:45

你们关系很好。如果您查看fromCharCode()的文档,您将首先看到您不正确地调用它。

因为fromCharCode()是String的一个静态方法,所以您总是将它用作String.fromCharCode(),而不是作为您创建的String对象的方法。

您可以传入一个unicode字符数组并循环它们,例如:

代码语言:javascript
复制
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]));

或者更干净(没有循环),您可以使用应用功能

代码语言:javascript
复制
function decimalToText(unicodeArray){
   return String.fromCharCode.apply(null, unicodeArray);
}

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

或者使用ES6,您可以使用扩展算子

代码语言:javascript
复制
function decimalToText(unicodeArray){
   return String.fromCharCode(...unicodeArray);
}

console.log(decimalToText([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]));
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46185081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档