许多数组函数用来处理字符串很方便。虽然字符串没有这些函数,但可以通过“借用”数组的非变更方法来处理字符串:
a.join; // undefined a.map; // undefined
var c = Array.prototype.join.call( a, "-" );
var d = Array.prototype.map.call( a, function(v){
return v.toUpperCase() + "."; } ).join( "" );
c; // "f-o-o" d; // "F.O.O."
var c = a
// 将a的值转换为字符数组 .split( "" )
// 将数组中的字符进行倒转 .reverse()
// 将数组中的字符拼接回字符串 .join( "" );
c; // "oof"
tofixed(..)
var a = 42.59;
a.toPrecision
1 ); // "4e+1"
2 ); // "43"
3 ); // "42.6"
4 ); // "42.59"
5 ); // "42.590" 6 ); // "42.5900"
//误差
return Math.abs( n1 - n2 ) < Number.EPSILON;
ES6 Object.is
vara=2/"foo";
varb=-3*0;
Object.is( a, NaN );
Object.is( b, -0 );
Object.is( b, 0 );
// true // true
// false
对于 ES6 之前的版本,Object.is(..) 有一个简单的 polyfill:
if (!Object.is) {
Object.is = function(v1, v2) {
// 判断是否是-0 if(v1===0&&v2===0){
return1/v1===1/v2; }
// 判断是否是NaN if(v1!==v1){
return v2 !== v2; }
// 其他情况
return v1 === v2; };
}
[[class]]
Object.prototype.toString.call( null );
// "[object Null]"
~x === -(x+1)