在下面的简单测试代码中,我push将数字10放入一个数组中,然后将splice'hello world'放入第二个索引的数组中.它按预期工作.
"use strict";
let myArray = [1, 2, 3, 4, 5];
myArray.push(10);
myArray.splice(2, 0, 'hello world');
console.log(myArray);Run Code Online (Sandbox Code Playgroud)
但是有可能在一条线上做到这一点吗?我尝试在下面的示例链接,它会抛出一个错误.我找不到有人在网上谈论这个.
"use strict";
let myArray = [1, 2, 3, 4, 5];
myArray.push(10).splice(2, 0, 'hello world');
console.log(myArray);Run Code Online (Sandbox Code Playgroud)
我正在学习Javascript,我遇到了一些"古怪"的东西.
为什么不是类型.length或类型的属性.name?它似乎应该属于那一类.相反,它被认为是一个类似于等号的运算符=
也许有一个明显的解释或我不理解的东西(很容易).
我正在尝试掌握窍门,callback functions但遇到了一些我不完全理解的问题。
这段代码在下面的示例中使用时效果很好。
zombieCreatures = creatures.filter(filterCreatures);
Run Code Online (Sandbox Code Playgroud)
不幸的是,当在同一示例中使用此代码块时,它不起作用。
zombieCreatures = creatures.filter(function(v) {
filterCreatures(v);
});
Run Code Online (Sandbox Code Playgroud)
对我来说,它们看起来像相同的说明,但显然我是不正确的。有什么不同?是否可以使回调函数调用 内部的另一个函数.filter()?
zombieCreatures = creatures.filter(filterCreatures);
Run Code Online (Sandbox Code Playgroud)
以下代码不会引发错误,但我不完全确定原因.在doubleIt方法中,我使用对象的名称,returnObject而不是this.
在newInstance实例化之后,我希望该术语returnObject将被复制到新doubleIt方法中.因为returObject如果doubleIt从newInstance它调用它只存在于工厂函数中会混淆JS引擎并抛出错误.但它没有,它工作正常.为什么这仍然有效?
"use strict"
function factoryFunction(x) {
let returnObject = {
oneParameter: x,
doubleIt: () => returnObject.oneParameter * 2
// doubleIt: () => this.oneParameter * 2
// Why don't I have to use the 'this' version?
}
return returnObject;
}
let newInstance = factoryFunction(10);
console.log(newInstance.doubleIt());Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法可以删除::after媒体查询中的伪元素?
例如,::after当浏览器宽度低于 980px 时,我可以完全删除这个伪元素吗?或者我应该用老式的方式来隐藏原始类并在浏览器宽度缩小到 980px 以下时显示一个新类?专业人士如何解决这个问题?
.navigation_unit > a::after {
content: "";
position: absolute;
box-sizing: border-box;
width: 100%;
height: .0625rem;
bottom: 0;
left: 0;
background-color: rgb(0,0,238);
transform: scaleX(0);
transition: all 0.3s ease-in-out 0s;
}
Run Code Online (Sandbox Code Playgroud) 在下面的简化示例中,我使用绝对定位将标签放在输入元素内.我使用JavaScript来使标签缩小或增长,具体取决于焦点/模糊.这按预期工作.
我的问题:如果我单击文本标签,它会阻止焦点在输入元素上,标签不会缩小.如果我单击元素内的任何其他位置,它将按预期工作.我试图Z-index -1将标签放在输入框后面,但这并没有解决问题.我也试过user-select: none但它仍然阻止了对输入元素的关注.有没有办法阻止标签阻止输入元素?
document.querySelector('input').addEventListener('focus', labelShrink);
document.querySelector('input').addEventListener('blur', labelGrow);
function labelShrink() {
document.querySelector('.inputLabel').style.fontSize = ".75rem";
}
function labelGrow() {
if (!document.querySelector('.inputField').value) {
document.querySelector('.inputLabel').style.fontSize = "1.5rem";
}
}Run Code Online (Sandbox Code Playgroud)
.inputContainer {
position: relative;
}
.inputLabel {
position: absolute;
z-index = -1;
padding: .25rem 0 0 .25rem;
font-size: 1.5rem;
user-select: none;
transition: font-size .25s;
}
.inputField {
padding: .75rem 0 0 0;
font-size: 2rem;
background-color: transparent;
}Run Code Online (Sandbox Code Playgroud)
<div class="inputContainer">
<label class="inputLabel" for="userName">User Name</label>
<input class="inputField" type="text" name="userName">
</div>Run Code Online (Sandbox Code Playgroud)
当我用于console.log调试时,我通常使用如下所示的一行代码。
console.log("totalLength " +totalLength);
我的输出包括变量名称及其值。
但这有速记吗?或者是否有更好/更快/更方便的代码行来监视变量?非常感谢!
我正在学习Javascript技巧,我相信我偶然发现了一个错误isNaN().
这是测试代码.
var x = "1000";
Answer = isNaN(x);
console.log(Answer);
Run Code Online (Sandbox Code Playgroud)
控制台日志返回"false",表示Javascript将"1000"视为数字.我以为里面的任何东西都" "被认为是一根绳子.显然并非总是如此.如果我错了,也许有人有一些可以让我直截了当的见解.