我可能是新来em
的CSS,但下面的例子似乎有些奇怪...
文档说1em等于font-size.我的例子中的所有内容都是默认的.所以8em
应该是8行文字的大小,对吗?
#my-div {
background-color: red;
height: 8em;
}
Run Code Online (Sandbox Code Playgroud)
<div id="my-div">
One<br/>
Two<br/>
Three<br/>
Four<br/>
Five<br/>
Six<br/>
Seven<br/>
Eight
</div>
Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/q8vs7r4u/1/
有8条线,但8 em
只有7 条线.它似乎1em
只覆盖了一条线的7/8,或者某种东西......
为什么?我究竟做错了什么?
Got this code, that works perfectly in all browsers but not in Safari (Version 11.1.2).
class Account {
accountFields = ['field1', 'field2', 'field3']
}
Run Code Online (Sandbox Code Playgroud)
Getting the following error in Safari debugger:
Unexpected token '='. Expected an opening '(' before a method's parameter list
所以我尝试在()
任何地方添加,在数组周围,之前,之后等等。没有任何效果。
我正在将我的反应应用程序迁移到打字稿,并且遇到了这些代码块的问题:
const weekNumber = [
...Array(CURRENT_WEEK_NUMBER)
.fill()
.map((_, i) => i + 1)
];
const weekLabels = [
...Array(17)
.fill()
.map((_, i) => i + 1),
'Playoffs: Wild Card',
'Playoffs: Divisional Round',
'Playoffs: Conference Championship',
'Playoffs: Super Bowl'
];
Run Code Online (Sandbox Code Playgroud)
预期有 1-3 个参数,但得到 0。未提供值参数
我明白这告诉我什么,但如何重构这段代码或让编译器忽略它?
这里发生了什么事?如果console.log
在内部函数中声明一个变量,则会得到不同的结果
我知道var具有功能范围,内部函数可以从其父级访问变量
function outer() {
var a = 2;
function inner() {
a++;
console.log(a) //log NaN
var a = 8
}
inner()
}
outer()
Run Code Online (Sandbox Code Playgroud)
function outer() {
var a = 2;
function inner() {
a++;
console.log(a) //log 3
var b = 8
}
inner()
}
outer()
Run Code Online (Sandbox Code Playgroud)
NaN
在第一个示例中返回日志3
,在第二个示例中返回日志
我是一个陌生的人JavaScript
,来自不同的编程背景,我很难理解如何JavaScript
知道如何解析传递给函数的参数。
让我们看一个简单的例子。从jQuery文档中 .on
,我看到2个不同的签名:
.on(事件[,选择器] [,数据],处理程序)
.on(事件[,选择器] [,数据])
但是,以下代码段可以产生完全有效的代码,并且可以完成预期的工作:
$(function() {
let dat = {a: 1, b: 2}
$('#do').on('click', dat, function(evt) {
alert(evt.data.b);
});
$('#do2').on('click', function(evt) {
alert("click");
});
})
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="do">
Click!
</button>
<button id="do2">
Click!
</button>
Run Code Online (Sandbox Code Playgroud)
如何JavaScript
“知道” dat
第一种情况下的数据(而不是selector
)?显然,两个签名都没有位置匹配吗?那么,它在内部如何工作?如何在自己的功能中使用此模式?
我的编辑器 (VS Code) 显示我的变量名已被弃用。从第 2 行开始,它有一个斜线。你能帮我吗?
let name = 'Mark';
name = 5;
console.log(name);
Run Code Online (Sandbox Code Playgroud) 我有这个数组
const data = [
{"One",prix:100},
{"Two",prix:200},
{"Three",prix:300}
]
Run Code Online (Sandbox Code Playgroud)
我想得到所有这些的总和,prix
如下所示:
sum = 600
Run Code Online (Sandbox Code Playgroud) 在 中index.js
,我有:
console.log("index.js loading...");
import express from "express";
export const app = express();
import { router as login } from "./login.js";
app.use("/login", login);
Run Code Online (Sandbox Code Playgroud)
在login.js
我有:
console.log("login.js loading...");
import express from "express";
import { app } from "./index.js";
import passport from "passport";
app.use(passport.initialize());
Run Code Online (Sandbox Code Playgroud)
当尝试运行时,我ReferenceError: Cannot access 'app' before initialization
在 中的最后一个语句中得到了一个login.js
。打印“login.js loading...”行,但不打印“index.js loading...”。
当这两个文件相互导入时,app
在 的第三行中是否未完全初始化index.js
?加载顺序是如何确定的?index.js
如果先加载会出现错误吗?
我想创建一个可以正常调用的函数:
myFn(arg1, arg2)
Run Code Online (Sandbox Code Playgroud)
或者作为标记模板文字:
myFn`text ${someVar}`
Run Code Online (Sandbox Code Playgroud)
在 的实现中myFn
,是否可以检测它是正常调用还是作为标记模板文字调用?传递给模板文字的参数具有特定的模式(第一个参数是字符串数组,附加参数(如果存在)将比第一个参数中数组的长度少一个),因此我可以根据该模式进行检测。但理论上有人可以将相同的参数模式传递给正常的函数调用。
除了参数模式检测之外,是否有任何特殊的方法来检测它的调用方式?
对于以下代码,我想知道 ES6 类中这种行为背后的原因:
class One {
//why the following code is not allowed.
let check = false;
const PI = 3.14;
var v = 'Hello';
//why the following code is allowed.
chk = false;
Pi = 3.14;
vv = "Hi";
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以编写如下代码,但我想知道上述代码背后的真正原因。
class Sample {
constructor(x, y) {
this.x= x;
this.y= y;
}
}
Run Code Online (Sandbox Code Playgroud) javascript ×7
ecmascript-6 ×3
arrays ×2
reactjs ×2
class ×1
css ×1
es6-class ×1
es6-modules ×1
function ×1
html ×1
node.js ×1
safari ×1
sum ×1
typescript ×1