Javascript中比较中的字符串和数字

Nit*_*its 0 javascript

var result='16'>'141';
console.log(result);
Run Code Online (Sandbox Code Playgroud)

var result='16'>141;
console.log(result);
Run Code Online (Sandbox Code Playgroud)

那是因为如果任何操作数不是字符串,那么两个操作数都变成数字,并且比较变得正确.

有谁能告诉我.如何评估下面的等式?

var result='a'>11;
console.log(result);
Run Code Online (Sandbox Code Playgroud)

'a'>11=> Answer should be true instead of false;
Run Code Online (Sandbox Code Playgroud)

因为'a' will convert to int 97 > 11 => true那时它是 如何评价的false.如果我这样'a'>'11' => then it answer comes true.

var result='a'>'11';
    console.log(result);
Run Code Online (Sandbox Code Playgroud)

Ori*_*iol 5

当您将非数字字符串转换为数字时'a',您会得到NaN:

console.log(+'a');        // NaN
console.log('a' * 1);     // NaN
console.log(Number('a')); // NaN
Run Code Online (Sandbox Code Playgroud)

并且NaN总是false在关系比较中产生.三分法不成立:

console.log(NaN < 0);  // false
console.log(NaN > 0);  // false
console.log(NaN == 0); // false
Run Code Online (Sandbox Code Playgroud)

如果要转换'a'97,请使用charCodeAt:

console.log('a'.charCodeAt(0)); // 97
Run Code Online (Sandbox Code Playgroud)