2 tjh666slj tjh666slj 于 2016.01.21 11:26 提问

关于JavaScript中的toString方法

在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

6个回答

danielinbiti
danielinbiti   Ds   Rxr 2016.01.21 12:09
已采纳
 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
showbo
showbo   Ds   Rxr 2016.01.21 12:14

    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
wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.21 11:30

js的toString() 方法可把一个逻辑值转换为字符串,并返回结果。
而eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
参考:http://www.w3school.com.cn/jsref/jsref_toString_boolean.asp

wojiushiwo945you
wojiushiwo945you 回复凸必囊波丸: 可以用在数组上的。你可以参考w3school上的教程,很详细的,还可以自己写代码在线测试。
接近 2 年之前 回复
tjh666slj
tjh666slj 谢谢您,toString方法可以用在数组上吗?为什么跟eval结合,每次得出的是数组的最后一位值?
接近 2 年之前 回复
tjh666slj
tjh666slj 谢谢您,toString方法可以用在数组上吗?为什么跟eval结合,每次得出的是数组的最后一位值?
接近 2 年之前 回复
enpterexpress
enpterexpress   2016.01.21 11:37

toString()返回字符串
JS eval()函数

qq_19891827
qq_19891827   2016.01.21 14:50

toString方法可以用在任何定法,其作用就是将内容转为字符串(开头可结尾之间用一对单引号或双引号包裹起来);
而eval方法作用是解析字符串,将字符串内容解析为可以被执行的js代码,否则会报错。
toString方法与eval方法结合如果操作的是数组,因为逗号表达式的关系,则一定会得到数组中的最后一位

tjh666slj
tjh666slj   2016.01.21 11:36

toString方法可以用在数组上吗?为什么跟eval结合,每次得出的是数组的最后一位值?

var arr = [ 1,5,6,5,7,6,80,2 ];

var arr2 =eval( '(' + arr.toString() + ')');

alert(arr2);        //2

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!