小编wha*_*les的帖子

Chrome控制台已声明变量为let发出未定义的引用错误

最近我在chrome控制台遇到了这个奇怪的事情.在这里,我故意为a分配一个未定义的东西,以便抛出错误.

let a = werwr // Uncaught ReferenceError: werwr is not defined
Run Code Online (Sandbox Code Playgroud)

然后,当我尝试为a分配合法的东西时,发生了这种情况:

let a = "legit string"   // Uncaught SyntaxError: Identifier 'a' has already been declared
Run Code Online (Sandbox Code Playgroud)

所以我不能使用"let",因为已经声明了.所以我试图将其他东西重新分配给"已经宣布为"

a = "legit string"   //  Uncaught ReferenceError: a is not defined
Run Code Online (Sandbox Code Playgroud)

所以我似乎无法将其他内容重新分配给a,但同时,a已经声明,所以我不能再使用let了.

我理解声明和赋值变量之间的区别.但是在这里似乎不能再做了.这是否与控制台中"let"的范围有关?因为同样的事情完全适用于"var"

var a = werwr 
// Uncaught ReferenceError: werwr is not defined

a = ”legit string“  
// ”legit string“

var a = "legit string" 
// Uncaught SyntaxError: Identifier 'a' has already been declared
Run Code Online (Sandbox Code Playgroud)

跟进

"手动"提升let语句与隐式大小写之间似乎存在一些差异.

throw new Error
let example …
Run Code Online (Sandbox Code Playgroud)

javascript scope let google-chrome-devtools ecmascript-6

12
推荐指数
1
解决办法
3213
查看次数

使用引用变量指向比较器?

我在Comparator练习时遇到了一种新的创作方式。任何人都可以解释一下吗?

class Checker{    
    public Comparator<Player> desc = new Comparator<Player>() {
        public int compare(Player A, Player B){
            if(A.score < B.score){
                return 1;
            }
            else if(A.score == B.score){
                return B.name.compareTo(A.name);
            }
            else{
                return -1;
            }
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

过去,我只看到人们这样做:

class Checker implements Comparator{
    @Override
    public int compare(Player A, Player B){
        ..........
        ..........
    }
}
Run Code Online (Sandbox Code Playgroud)

所以第一个例子对我来说真的很新颖(因为我是初学者?)。这是有道理的:desc可以是类的属性/实例变量,Checker它指向Comparator类/接口的新实例。然而,这两种不同的做事方式背后还有更多的故事吗?它们都需要创建一个不同的类,所以我看不出如何更有条理。

java comparable comparator

5
推荐指数
1
解决办法
1111
查看次数

对使用符号符号到达 Ruby Hash 内部的百万种方法感到困惑

我沉迷于访问哈希的百万种方式。

condition1 = {
    "e" =>1
}

condition2 = {
    "e":1
}

condition3 = {
    :"e" =>3
}


condition4 = {
    e:4
}


condition5 = {  # 100% sure not working because of syntax error
    e=>5
}

condition6 = {  # 100% sure not working because of syntax error
    :e:6
}  

condition7 = {
    :e=>7
}

puts condition1["e"]
puts condition2["e"]
puts condition3[:e]
puts condition4[:e]
puts condition7[:e]
Run Code Online (Sandbox Code Playgroud)

输出

1
                                     (nothing)
3
4
7
Run Code Online (Sandbox Code Playgroud)

第一个问题:对于第一个 2 puts 语句,为什么它适用于第一个而不适用于第二个?在两个哈希中,我都使用字符串作为键。是不是因为我在第一个哈希中使用了“=>”,因此字符串实际上被读取为符号?所以它实际上被处理为:“e”=>1?

第二个问题:这引出了我关于第三个条件的第二个问题,有人告诉我,如果我在引用之前使用符号符号,那么在后台发生的情况是引用将被忽略。这就是为什么我能够通过简单的 …

ruby hash

5
推荐指数
1
解决办法
1469
查看次数

返回或打印StringBuilder?Java的

我对StringBuilder有点困惑.看来当我打印一个StringBuilder时,不需要添加.toString(),因为它会自动给我一个字符串表示.但是,当我返回一个StringBuilder对象时,我必须添加.toString().真的吗?为什么?

另外,我对以下代码感到有点困惑:

package com.tutorialspoint;
import java.lang.*;
public class StringBuilderDemo {
    public static void main(String[] args) {

        StringBuilder str = new StringBuilder("India ");
        System.out.println("string = " + str);

        // append character to the StringBuilder
        str.append('!');
        // convert to string object and print it
        System.out.println("After append = " + str.toString());

        str = new StringBuilder("Hi "); 
        System.out.println("string = " + str);
        // append integer to the StringBuilder
        str.append(123);
        // convert to string object and print it
        System.out.println("After append = " + str.toString());
    } …
Run Code Online (Sandbox Code Playgroud)

java

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

github API 不支持的媒体类型 415

我在 Meteor 中使用 github API 但无法解决这个问题:

此代码尝试获取某个 repo 的总流量。

HTTP.call( 'GET', 'https://api.github.com/repos/hackmdio/hackmd/traffic/views', 
    {
        headers: 
        {
            'Content-Type':'application/json',
            "Accept":"application/vnd.github.v3+json",
            "User-Agent": "whales"
        },
    },
    function( error, response ) {
  if ( error ) {
    console.log('---------------------------error occurred-----------------------------------')
    console.log('---------------------------error occurred-----------------------------------')

    console.log( error );
  } else {

    console.log('--------------------------data got it!!-------------------------------------')
    console.log('--------------------------data got it!!-------------------------------------')

    console.log(response);
  }
});
Run Code Online (Sandbox Code Playgroud)

错误:

{
  "message": "If you would like to help us test the Repo Traffic API during its preview period, you must specify a custom media type in the 'Accept' header. …
Run Code Online (Sandbox Code Playgroud)

api http github github-api meteor

3
推荐指数
1
解决办法
3415
查看次数

为什么我不能在 Java 中声明同一个变量两次?

这里有类似的问题,但他们并没有真正回答我的问题。

所以我很好奇为什么我们不能在Java中声明同一个变量两次?

例如:

  int a = 4;
  int a = 6;
Run Code Online (Sandbox Code Playgroud)

这在 Java 中实际上行不通。

然而在 javascript 中,这实际上是有效的:

var a = 1;
var a = 2;
Run Code Online (Sandbox Code Playgroud)

在javascript中,人们说声明立即被移到开头,这样它就变成了这样:

var a;
a = 1;
a = 2;
Run Code Online (Sandbox Code Playgroud)

javascript java

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

画布仅缩放大小而不缩放坐标

我正在尝试按比例对画布元素进行动画处理。是否可以仅缩放元素的大小(宽度和高度)而不缩放坐标系?标准 ctx.scale(x,y) 似乎对两者都有影响。

如果运行此代码片段,您将看到该元素变得更大。然而,它也在从一个位置转移到另一个位置。

var c = document.getElementById("c");
var ctx = c.getContext("2d");
var cH; 
var cW;
cW = window.innerWidth;
cH = window.innerHeight;
c.width = cW * devicePixelRatio;
c.height = cH * devicePixelRatio;
ctx.scale(devicePixelRatio, devicePixelRatio);
var startX = 200;
var startY = 100;
var currentScale = 0.1

function animateCloud () {
  // draw cloud shape
  ctx.scale(currentScale, currentScale)
  ctx.beginPath();
  ctx.moveTo(startX, startY);
  ctx.bezierCurveTo(startX - 40, startY + 10, startX - 20, startY + 180, startX + 60, startY + 70);
  ctx.bezierCurveTo(startX …
Run Code Online (Sandbox Code Playgroud)

javascript html5-canvas

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

多个,但只运行第一个?JavaScript的

所以我写这篇文章是为了我的第一份计算机科学课.但是,页面返回如果是输入gpa(A),结果是3.这就像只有第一个条件if正在运行.我换周围A,B,C2,3,4但它总是第一个if不管是什么gpa(r)是.这是怎么发生的?

    var gpa = function(r) {
        if (r = "B"){
            return 3;
        } 
        if (r = "C"){
            return 2;
        }
        if (r = "A"){
            return 4;
        }
     }
Run Code Online (Sandbox Code Playgroud)

javascript

-1
推荐指数
1
解决办法
45
查看次数

如果我们已经拥有Collection,为什么要创建集合?

所以我知道Collections是一个实用程序类,Collection是一个基本接口.但是,我仍然不明白为什么集合中的方法不能放入集合中?这只是为了让事情变得更容易吗?

集合和集合中的方法之间是否存在差异?也许某些方法是由不同的集合实现的?因此对于更通用的方法,它们被抛入实用程序类集合中?

我想我只是很好奇你如何决定将哪些内容投入到收藏或收藏中?谁能提供一些这些例子?

java collections

-3
推荐指数
1
解决办法
49
查看次数