gpt4 book ai didi

javascript - 为什么必须将其作为数组而不是字符串传入?

转载 作者:行者123 更新时间:2023-12-02 19:58:59 24 4
gpt4 key购买 nike

我正在学习《Node Web Developments》一书中的 Node.js 教程。

问题:在代码的一部分中,包含 HTML 代码的数组 []mult-node.js 传递到必需的函数 htutil.page() 作为第三个参数,以及 exports.navbar()exports.page() 返回的 2 个值在 htutil.js 中,但我不明白为什么它必须是一个数组而不是一个长字符串?我在 htutil.page() 中没有看到任何将数组提取到长字符串中的代码,并将其显示在 HTML 页面上。

htutil.js

var url = require('url');

exports.loadParams = function(req, res, next) {
req.requrl = url.parse(req.url, true);
req.a = (req.requrl.query.a && !isNaN(req.requrl.query.a))
? new Number(req.requrl.query.a)
: NaN;
req.b = (req.requrl.query.b && !isNaN(req.requrl.query.b))
? new Number(req.requrl.query.b)
: NaN;
if(next) next();
}

exports.navbar = function() {
return ["<div class='navbar'>",
"<p><a href='/'>Home</a></p>",
"<p><a href='/mult'>Multiplication</a></p>",
"<p><a href='/square'>Square's</a></p>",
"<p><a href='/factorial'>Factorial's</a></p>",
"<p><a href='/fibonacci'>Fibonancci's</a></p>".
"</div>"].join('\n');
}

exports.page = function(title, navbar, content) {
return ["<html><head><title>{title}</title></head>",
"<body><h1>{title}</h1>",
"<table><tr>",
"<td>{navbar}</td><td>{content}</td>",
"</tr></table></body></html>"].join('\n');
.replace("{title}", title, "g")
.replace("{navbar}", navbar, "g")
.replace("{content}", content, "g");
}

multi-node.js

var htutil = require('./htutil');
exports.get = function(req, res) {
res.writeHead('200', {'Content-Type': 'text/html'});
var result = req.a * req.b;
res.end(
// THIS IS THE FUNCTION WHERE THE ARRAY OF HTML CODE IS PASSED INTO
htutil.page('Multiplication', htutil.navbar(), [
(!isNaN(req.a) && !isNaN(req.b) ?
("<p class='result'>{a} * {b} = {result}</p>"
.replace('{a}', req.a)
.replace('{b}', req.b)
.replace('{result}', req.a * req.b))
: ""),
"<p>Enter numbers to multiply</p>",
"<form name='mult' action='/mult' method='get'>",
"A: <input type='text' name='a' /><br>",
"B: <input type='text' name='b' />",
"<input type='submit' value='Submit' />",
"</form>"
].join('\n'))
);
}

最佳答案

据我所知,它没有传递数组 - 它在传递它之前将其连接到一个字符串中。

这样做的原因是字符串连接(至少据说)比重复连接更有效,这当然取决于 join 的实现,但我想大多数实现都会优化它。 JavaScript 没有 StringBuffer 或 StringBuilder 类型,因此加入数组是最接近的事情。

关于javascript - 为什么必须将其作为数组而不是字符串传入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8235750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com