sort函数的输出

code1

var fruit = ['cherries', 'apples', 'bananas'];
fruit.sort(); 

运行后输出结果是
var fruit = ['cherries', 'apples', 'bananas']; fruit.sort();
["apples", "bananas", "cherries"]

code2

var fruit = ['cherries', 'apples', 'bananas'];
fruit.sort(); 
console.log(fruit);

运行后输出结果还是
var fruit = ['cherries', 'apples', 'bananas']; fruit.sort();
["apples", "bananas", "cherries"]

为何不是
var fruit = ['cherries', 'apples', 'bananas']; fruit.sort();
["apples", "bananas", "cherries"]
["apples", "bananas", "cherries"]

阅读 2.2k
1 个回答

你第一次的代码为


var fruit = ['cherries', 'apples', 'bananas'];
fruit.sort();

然后输出了["apples", "bananas", "cherries"]
你可能会认为sort内部会有输出语句,然而不是这样,将一段代码贴在chrome的控制台运行时,他默认会输入整个表达式的返回值,而这里的返回值即为["apples", "bananas", "cherries"]
而你下面的那段代码,console.log(fruit)的返回值为undefined。所以只输出了一次,那一次为console.log的作用,而不是sort的内部有输出语句。在运行之后,你应该还能看到一个<符号,旁边是undefined。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题