Questions tagged «javascript»

有关在ECMAScript(JavaScript / JS)及其各种方言/实现(不包括ActionScript)中进行编程的问题。此标记很少单独使用,但最常与标记[node.js],[jquery],[json]和[html]关联。

3
TypeScript中的条件类型
我想知道我是否可以在TypeScript中使用条件类型? 目前,我有以下界面: interface ValidationResult { isValid: boolean; errorText?: string; } 但我想删除errorText,并且仅在isValidis false作为必需属性时才使用它。 我希望能够将其编写为以下界面: interface ValidationResult { isValid: true; } interface ValidationResult { isValid: false; errorText: string; } 但是,正如您所知,这是不可能的。那么,您对此情况有何想法?

5
+ =的异步功能
let x = 0; async function test() { x += await 5; console.log('x :', x); } test(); x += 1; console.log('x :', x); 运行代码段隐藏结果展开摘要 已x记录的值为1和5。我的问题是:为什么x 5第二个日志的值是多少? 如果在test之后执行x += 1(因为它是异步函数),则x的值在test执行时为1 ,因此x += await 5应使的值为x 6。

9
跟踪多少次调用递归函数
function singleDigit(num) { let counter = 0 let number = [...num + ''].map(Number).reduce((x, y) => {return x * y}) if(number <= 9){ console.log(number) }else{ console.log(number) return singleDigit(number), counter += 1 } } singleDigit(39) 运行代码段隐藏结果展开摘要 上面的代码采用一个整数,并将其乘以自己的数字,将其减少为一位数字。 示例是39。 3 x 9 = 27. 2 x 7 = 14. 1 x 4 = …

2
为什么undefined在JavaScript中不可写?
根据MDN的文档undefined: 在现代浏览器(JavaScript 1.8.5 / Firefox 4+)中,根据ECMAScript 5规范,undefined是不可配置的,不可写的属性。即使不是这种情况,也请避免覆盖它。 undefined的属性属性之一是不可写的。 但是,如果我这样做: var undefined = 'hello'; var test = undefined; console.log(typeof test); //string 运行代码段隐藏结果展开摘要 这是否意味着我可以覆盖的值undefined?如果有人这样做会怎样?JavaScript是否应该对此发出警告?

6
SyntaxError:无法在模块外部使用import语句
我有一个ApolloServer项目给我带来麻烦,所以我认为我可能会更新它,并且在使用最新的Babel时遇到问题。我的“ index.js”是: require('dotenv').config() import {startServer} from './server' startServer() 当我运行它时,出现错误“ SyntaxError:无法在模块外部使用import语句”。首先,我尝试做一些事情以说服TPTB *,这是一个模块(没有成功)。因此,我将“导入”更改为“需要”,并且此方法可行。 但是现在我在其他文件中有大约两打“导入”,给了我同样的错误。 *我确定问题的根源在于,我甚至不确定该问题的根源。我以为是Babel 7(因为我来自Babel 6,所以我不得不更改预设),但我不确定100%。 我为解决方案找到的大多数内容似乎不适用于纯Node。像这里这样: ES6模块导入,给出“未捕获的SyntaxError:意外的标识符” 说可以通过添加“ type = module”来解决,但这通常会出现在HTML中,而我没有。我还尝试使用项目的旧预设: "presets": ["es2015", "stage-2"], "plugins": [] 但这给了我另一个错误:“错误:插件/预设文件不允许导出对象,只能导出功能。” 更新:这是我开始的依赖项: "dependencies": { "@babel/polyfill": "^7.6.0", "apollo-link-error": "^1.1.12", "apollo-link-http": "^1.5.16", "apollo-server": "^2.9.6", "babel-preset-es2015": "^6.24.1",

4
Webpack文件加载器输出[对象模块]
我使用与的WebPack HtmlWebpackPlugin,html-loader和file-loader。我有一个简单的项目结构,其中不使用框架,只使用打字稿。因此,我将HTML代码直接写入index.html。我还将这个HTML文件用作的模板HtmlWebpackPlugin。 像所有网站一样,我需要在我的资产文件夹中放置一个引用PNG的图像。file-loader应该正确加载文件,然后将新文件名放在src标记中,但事实并非如此。相反,作为srctag 的值,我有[object Module]。我假设file-loader发出了一些对象,并且在其.toString()方法运行时它像这样表示。但是,我可以看到file-loader已经成功处理了文件,并以新名称发送到了输出路径。我没有错误。这是我的webpack配置和index.html。 const projectRoot = path.resolve(__dirname, '..'); { entry: path.resolve(projectRoot, 'src', 'app.ts'), mode: 'production', output: { path: path.resolve(projectRoot, 'dist'), filename: 'app.bundle.js' }, resolve: { extensions: ['.ts', '.js'] }, module: { rules: [ { test: /\.html$/i, use: 'html-loader' }, { test: /\.(eot|ttf|woff|woff2|svg|png)$/i, use: 'file-loader' }, { test: /\.scss$/i, …

3
哪些字符与Array.from分组?
我一直在玩JS,无法弄清楚JS在使用时如何决定将哪些元素添加到创建的数组中Array.from()。例如,以下表情符号👍的a length为2,因为它由两个代码点组成,但是Array.from()将这两个代码点视为1,从而给出了一个元素数组: const emoji = '👍'; console.log(Array.from(emoji)); // Output: ["👍"] 运行代码段Hide results展开摘要 但是,某些其他字符也有两个代码点,例如此字符षि(也具有.length2个字符)。但是,Array.from不要将此字符“分组”,而是产生两个元素: const str = 'षि'; console.log(Array.from(str)); // Output: ["ष", "ि"] 运行代码段Hide results展开摘要 我的问题是:当字符由两个代码点组成时,是什么决定字符被分解(如示例2)还是被视为一个元素(如示例1)?

7
React-Native另一个由VirtualizedList支持的容器
升级到react-native 0.61之后,我收到很多类似的警告: VirtualizedLists should never be nested inside plain ScrollViews with the same orientation - use another VirtualizedList-backed container instead. VirtualizedList-backed container我应该使用其他什么?为什么现在不建议那样使用?

8
按降序对数字进行排序,但开头应为0
我在JavaScript中遇到了一个挑战,已经尝试了一段时间。 考虑以下数组: let arr = [0, 1, 0, 2, 0, 3, 0, 4, 0, 5]; 我必须输出以下结果: arr = [0, 0, 0, 0, 0, 5, 4, 3, 2, 1] 我遵循以下逻辑行将零放置在前面,从而调整索引值: arr.sort((x, y) => { if (x !== 0) { return 1; } if (x === 0) { return -1; } return …

12
如何从数组创建数组
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 上个月关闭。 我是一名JavaScript初学者,我尝试使用一个主数组中的值制作两个不同的数组。 我的主数组如下: 0: Array(3) [ 2011, 127072.7, 51584 ] 1: Array(3) [ 2012, 125920.3, 59974 ] 2: Array(3) [ 2013, 129305.4, 15468 ] 3: Array(3) [ 2014, 135364, 84554 ] 4: Array(3) [ 2015, 136757, 98754 ] 5: Array(3) [ 2016, 155653.5, 155548 ] 6: Array(3) [ …


4
useState挂钩设置器错误地覆盖了状态
问题出在这里:我试图在单击按钮时调用2个函数。这两个函数都会更新状态(我正在使用useState挂钩)。第一个函数将value1正确更新为'new 1',但是在1s(setTimeout)之后触发,第二个函数将值2更改为'new 2',但是!它将value1设置回'1'。为什么会这样呢?提前致谢! import React, { useState } from "react"; const Test = () => { const [state, setState] = useState({ value1: "1", value2: "2" }); const changeValue1 = () => { setState({ ...state, value1: "new 1" }); }; const changeValue2 = () => { setState({ ...state, value2: "new 2" …

4
如何在Node.js(tensorflow.js)中训练模型?
我想做一个图像分类器,但是我不懂python。Tensorflow.js使用我熟悉的javascript。可以用它训练模型吗?要这样做的步骤是什么?坦白说,我不知道从哪里开始。 我唯一想到的就是如何加载“移动网络”,该网络显然是一组经过预先训练的模型,并使用它对图像进行分类: const tf = require('@tensorflow/tfjs'), mobilenet = require('@tensorflow-models/mobilenet'), tfnode = require('@tensorflow/tfjs-node'), fs = require('fs-extra'); const imageBuffer = await fs.readFile(......), tfimage = tfnode.node.decodeImage(imageBuffer), mobilenetModel = await mobilenet.load(); const results = await mobilenetModel.classify(tfimage); 可以,但是对我没有用,因为我想使用带有创建的标签的图像来训练自己的模型。 ======================= 说我有一堆图像和标签。如何使用它们训练模型? const myData = JSON.parse(await fs.readFile('files.json')); for(const data of myData){ const image = await fs.readFile(data.imagePath), labels …

7
无法在React应用程序中将对象转换为原始值错误?
我正在开发一个简单的react-spring引导应用程序,但是由于GitHub问题,我使用IntelliJ重新创建了应用程序启动器文件,并使用先前应用程序的package.json文件的依赖项数据安装了节点模块。 如果我使用折叠的导航栏(汉堡栏->响应式导航栏,该导航栏在移动视图中折叠),然后单击“汉堡栏”按钮以查看导航链接,则会出现以下错误。但是所有这些事情在以前的应用程序中都进展顺利。 TypeError: Cannot convert object to primitive value HTMLDivElement.<anonymous> C:/Users/Hasindu/Documents/AF/Application Frameworks/online-fashion-store-master/src/main/js/src/collapse.js:346 343 | ...typeof config === 'object' && config ? config : {} 344 | } 345 | > 346 | if (!data && _config.toggle && /show|hide/.test(config)) { | ^ 347 | _config.toggle = false 348 | } 349 …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.