小编Kam*_*ski的帖子

如果JavaScript中的var定义了两次,解释器应采用哪个定义?

我是JavaScript的新手,正在尝试了解吊装和范围的概念。

情况1

var name;

function logName(num) {
  console.log(name, num);
}

logName(1);
name = "Auro";
logName(2);
Run Code Online (Sandbox Code Playgroud)

我在控制台中有以下输出

Auro 1
Auro 2
Run Code Online (Sandbox Code Playgroud)

如果我理解hoisting正确,那么JS引擎会首先提升变量的声明,然后自动为其赋值undefined。仅当遇到赋值(=)运算符时,它才实际为其分配预期值。

如果我的理解是正确的,则在第一次logName调用该函数时,该变量name应该已打印未定义,但它正在打印该值。

情况二

在控制台中输出:

Baner 1
Auro 2
Run Code Online (Sandbox Code Playgroud)

这让我更加困惑。在这里,对函数的第一个调用logName选择了对变量的后一个分配并打印Baner,但是,第二个调用选择了前一个分配,即Auro

这里发生了什么?我想念什么?

javascript scope var function hoisting

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

从 json 数组中删除未定义的键

我有以下 JS 数组。删除所有带有未定义键的行的最佳方法是什么?

json=[{email: "1234569@hhh.pt", first: "Joao", last: "Bastos", gender: "Male", phone: "3.51939e+11"},
      {email: "", first: undefined, last: undefined, gender: undefined, phone: undefined}, 
      (...)];
Run Code Online (Sandbox Code Playgroud)

我试过下面的代码,但没有用。我究竟做错了什么?

cleanEmptyRows(json){

var i=0;
var row_to_remove=[];

json.forEach(function(element) {
    for (var key in element) {
        if(element[key]==null){
        row_to_remove.push(i);
        break;
        }
    }
    i++;
});


row_to_remove.forEach(function(element){
    var index = json.indexOf(element);
    if (index > -1) {
        json.splice(index, 1);
    }
});
Run Code Online (Sandbox Code Playgroud)

javascript javascript-objects

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

在 angular-cli 8 中为 angular 7 设置 font awesome 5

我想将 fontawesome 5 添加到我的 angular-cli 8.0.2 项目(使用 scss)中,方法是将字体复制到项目(不是从 Internet 链接它们),并且不使用任何外部插件/项目,而是直接使用。

所以我创建项目并通过 npm安装 fontawesome(免费),如下所示

ng n --style=scss --routing=true myproject
cd myproject
npm install --save-dev @fortawesome/fontawesome-free
Run Code Online (Sandbox Code Playgroud)

我修改文件:

  • angular.json键中,projects.myproject.architect.build.options.styles我将以下值添加到数组

    "./node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss"

  • styles.scss我添加行:

    @import "../node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss";

  • 在我添加的文本src/app/app.component.html之后Wellcome

    <i class="fas fa-sync-alt"></i>

然后我运行命令ng serve并进入浏览器http://localhost:4200/查看:

在此处输入图片说明

我使用来自互联网的不同说明,但这是我得到的最佳结果 - 但仍然不起作用(我们看到的是方形而不是这个图标)。怎么做才能解决这个问题?

javascript angular

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

创建 &lt;li&gt; 并在其上添加用户输入的按钮

该练习表明我的按钮(如提交)必须使用用户在输入标记中设置的信息,并创建一个以文本作为内容的li 标记。这是我的第一个 JavaScript 课程,所以我仍然不熟悉语法。

这是我的实际代码。我将现有的ul 标签querySelector与 addEventListener一起使用,为单击操作创建一个事件。我不记得如何正确创建新的li 标签,也不知道如何使用内容作为其信息。id

let myElement = document.querySelector('#add-book');
myElement.addEventListener("click", (e) => {
if (e.target.classList == 'button-add') {
    let liElement = document.createElement('li');
    let content = document.appendChild(liElement);
    content.textContent();
    }
}); 
Run Code Online (Sandbox Code Playgroud)

网站界面

我希望该按钮正常工作,并通过单击该按钮(带有键入的信息)在页面中显示该元素。

html javascript

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

循环数据并将其传递到图表

我有一组数据用于绘制折线图。我正在使用 ApexCharts。

let testData = [
  {
    cell_id: 5833307,
    datetime: ["2019-05-07 11:28:16.406795+03", "2019-05-07 11:28:38.764628+03", "2019-05-07 12:18:38.21369+03", "2019-05-07 12:33:47.889552+03", "2019-05-08 08:45:51.154047+03"],
    rsrq: ["108", "108", "108", "108", "109"]
  },
  {
    cell_id: 2656007,
    datetime: ["2019-07-23 15:29:16.572813+03", "2019-07-23 15:29:16.71938+03", "2019-07-23 15:29:16.781606+03", "2019-07-23 15:29:50.375931+03", "2019-07-23 15:30:01.902013+03"],
    rsrq: ["120", "119", "116", "134", "114"]
  }
];

let datasetValue = [];

for( let x=0; x<testData.length; x++ )
{
  datasetValue =
    { 
    chart: {
      height: 380,
      width: "100%",
      type: "line"
    },
    stroke: {
      curve: 'smooth',
      width: 1.5,
    },
    markers: …
Run Code Online (Sandbox Code Playgroud)

javascript json apexcharts

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

如何检查数组中是否存在没有名称的对象?

我正在构建一个javascript函数,如果它不存在,我想在其中添加对象到数组,如果我只是想更新值的话。

我的对象看起来像这样:

[{31652237148248: 12}, {4365124714824: 4}]
Run Code Online (Sandbox Code Playgroud)

如何检查数组中是否有ID为31652237148248的对象?

我试过了,但是没有用:

var index = cartItems.findIndex((obj => obj[id] == id));
Run Code Online (Sandbox Code Playgroud)

javascript arrays

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

运行 npm install 时的 CWD ENOENT

当我尝试npm install在我的 angular 项目中运行时,出现以下错误

cwd = process.cwd();
              ^
Error: ENOENT: no such file or directory, uv_cwd
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?

npm-install angular

0
推荐指数
1
解决办法
545
查看次数

如何在单击按钮之前隐藏 div?

我正在尝试创建 3 个在页面加载时隐藏的 div,以便当我单击它们各自的按钮时,它们会显示出来,但是,无论我做什么,我都无法通过单击按钮显示它们。

这是代码的相关部分:

我的 div 和按钮:

<button onclick="TestsFunction()">Tests</button>

<div id="TestsDiv" style="display:none">
    tests here!
</div>
Run Code Online (Sandbox Code Playgroud)

JS 用来显示它:

function TestsFunction() {
    var T = document.getElementById("TestsDiv");
    T.style.display = "none";}
Run Code Online (Sandbox Code Playgroud)

我可以在加载页面时成功隐藏 div,但是在单击按钮后它不会再次显示。

我试过

window.onload = function(){
    document.getElementById('TestsDiv').style.display = 'none';
}
Run Code Online (Sandbox Code Playgroud)

而不是在 div 上使用 style="display:none" 来查看我隐藏它的方式是否有问题,但 div 仍然不会显示。

我是初学者,不擅长 JS、HTML 或 PHP,如果可能的话,有人可以帮助并解释我的错误吗?我的代码中还需要其他东西吗?我尝试阅读类似的线程,但解决方案对于我的理解来说太复杂了,最终我无法解决我的问题。谢谢!

html javascript

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

如何让页面30秒后刷新5次?

5我想每隔几秒刷新一次页面30。我无法使用document.location.reload()js函数,因为再次执行js时整个页面都会重新加载。有任何想法吗?

html javascript php

0
推荐指数
1
解决办法
366
查看次数

操纵数组的对象属性

我有一些具有某些属性的对象数组。我想对对象属性做一些数学运算,并希望也返回一个数组。

我试过了,似乎没有用。

array.map(el => {
    el.count * 2;
    return el
})
Run Code Online (Sandbox Code Playgroud)
array = [{
    count: 4,
    string: 'randomstring'
}, {
    count: 9,
    string: 'randomstring'
}, {
    count: 7,
    string: 'randomstring'
}, {
    count: 12,
    string: 'randomstring'
}]
Run Code Online (Sandbox Code Playgroud)

预期

array = [{
    count: 8,
    string: 'randomstring'
}, {
    count: 18,
    string: 'randomstring'
}, {
    count: 14,
    string: 'randomstring'
}, {
    count: 24,
    string: 'randomstring'
}]
Run Code Online (Sandbox Code Playgroud)

javascript

-1
推荐指数
1
解决办法
88
查看次数

PHP 5.6.3(xamp,Laravel 5)swith-case构建中的错误?

为何功能:

function wtf($dH)
{
    switch ($dH)
    {
        case ($dH >= 0.0 && $dH < 1.0):
            echo '$dH>=0';
            break;
        case ($dH >= 1.0 && $dH < 2.0):
            echo '$dH>=1';
            break;
        case ($dH >= 2.0 && $dH < 3.0):
            echo '$dH>=2';
            break;
        case ($dH >= 3.0 && $dH < 4.0):
            echo '$dH>=3';
            break;
        case ($dH >= 4.4 && $dH < 5.0):
            echo '$dH>=0';
            break;
        case ($dH >= 5.0 && $dH < 6.0):
            echo '$dH>=5';
            break;
        default:
            echo '$dH>=6';
            break;
    }
}
wtf(0.0); …
Run Code Online (Sandbox Code Playgroud)

php laravel-5

-2
推荐指数
1
解决办法
185
查看次数