变量定义错误怎么办?

问题描述 投票:0回答:1

我正在做一项作业,我需要构建一个基于函数的控制台日志生成器。我需要声明两个变量,由于某种原因,我的做法是错误的:

var message;
var style;
function consoleStyler(color, background, fontSize, txt) {
    message = "%c" + txt;
    style = `color: ${color};`;
    style += `background: ${background}`;
    style += `font-size: ${fontSize};`;
    console.log(consoleStyler(message, style));
}

(我在函数外部声明它们,因为分配稍后在其他函数中需要它们) 输出表明存在范围错误,并且还特别指出消息变量是错误的。

  • 我尝试在函数内部定义变量,但完整的赋值需要它们是全局的。
  • 还尝试将 console.log 中的“consoleStyler”的括号留空,但赋值指定它需要那里的参数。
  • 在样式中定义所有内容也是行不通的,它需要位于单独的代码行中。
  • 我真的不明白消息变量出了什么问题,必须包含反引号,所以我一无所知,如果有人能找出可以帮助我的东西,我将非常感激!
javascript function variables
1个回答
0
投票

我明白你的目的,这里有一些细节需要修复。

  1. 事实上,目前你的函数只是定义了,并没有被调用。我们需要在函数外部调用

    consoleStyler

  2. 函数需要传递4个参数,这个参数在定义时就确定了,所以调用consoleStyler时,括号内需要4个参数。

就像

consoleStyler('red', 'blue', '100px', 'test-txt');

  1. 关于
    style
    ,你的目标是实现类似于
    {color: red;background: blue;font-size: 100px;}
    的目标。

您可以使用多条线或一根线。

style = `color: ${color};`;
style += `background: ${background};`; //You are missing a semicolon here.
style += `font-size: ${fontSize};`;

style = `color: ${color};`+`background: ${background};`+`font-size: ${fontSize};`;

定义时,反引号是很好的。

外面的分号

;
是JS代码,里面的分号是
{color: red;background: blue;font-size: 100px;}
对象的分号。

通过使用反引号,JS 在编译过程中会明白你的分号是用于定义目的,而不是 JS 语句的常规结尾。

这是正确的代码和结果,大家思考后可以比较一下。

var message;
var style;
function consoleStyler(color, background, fontSize, txt) {
    message = "%c" + txt;
    style = `color: ${color};`;
    style += `background: ${background};`;
    style += `font-size: ${fontSize};`;
    console.log(message, style);
}
consoleStyler('red', 'blue', '100px', 'test-txt');

结果

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.