如果我在浏览器控制台输入这个表达式(带有严重的口音):
Math.sin`1`
它将返回:
0.8414709848078965
但是如果我输入这个表达式(带单引号):
Math.sin'1'
它将返回错误:
语法错误:意外的数字
你能解释一下为什么会这样吗?
tag`template literal`
是模板literal语法的一部分。它不适用于其他字符串文本。
这就是所谓的标记模板文字:
fn`string`
假设fn
是一个函数,只会导致调用fn
,并将string
作为第一个参数。
当您需要进行${..}
替换时,标记的模板文字函数更有用。在MDN示例中:
var person = 'Mike';
var age = 28;
function myTag(strings, personExp, ageExp) {
var str0 = strings[0]; // "that "
var str1 = strings[1]; // " is a "
return str0 + personExp + str1 + (
ageExp > 99
? 'centenarian'
: 'youngster'
);
}
console.log(myTag`that ${ person } is a ${ age }`);
问题内容: 我想知道,当我在Reddit线程中发现问题时,为什么要委托给。提到的代码片段如下所示(JDK 7u25): Math.java : StrictMath.java : 第二项声明对我来说是合理的。状态文档指出: 鼓励代码生成器使用特定于平台的本机库或微处理器指令(如果可用)(…) 问题是 :实现平台特定的本机库不够吗?除了已安装的JRE,JIT还可以了解有关平台的更多信息(请仅关注这种
此函数返回x弧度的正弦值。 语法 (Syntax) Math.sin(x) 参数 (Parameter) X1 - 代表一个数字 例子 (Example) console.log("---Math.sin()---") console.log("Math.sin(Math.PI/2): "+Math.sin(Math.PI/2)) console.log("Math.sin(Ma
问题内容: 我正在使用,但它会返回如下所示的意外结果: 为什么我得到这些结果? 问题答案: 您是否要使用学位?请记住,并且期望弧度。
问题内容: -1作为转换为二进制的int表示为321。当我右移31次时,得到1(31个0和一个1)。但是当我右移32次时,我又得到-1。它不应该等于0吗? 问题答案: Java规范对移位运算符的解释如下: 如果左侧操作数的提升类型为,则仅将右侧操作数的最低5位用作移位距离。就像右手操作数受到掩码值的按位逻辑AND运算符(第15.22.1节)一样。因此,实际使用的移动距离始终在0到31(含)范围内。
问题内容: 我想知道这是否是JVM错误? Java版本“ 1.6.0_0” OpenJDK运行时环境(IcedTea6 1.4.1)(6b14-1.4.1-0ubuntu13)OpenJDK 64位服务器VM(内部版本14.0-b08,混合模式) 当我运行它时会产生这个: 对于32的任意倍数,我也得到相同的结果。 我需要编写自己的右移来检查吗? 问题答案: http://docs.oracle.c
问题内容: 当我尝试对文件进行排序并将其输出保存在自身中时,就像这样 file1的内容将被完全删除,而当我尝试使用“ tee”命令执行同样的操作时 它运行良好 [ed:仅对具有幸运时机的小文件“运行良好”,会在大文件上或在无用的进程调度中导致数据丢失] ,即它会覆盖file1本身的排序输出并在标准输出中显示。 有人可以解释为什么第一种情况不起作用吗? 问题答案: 它不起作用,因为’>’重定向意味着