我是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应该已打印未定义,但它正在打印该值。
情况二
Auro 1
Auro 2
Run Code Online (Sandbox Code Playgroud)
在控制台中输出:
Baner 1
Auro 2
Run Code Online (Sandbox Code Playgroud)
这让我更加困惑。在这里,对函数的第一个调用logName选择了对变量的后一个分配并打印Baner,但是,第二个调用选择了前一个分配,即Auro。
这里发生了什么?我想念什么?
我有以下 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) 我想将 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/查看:
我使用来自互联网的不同说明,但这是我得到的最佳结果 - 但仍然不起作用(我们看到的是方形而不是这个图标)。怎么做才能解决这个问题?
该练习表明我的按钮(如提交)必须使用用户在输入标记中设置的信息,并创建一个以文本作为内容的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)
我希望该按钮正常工作,并通过单击该按钮(带有键入的信息)在页面中显示该元素。
我有一组数据用于绘制折线图。我正在使用 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函数,如果它不存在,我想在其中添加对象到数组,如果我只是想更新值的话。
我的对象看起来像这样:
[{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) 当我尝试npm install在我的 angular 项目中运行时,出现以下错误
cwd = process.cwd();
^
Error: ENOENT: no such file or directory, uv_cwd
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?
我正在尝试创建 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,如果可能的话,有人可以帮助并解释我的错误吗?我的代码中还需要其他东西吗?我尝试阅读类似的线程,但解决方案对于我的理解来说太复杂了,最终我无法解决我的问题。谢谢!
5我想每隔几秒刷新一次页面30。我无法使用document.location.reload()js函数,因为再次执行js时整个页面都会重新加载。有任何想法吗?
我有一些具有某些属性的对象数组。我想对对象属性做一些数学运算,并希望也返回一个数组。
我试过了,似乎没有用。
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) 为何功能:
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) javascript ×9
html ×3
angular ×2
php ×2
apexcharts ×1
arrays ×1
function ×1
hoisting ×1
json ×1
laravel-5 ×1
npm-install ×1
scope ×1
var ×1