【问题标题】:Concatenating using string literals in JavaScript在 JavaScript 中使用字符串文字连接
【发布时间】:2022-12-08 22:14:48
【问题描述】:

我试图了解如何与字符串文字连接。我正在尝试从对象中获取值并将它们添加到字符串中。

let obj = {
  name: 'Mitch',
  age: 29,
  job: 'tutor'
};

function createSentence(obj) { // return a string from obj    
  const result = ''
  result = `Hello my name is ${name}, I am ${age} years old and I am a ${job}`;
  return result;

}
console.log(result);

我收到的错误是我的结果对象未定义。我以为我可以在声明的同时分配它的新值。我尝试添加一个新行只是为了将结果声明为空字符串,但这并没有改变任何东西。

【问题讨论】:

  • 2 个问题,name 和其他人不会从 obj 中解构,做 function createSentence({name, age, job}) 第二个是你不能重新定义一个 const,改用 let 或者只是返回,你不需要分配结果
  • 您从不调用该函数,console.log 在函数之外,并且您从未在任何地方声明变量 name/age/job
  • ^ 更正 3 期
  • 您还应该了解 JavaScript 中的作用域。刚学Javascript
  • 此外,result 仅在函数内部声明,而不是在函数外部声明。因此错误那个。还有 LawrenceCherone 和 Bergi 所说的 - 你永远不会调用该函数 + 如果你这样做,你会出错。

标签: javascript string-concatenation string-literals


【解决方案1】:

let obj = {
  name: 'Mitch',
  age: 29,
  job: 'tutor'
};

function createSentence(obj) { // return a string from obj    
  return `Hello my name is ${obj.name}, I am ${obj.age} years old and I am a ${obj.job}`;
}

let result = createSentence(obj)

console.log(result);

简单的方法。不想潜得太深,但你的主要错误是:

  1. 尝试将值重新分配给 const 变量(这是不允许的)
  2. 不是指传递的参数 (obj),而是指它的键。您要么需要将它们称为 obj。钥匙或先破坏它们。
  3. 您正在尝试控制台.log(结果), 这不是一个全局变量。您首先需要将函数的结果存储在一个变量中(在我的示例中称为“结果”)以记录它,或者记录函数调用本身。即:console.log(createSentence(obj))

【讨论】:

  • 谢谢你,福克斯代码:)
【解决方案2】:

对象解构是你的朋友......但是你的代码还有其他问题。

您正在尝试重新分配常量。您也没有调用该函数。

let obj = { name: 'Mitch', age: 29, job: 'tutor' };

function createSentence({ name, age, job }) { // return a string from obj    
    const result = `Hello my name is ${name}, I am ${age} years old and I am a ${job}`;
    return result;
}
console.log(createSentence(obj));

【讨论】:

  • 谢谢你,伊恩 :)
【解决方案3】:
  1. 您无法更改const 变量,因此请将其更改为let
  2. 两次使用结果变量是多余的。
  3. 您必须使用 . 符号从对象获取属性

    这是工作:

    let obj = { name: 'Mitch', age: 29, job: 'tutor' };
    function createSentence(obj) { // return a string from obj    
        let result = `Hello my name is ${obj.name}, I am ${obj.age} years old and I am a ${obj.job}`;
        return result;
    }
    console.log(createSentence(obj));
    

【讨论】:

  • 谢谢你,哈米德:)
猜你喜欢
  • 2013-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-05
  • 1970-01-01
  • 2013-06-02
相关资源
最近更新 更多