js的一个小问题,小白不太理解

请问为啥,

    <script type="text/javascript">
        
        var [x,y] = [2,1];
        console.log(x,y);
    </script>

这样用console.log可以弹出2,1 。但是使用alert(2)只能弹出2,必须要用+","+字符串连接才能显示两个数字

阅读 2.1k
3 个回答

console.log 是可以接受多个参数的
而alert 只是接收一个参数

window.alert(message);

alert函数只接收一个参数,所以你需要把你输出的内容拼接成字符串传递进去。

var [x,y] = [2,1];
alert(x+","+y); //2,1

而console.log 是接收可变参数,有两种用法:
第一种:

console.log(obj1 [, obj2, ..., objN]);

你可以传入多个对象,包括数字、字符串等等,这些对象会依次在控制台打印出来,以空格分割(不知道为什么你说可以打印出2,1 应该打印出2 1才对)。

var [x,y] = [2,1];
console.log(x,y); //2 1

第二种:

console.log(msg [, subst1, ..., substN]);

类似于C语言的printf函数,第一个参数传入带格式控制符的字符串,后面的参数按照格式依次传入。

var [x,y] = [2,1];
console.log("%d,%d",x,y); //2,1

clipboard.png
console.log准确来说不是弹出,而是在控制台打印一些信息。这两个函数传入的参数,和输出的结果都有不同。
console.log() 可以打印任何类型的数据,而 alert() 只能输出string。

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