当我Cmd + click处于函数的执行行 ( f()) 时,它会将我带到定义该函数的位置 ( f(){})。既然我已经看完了这个功能,如果有一个“后退”按钮可以回到之前的位置就太好了。有谁知道这样的功能或有帮助的功能?
PS我用的是Mac
我读到第一个出现的模块是最先加载的。这不是真的。
在我回答这个问题之前,我学到了:
这让我可以解释这样的基本场景:
2.js日志2和导出functionTwo(调用时为 logs "2-export")。
1.js记录1和导入并functionTwo从2.js.
无论这些模块的源顺序如何,2.js总是先执行,因为1.js之前不能执行2.js——它依赖于2.js向它导出的某些东西。控制台总是显示:'2, 1, 2-export'。
但是,对于这两种情况,这是一个不完整的答案:
ps
我们所说的裁决是否仅适用于没有该async属性的模块?具有该async属性的模块是否真的在加载后立即执行?
document.addEventListener('DOMContentLoaded', () => {
});
Run Code Online (Sandbox Code Playgroud)
我读到这个事件侦听器确保对于常规脚本,JS 不会引用尚未加载的节点。内容在DOMContentLoaded 被触发后执行)。
我还读过一个模块在 DOMContentLoaded被触发之前被执行(由于defer它内置的属性)。
我使用的模块似乎不需要DOMContentLoaded监听器。我可以确认DOMContentLoaded他们不需要监听器来正确访问节点吗?
另外,我想不出如何测试这个,所以我在这里问。如果你知道我怎么做,请分享!
查看此MDN 页面上给出的示例
const o = {a: 0};
Object.defineProperty(o, 'b', { get: function() { return this.a + 1; } });
console.log(o.b) // Runs the getter, which yields a + 1 (which is 1)
console.log(o)Run Code Online (Sandbox Code Playgroud)
为什么,当我登录时o,为什么我:
看不到它node.js?
看到它,但它在 Chrome 中显示为灰色?
我刚刚发现__proto__不是对象的属性。它是Object.prototype( source )的访问器属性。Chrome 的控制台肯定让我感到困惑:/。
所以当我们看到类似的东西时:
我们做这样的事情:
o = {}; o.valueOf()
正在逐步发生什么?我不太清楚 Object.prototype 有什么作用。__proto__现在必须玩,如果它有任何帮助。
我正在重新阅读我保存的 MDN 文档和文章,但同时我非常感谢我的o示例中的分步说明。
我猜:
我知道这Object.prototype.__proto__是一个访问器属性,它将返回一个“特殊的、隐藏的”[[prototype]]“内部插槽”/属性。
在 的情况下o = {}; o.valueOf(),我怀疑o以某种方式有能力访问Object.prototype.__proto__将返回/引用的Object.prototype。这对我来说根本没有意义(如果你能明白Object.prototype.__proto__为什么不直接看,Object.prototype那么我确定这是不对的。
.wrapper {
border: 5px solid pink;
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.a-fc {
background-color: purple;
width: 300px;
/*height: 100px;*/
}
.b-fc {
background-color: orange;
display: flex;
flex-direction: column;
/*flex-wrap: wrap;*/
flex-basis:70px;
flex-grow:1;
}
.b-fc > * {
flex-grow: 1;
flex-basis: 100px;
}
.b-fc > *:nth-child(1) {
background-color: red;
}
.b-fc > *:nth-child(2) {
background-color: blue;
}
.b-fc > *:nth-child(3) {
background-color: green;
}Run Code Online (Sandbox Code Playgroud)
<div class="wrapper">
<div class="a-fc">
<div>a1</div>
</div>
<div class="b-fc">
<div>b1</div><div>b2</div><div>b3</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
FC = 弹性容器。FI = …
我想澄清我对这里发生的事情的理解。任何改善我目前理解的细节将不胜感激。
function Timer() {
let [time, setTime] = useState(5);
useEffect(() => {
let timer = setInterval(() => {
setTime(time - 1);
}, 1000)
return () => clearInterval(timer);
}, );
return <div>{time}</div>
}
export default Timer
Run Code Online (Sandbox Code Playgroud)
https://codesandbox.io/s/cranky-chaplygin-g1r0p
time正在初始化为5.useEffect已读。它的回调必须准备好稍后触发。div呈现。useEffect的回调被执行。setInterval的回调准备好触发。当然useEffect'sreturn语句不会在这里触发,因为如果它触发它会取消计时器(并且计时器确实有效)。setInterval的回调触发将time( 到 4)的状态更改。time,一个新变量,被初始化为新的时间状态。useEffect读取一个新的,它的回调准备稍后触发。(发生这种情况是因为没有 的第二个参数useEffect())。return语句。这有效地重新渲染了div.useEffect的return语句会执行(这会禁用 …<svg width="200" height="200" style="border: solid blue 5px;">
<rect x="0" y="0" height="50" width="100" stroke="purple" stroke-width="30px" fill="green"/>
</svg>Run Code Online (Sandbox Code Playgroud)
需要什么才能使rect右侧靠在其容器的左上角?
解决方案 - 但不知道为什么
<svg width="200" height="200" style="border: solid blue 5px; overflow: visible">
<rect x="15" y="15" height="50" width="100" stroke="purple" stroke-width="30px" fill="green"/>
</svg>Run Code Online (Sandbox Code Playgroud)
function F() {};
F.prototype = "red";
o = new F();
Run Code Online (Sandbox Code Playgroud)
我发现上面的代码片段很有趣,当在控制台中复制时,它显示因为对象的[[prototype]]插槽不能是对象或以外的任何东西null,"red"是不可接受的 &o的[[prototype]]插槽似乎只是默认为Object.prototype. 我可以确认这是当它们的构造函数.prototype不是对象时实例所做的事情吗?
(开放的观点认为这是一个不切实际的问题,因为我们为什么要将构造函数重新初始化为.prototype对象以外的东西......但我想我无论如何都会问只是为了检查)。
我正在阅读这些 MDN CSS 参考概念文章,我发现术语令人困惑或不精确。
上一篇文章中说:
display: inline参与内联格式化上下文的元素(内联级框),或仅包含display: block参与块格式化上下文的元素(块级框)。这似乎是一个不切实际的定义,尤其是当我们刚刚了解到normal flowhas 的子元素同时具有display: block&时display: inline。这里有两个不同的概念还是我误解了?由具有 display: block 的元素生成的框称为“块框”或简称为“块”。
然后,在文章的最后写道:
块盒是块级盒,也是块容器。
在第一个定义中,从技术上讲,元素 withdisplay: block可以出现在任何地方。第二个说它必须显示为仅包含块或内联的父级的子级。
在关于getter 的MDN 文档中,我看到:
它不得与另一个 get 或同一属性的数据条目一起出现在对象文字中(
{ get x() { }, get x() { } }并且{ x: ..., get x() { } }被禁止)。
我将此解释为一个对象中不能有超过 1 个 getter 方法,但这似乎不是问题。
o1 = {
get fun1() {console.log(5)},
get fun2() {console.log(6)},
};
o1.fun1;
o1.fun2;Run Code Online (Sandbox Code Playgroud)
我的理解对吗?
div:nth-child(n+2):nth-child(odd):nth-child(-n+9) {
background-color: red;
}Run Code Online (Sandbox Code Playgroud)
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
<div>13</div>
<div>14</div>
<div>15</div>Run Code Online (Sandbox Code Playgroud)
我不明白为什么div选择了某些选择为红色的 s。我们可以一步一步地解释吗?我非常了解一个nth-child是如何工作的——但当它们相互结合时就不行了。
例如,为什么不从 (0 + 2) 中选择第二个 div?
javascript ×9
css ×5
html ×5
flexbox ×1
react-hooks ×1
reactjs ×1
safari ×1
script-tag ×1
svg ×1