小编Nic*_*ons的帖子

为什么em的行为不符合定义

我可能是新来emCSS,但下面的例子似乎有些奇怪...

文档说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,或者某种东西......

为什么?我究竟做错了什么?

html css

21
推荐指数
4
解决办法
907
查看次数

SAFARI : Unexpected token '='. Expected an opening '(' before a method's parameter list

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

所以我尝试在()任何地方添加,在数组周围,之前,之后等等。没有任何效果。

javascript safari

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

Array.fill 需要 1-3 个参数,得到 0?

我正在将我的反应应用程序迁移到打字稿,并且遇到了这些代码块的问题:

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。未提供值参数

我明白这告诉我什么,但如何重构这段代码或让编译器忽略它?

arrays typescript

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

当日志后声明的内部函数具有相同的变量名称时,为什么内部函数中的变量返回nan

这里发生了什么事?如果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 function

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

javascript如何解析参数?

我是一个陌生的人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)?显然,两个签名都没有位置匹配吗?那么,它在内部如何工作?如何在自己的功能中使用此模式?

javascript

8
推荐指数
2
解决办法
105
查看次数

为什么我的变量显示它已被弃用?

我的编辑器 (VS Code) 显示我的变量名已被弃用。从第 2 行开始,它有一个斜线。你能帮我吗?

let name = 'Mark';
name = 5;
console.log(name);
Run Code Online (Sandbox Code Playgroud)

javascript

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

React JS 获取数组中数字的总和

我有这个数组

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)

javascript arrays sum ecmascript-6 reactjs

7
推荐指数
2
解决办法
4万
查看次数

ReferenceError:初始化前无法访问。这是循环依赖吗?

在 中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如果先加载会出现错误吗?

node.js es6-modules

7
推荐指数
0
解决办法
1919
查看次数

如何检测函数是否被正常调用或作为标记模板文字调用?

我想创建一个可以正常调用的函数:

myFn(arg1, arg2)
Run Code Online (Sandbox Code Playgroud)

或者作为标记模板文字:

myFn`text ${someVar}`
Run Code Online (Sandbox Code Playgroud)

在 的实现中myFn,是否可以检测它是正常调用还是作为标记模板文字调用?传递给模板文字的参数具有特定的模式(第一个参数是字符串数组,附加参数(如果存在)将比第一个参数中数组的长度少一个),因此我可以根据该模式进行检测。但理论上有人可以将相同的参数模式传递给正常的函数调用。

除了参数模式检测之外,是否有任何特殊的方法来检测它的调用方式?

javascript ecmascript-6 template-literals tagged-templates

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

为什么我不能在 ES6 类中使用 let、const 或 var 关键字声明变量,但可以直接声明它?

对于以下代码,我想知道 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 class ecmascript-6 reactjs es6-class

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