最近我在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) 我在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
类/接口的新实例。然而,这两种不同的做事方式背后还有更多的故事吗?它们都需要创建一个不同的类,所以我看不出如何更有条理。
我沉迷于访问哈希的百万种方式。
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?
第二个问题:这引出了我关于第三个条件的第二个问题,有人告诉我,如果我在引用之前使用符号符号,那么在后台发生的情况是引用将被忽略。这就是为什么我能够通过简单的 …
我对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) 我在 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) 这里有类似的问题,但他们并没有真正回答我的问题。
所以我很好奇为什么我们不能在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) 我正在尝试按比例对画布元素进行动画处理。是否可以仅缩放元素的大小(宽度和高度)而不缩放坐标系?标准 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)所以我写这篇文章是为了我的第一份计算机科学课.但是,页面返回如果是输入gpa(A)
,结果是3
.这就像只有第一个条件if
正在运行.我换周围A
,B
,C
和2
,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) 所以我知道Collections是一个实用程序类,Collection是一个基本接口.但是,我仍然不明白为什么集合中的方法不能放入集合中?这只是为了让事情变得更容易吗?
集合和集合中的方法之间是否存在差异?也许某些方法是由不同的集合实现的?因此对于更通用的方法,它们被抛入实用程序类集合中?
我想我只是很好奇你如何决定将哪些内容投入到收藏或收藏中?谁能提供一些这些例子?
java ×4
javascript ×4
api ×1
collections ×1
comparable ×1
comparator ×1
ecmascript-6 ×1
github ×1
github-api ×1
hash ×1
html5-canvas ×1
http ×1
let ×1
meteor ×1
ruby ×1
scope ×1