小编me_*_*jay的帖子

JavaScript数组中的负索引是否会导致数组长度?

在javascript中我定义了这样的数组

var arr = [1,2,3];
Run Code Online (Sandbox Code Playgroud)

我也能做到

arr[-1] = 4;
Run Code Online (Sandbox Code Playgroud)

现在,如果我这样做

arr = undefined;
Run Code Online (Sandbox Code Playgroud)

我也失去了对arr [-1]的值的引用.

从逻辑上看,似乎arr [-1]也是arr的一部分.

但当我做跟随(没有设置未定义的arr)

arr.length;
Run Code Online (Sandbox Code Playgroud)

它返回3而不是4 ;

所以我的观点是,如果数组可以与负索引一起使用,这些负索引也应该是它们长度**的一部分.我不知道可能是我错了,或者我可能错过了关于数组的一些概念.

javascript arrays

75
推荐指数
4
解决办法
5万
查看次数

对象数组与对象对象

问题是决定以下符号之间的权衡:

基于JSON:

"users": {
    "id1": {
        "id": "id1",
        "firstname": "firstname1",
        "lastname": "lastname1"
    },
    "id2": {
        "id": "id2",
        "firstaame": "firstname2",
        "lastname": "lastname2"
    }
}
Run Code Online (Sandbox Code Playgroud)

基于数组:

users: [
    {
        "id": "id",
        "key2": "value2",
        "key3": "value3"
    },
    {
        "id": "id",
        "key2": "value2",
        "key3": "value3"
    }
]
Run Code Online (Sandbox Code Playgroud)

关于同一问题的这篇文章,我决定(在前端)使用JSON对象表示法而不是对象数组,因为它符合我的要求,并且在浏览器中具有更好的性能和更少的代码.

但问题是列表本身并不是静态的.我的意思是生成列表,即从DB(NoSQL)获取/存储,并通过服务器上的Java API为新条目创建.我无法决定我应该在后端使用哪种表示法(最终也会影响用户界面).

任何关于性能,可维护性或可扩展性的想法/建议都表示赞赏.

java arrays maintainability performance json

49
推荐指数
2
解决办法
1万
查看次数

angular2/core和@ angular/core之间的区别

可能是非常愚蠢但我已经看到了几个用途

import {Component} from 'angular2/core'
Run Code Online (Sandbox Code Playgroud)

import {Component} from '@angular/core'
Run Code Online (Sandbox Code Playgroud)

但我无法理解何时使用这一个或另一个.

谢谢

typescript angular

18
推荐指数
2
解决办法
6867
查看次数

JSON.stringify将Infinity转换为null

我有JavaScript对象说:

var a = {b: Infinity, c: 10};
Run Code Online (Sandbox Code Playgroud)

当我做

var b = JSON.stringify(a);
Run Code Online (Sandbox Code Playgroud)

它返回以下内容

b ="{"b":null,"c":10}";

JSON.stringify如何将对象转换为字符串?

我尝试过MDN解决方案.

function censor(key, value) {
  if (value == Infinity) {
    return "Infinity";
  }
  return value;
}
var b = JSON.stringify(a, censor);
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,我必须返回字符串"Infinity" Infinity.如果我返回Infinity,它会再次将Infinity转换为null.

我该如何解决这个问题.

javascript json infinity stringify

15
推荐指数
3
解决办法
6465
查看次数

html二次曲线的中心点

我有一个在html画布上绘制的二次曲线context.quadraticCurveTo(controlX, controlY, endX, endY);.

我有控制点以及起点和终点,它们不一定是水平相互平齐的.

如何使用这些参数找到曲线上的中心点?

其实我想在这个中心点放一个div标签.这个过程中是否有任何方程式求解?

javascript bezier curve quadratic html5-canvas

7
推荐指数
1
解决办法
3289
查看次数

为什么在JavaScript中使用double等号'=='的真正匹配'true'?

这一小部分代码花了很长时间才被注意到.

我想如果我做了以下,那就没事了

if('true' == true) {
    alert("Does not happen");
}
Run Code Online (Sandbox Code Playgroud)

但它没有通过if条件.

我认为double等于==匹配值而不是类型匹配类型是作业===.

现在我的问题是为什么不检查true类型'true'或为什么检查这些操作数的类型?

javascript casting if-statement

6
推荐指数
1
解决办法
252
查看次数

JavascriptExecutor 如何在 selenium webdriver 中工作

当有人使用 selenium 的JavascriptExecutor对象在网页中插入一些 javascript并执行它时,这段 javascript 代码去哪里以及它如何运行?

我的意思是它永远位于页面中(直到页面重新加载)还是从外部执行。如果它位于页面中,是否可以再次使用该代码?

此外,如果其他一些 javascript 代码已经在页面中运行,那么会发生什么,插入的代码是等待其他 js 代码停止还是从浏览器外部并行执行。

我问这个问题是因为我正在研究硒并使用JavaScriptExecutor. 所以我只想知道它在内部是如何工作的。

javascript selenium execution selenium-webdriver

5
推荐指数
1
解决办法
2655
查看次数

使用 Jest 运行测试库/react-native 时,RNEncryptedStorage 未定义

react-native-testing-library我正在尝试使用Jest设置我的反应本机测试环境。我的反应本机应用程序使用react-native-encrypted-storage. 当我运行第一个示例测试(下面的代码)时,它失败并提示RNEcryptedStorage未定义。

import React from "react";
import "react-native";
// Note: test renderer must be required after react-native.
import renderer from "react-test-renderer";
import App from "../App";
    
it("renders correctly", () => {
    console.log("Rendering");
    renderer.create(<App />);
});
Run Code Online (Sandbox Code Playgroud)

完整错误:

RNEncryptedStorage 未定义

在对象。(node_modules/react-native-encrypted-storage/lib/commonjs/EncryptedStorage.ts:7:9) 在对象处。(node_modules/react-native-encrypted-storage/lib/commonjs/index.ts:1:1)

这是我第一次设置测试环境,所以不确定从哪里开始解决这个问题。

jestjs react-native react-native-testing-library

5
推荐指数
2
解决办法
5376
查看次数

javascript regexp(|)管道运算符与(||)逻辑运算符的作用相同吗?

我知道如果正则表达式两边的一个子字符串匹配,javascript中的regexp OR(|)运算符会匹配.

我也知道在JavaScript中,逻辑(||)OR运算符仅在第一个操作数为false时才检查第二个操作数.

所以我想知道regexp(|)(也称为管道)OR运算符是否以相同的方式工作,或者它首先匹配两个子字符串然后决定匹配.如果我没有错,我认为只有当左手子串不匹配时才应该检查第二个右手子串.

javascript regex logical-operators

4
推荐指数
1
解决办法
5719
查看次数

为什么这些Youtube元素(suggestion-list-items)具有相同的id

这对我来说很奇怪:

在此输入图像描述

看看上面从Youtube拍摄的屏幕截图.有人可以解释它为多个元素提供相同ID(dismissable,dismissed)的目的是什么?这些是右侧的建议视频,而另一个视频正在播放,如下面的屏幕截图所示:

在此输入图像描述

html youtube html5 id

4
推荐指数
1
解决办法
159
查看次数