在JS中,定义的所有对象都具有toString()方法。Number类型的toString()方法比较特殊,有默认模式和基模式两种。
默认模式:
var num1 = 12;
var num2 = 12.0;
console.log(num1.toString()); //12
console.log(num2.toString()); //12
无论你用什么表示法声明数字,默认模式只是按十进制返回。
基模式:
var num = 12;
alert(num.toString(2)); //1100
alert(num.toString(8)); //14
alert(num.toString(16)); //c
很明显,基模式就是把数值型转换成相应的进制。
在数组中求最大值的时候,我用了toString方法和eval方法,对这个eval和toString似懂非懂,求大神解答toString方法对数组的应用
var arr = [1,6,8,9,6,8,7,10,0,2];
var arr2 =eval( '(' + arr.toString() + ')');
alert(arr2); //2
var arr3 =Math.max( arr.toString() );
alert(arr3); //NaN
var arrMax =eval( 'Math.max(' + arr.toString() + ')');
alert(arrMax); //10
var arr = [ 1,5,6,5,7,6,80,2 ];
//arr.toString()的结果是1,5,6,5,7,6,80,2字符串
var arr2 =eval( '(' + arr.toString() + ')');
//结合起来就是eval('(1,5,6,5,7,6,80,2)');//其中(1,5,6,5,7,6,80,2)就是逗号运算符,取最后一个2
alert(arr2); //2
js的toString() 方法可把一个逻辑值转换为字符串,并返回结果。
而eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
参考:http://www.w3school.com.cn/jsref/jsref_toString_boolean.asp
toString方法可以用在数组上吗?为什么跟eval结合,每次得出的是数组的最后一位值?
var arr = [ 1,5,6,5,7,6,80,2 ];
var arr2 =eval( '(' + arr.toString() + ')');
alert(arr2); //2
toString()返回字符串
JS eval()函数
var arr = [1, 6, 8, 9, 6, 8, 7, 10, 0, 2];
var arr2 = eval('(' + arr.toString() + ')');//多数组toString默认调用jion方法,参数为逗号,eval执行一串逗号分隔的数组会返回最后一个项,自己百度查js 逗号运算符
alert(arr2); //2
var arr3 = Math.max(arr.toString());//返回字符,max需要数字参数
alert(arr3); //NaN
var arrMax = eval('Math.max(' + arr.toString() + ')');//这个是执行eval执行代码
alert(arrMax); //10
toString方法可以用在任何定法,其作用就是将内容转为字符串(开头可结尾之间用一对单引号或双引号包裹起来);
而eval方法作用是解析字符串,将字符串内容解析为可以被执行的js代码,否则会报错。
toString方法与eval方法结合如果操作的是数组,因为逗号表达式的关系,则一定会得到数组中的最后一位