==
和===
JavaScript有什么区别?我也见过!=
和!==
运营商.还有更多这样的运营商吗?
javascript comparison-operators equality-operator identity-operator
目前正在将我的项目转换为使用 Typescript。我以前在 Node 中启动 Express 的工作代码如下所示:
server.listen(port, (error) => {
if (error) throw error;
console.info(`Ready on port ${port}`);
});
Run Code Online (Sandbox Code Playgroud)
有了这个,我现在得到一个打字稿错误:
Argument of type '(error: any) => void' is not assignable to parameter of type '() => void'.
Run Code Online (Sandbox Code Playgroud)
我试过为参数分配一个类型,例如error: Error
orerror: any
但这并不能解决问题。我在这里做错了什么?
另外,由于我是 Typescript 的新手,虽然我已经找到了大量通常用于学习 Typescript 的资源,但是否有任何地方我应该知道如何在更特定于 npm 包的场景中处理 Typescript?
我有以下问题:
编写一个函数,如果数组中的所有整数都是数字因子,则返回true,否则返回false。
我尝试了下面的代码:
function checkFactors(factors, num) {
for (let i=0; i<factors.length; i++){
let element = factors[i];
console.log(element)
if (num % element !== 0){
return false
}
else {
return true
}
}
}
console.log(checkFactors([1, 2, 3, 8], 12)) //? false
Run Code Online (Sandbox Code Playgroud)
我的解决方案返回true,这是错误的。我知道是else语句弄糟了它。但是我想理解为什么else语句不能去那里。
我用谷歌搜索了这个,但找不到与我的问题有关的结果.我把'await'放在异步函数中但node.js说"SyntaxError:Unexpected identifier".有人可以帮忙吗?我刚刚开始学习JavaScript.
async function removeFile(data) {
return new Promise((resolve, reject) => {
try {
if (!data.arg) {
//check if there's filename
data.msg.channel.send("What did you want me to remove baka?").then(async result => {
data.client.setTimeout(data.tsundere, 5000, result);
});
} else {
//check if there's repo id in the config file (Personal)
if (!data.config.group && !data.config.repo_id) {
data.msg.channel.send("Hmmph! Please set the repo channel ID in the config file first?");
//check if the channel is valid (Personal)
} else if (!data.config.group && !data.msg.guild.channels.has(data.config.repo_id)) { …
Run Code Online (Sandbox Code Playgroud) 根据零成本异步堆栈跟踪, V8 使用微任务中的 Promise 引用来重建“异步堆栈跟踪”。我假设调试器中也使用了类似的技术,它也显示了“异步堆栈”。然而,当调试“伪递归函数”时,例如使用以下函数requestAnimationFrame
:
(function tick() { requestAnimationFrame(tick); })();
Run Code Online (Sandbox Code Playgroud)
然后 Chrome 还显示了一些“异步堆栈”,如这个问题所示,尽管没有 Promise 存在。V8 如何恢复这个堆栈?它是否收集有关如何安排微任务的信息?如果是这样,什么可以防止内存泄漏?
我肯定可能有,但是我不确定它叫什么,所以如果这是超级相似的道歉.我想知道是否有更快的方法来编写以下代码:
var b = "#ff0002";
var o = "#46c029";
var i = "#f2ec00";
var n = "#f64c98";
var g = "#52c6f3";
if(a==1){
return b;
}else if(a==2){
return o;
}else if(a==3){
return i;
}else if(a==4){
return n;
}else if(a==5){
return g;
}
Run Code Online (Sandbox Code Playgroud) 我需要对非常大(超过200k个元素)的对象数组执行2个过滤器,因此我希望我的代码在javascript中尽可能快。
第一个过滤器很简单,因为我只需要删除为空(null)的元素:
let validArr = originalArr.filter(el => { return el != null });
Run Code Online (Sandbox Code Playgroud)
第二个过滤器是检查是否validArr[i].name
等于其他数组的元素之一。目前我是这样的:
for(let i = 0, l = validArr.length; i < l; i++) {
if (findInArray(validArr[i].name, otherArr)) {
finalArr.push({
name: validNpc[i].nick,
id: validNpc[i].id
});
}
}
const findInArray = (val, arr) => {
for(let i = 0, l = arr.length; i < l; i++) {
if(arr[i] === val) return true;
}
return false;
};
Run Code Online (Sandbox Code Playgroud)
在循环中,我有微优化,但是有O(n ^ 2)我想重构,但我不知道如何。
据我了解,QUIC 为每个连接都有一个唯一的 ID,允许参与者更改其 IP 地址(例如,从 WIFI 移动到移动网络时),但仍然相互发送数据包,这些数据包仍然可以分配给正确的连接。
但接收方如何知道对方要发送数据包的新 IP 地址呢?
我已经阅读了规范,但我不太明白它是如何工作的
我有一个秒表应用程序,它将时间存储在数组中。JS 从定时器启动时开始计算毫秒,然后将这些毫秒转换为秒和分钟,并将其作为字符串输出。
我想做的是计算这些时间的平均值,所以我必须将字符串转换为浮点数。它可以将像 10.35 这样的字符串转换为浮点数,但它显然不适用于像 1:24.56 这样的字符串,这就是我正在尝试解决的问题。时间将采用以下格式之一:
[seconds].[milliseconds]
[minutes]:[seonds].[milliseconds]
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?我对 Javascript 很陌生,所以我不知道该去哪里。
编辑:回购协议在这里。所有的废话都发生在timer.js 和main.js 文件中。
javascript ×8
arrays ×2
if-statement ×2
loops ×2
async-await ×1
discord.js ×1
express ×1
filter ×1
http ×1
http3 ×1
node.js ×1
promise ×1
quic ×1
stopwatch ×1
timer ×1
typescript ×1
v8 ×1