3-12 为什么这么写不对~

3-12 为什么这么写不对~

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

<title>变量、作用域</title>

</head>

<body>

<script type="text/javascript">

    var a = {name: 'xm'}, b = [4];

/*此处添加代码*/

b=[a,b];

b=b[0];

a=b[1];

console.log(a,b);

</script>

</body>

</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
卡布琦诺 2018-06-26 14:17:31

http://img1.sycdn.imooc.com//climg/5b31d8750001774a10660316.jpg

(1)这是因为当执行b=[a,b];的时候,b=[a,b];重置b = [4];变成b=[a,b](也就是b = [{name:'xm'},[4]];)

(2)执行b=b[0];的时候,b[0]中的b使用的是b=[a,b],因此可以获取到b数组的第一个元素

(3)执行a=b[1];的时候,b=[a,b]数组被重置为b=b[0]数组,即这个时候的b[1]中的b指的是b=b[0]=[{name:'xm'}];在b=b[0]=[{name:'xm'}];中只有一个数组元,因此角标是[0],由于没有第二项数组元素,所以a=b[1];获取不到数组元素。

希望可以帮到你~

卡布琦诺 2018-06-24 15:18:15

调换a和b的值,那么b就是对象,a是数组,可以参考下列的代码

http://img1.sycdn.imooc.com//climg/5b2f45ab0001e32a04340236.jpg

  • 提问者 毛Bing #1
    但是为什么这么写不对呢?
    2018-06-26 10:08:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
进击JavaScript核心 2018
  • 参与学习       466    人
  • 提交作业       74    份
  • 解答问题       635    个

JavaScript不仅能实现静态页面到动态特效的转变,还能完成数据的动态交互,但是关于js到底功能有多强大,大家还是有所期待的,本路径将带你深入到js中,一一揭开JavaScript的神秘面纱。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师