我有以下代码片段,
var code = 895804220010013030;
var last = code.slice(-2);
var n = last.includes(00, 01, 10, 11, 20, 21, 30, 31 );
if (n===true) {
alert(n)
} else {
alert('false')
}
Run Code Online (Sandbox Code Playgroud)
但它会引发语法错误,它有效的唯一方法是将引号放在数字上
var code = 895804220010013030;
Run Code Online (Sandbox Code Playgroud)
但我需要在不加引号的情况下运行它。
改变这个:
var last = code.slice(-2);
Run Code Online (Sandbox Code Playgroud)
对此:
var last = String(code).slice(-2);
Run Code Online (Sandbox Code Playgroud)
或这个 :
var last = code.toString().slice(-2);
Run Code Online (Sandbox Code Playgroud)
为什么?
因为slice()是String不是Number. 它提取字符串的一部分并将其作为新字符串返回,而不修改原始字符串。
更新
基于第一条评论。
var code = 130031;
var last = code.toString().slice(-2);
var n = [00, 01, 10, 11, 20, 21, 30, 31].includes(last);
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请阅读包含内容