老师这样写为什么不行?

老师这样写为什么不行?

<!DOCTYPE html> 

<html> 

<head> 

    <meta charset="UTF-8" /> 

    <title> arguments</title> 

</head> 

<body> 

   <p id="test" style="background-color: red; color: blue;">我是一个段落!</p>

<script type="text/javascript"> 

// 在此处补充代码

var test=document.getElementById('test');

var csschange=function(){

if(arguments.length==2){

       return arguments[0].style.arguments[1];

}else if(arguments.length==3){

       return arguments[0].style.arguments[1]=arguments[2]   

}else{

return false;

}

}


csschange(test,'background-color','orange');

</script> 

</body> 

</html>


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

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

5回答
好帮手慕星星 2020-04-06 09:53:31

同学你好,js中数据类型中有基本类型和引用类型,基本类型中包括字符串类型。但是变量的值是我们给予的,变量一开始并没有值,给变量赋什么类型的值,它就是什么类型。

祝学习愉快!

好帮手慕糖 2020-04-04 19:12:38

同学你好,字符串不可以作为变量,但是可以声明一个变量接收字符串,添加引号的都是字符串,不管是否是驼峰命名。

祝学习愉快~

  • 提问者 慕婉清6507108 #1
    变量不是分基本类型和引用类型吗?基本类型里包括字符串吧?
    2020-04-04 19:15:13
  • 提问者 慕婉清6507108 #2
    我再好好想想老师说的。
    2020-04-04 19:22:43
好帮手慕糖 2020-04-04 10:06:46

同学你好,关于你的问题,回答如下:

1、驼峰命名backgroundColor也是字符串,若是作为参数传递也需要添加引号。

2、老师第一次说的是:当属性名是变量的时候,通过点的方式进行设置,变量会直接作为属性名,而不是变量的值。所以我们这里可以使用[]。而不是当属性名为变量用点。表达的意思是使用变量的时候要用中括号。

3、设置这里没有直接使用background-color,这个是作为参数传递的。使用的是arguments[1],可以这里理解,arguments[1]是个变量,对应的值是background-color。

若是直接使用这个属性的时候用点,比如:直接使用background-color这个属性,就可以是:

arguments[0].style.background-color

若使用变量来表示这个属性,就需要使用中括号。例:

arguments[0].style[arguments[1]]

祝学习愉快~

  • 提问者 慕婉清6507108 #1
    字符串不也是可以作为变量吗?不管backgroundColor或者background-color不都是变量吗?
    2020-04-04 11:53:14
好帮手慕糖 2020-04-03 19:06:25

同学你好,background-color是字符串哦,如下,传入的时候是使用引号包裹的。

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

祝学习愉快~

  • 提问者 慕婉清6507108 #1
    感觉你还是讲的云里雾里。那我调用的时候不加引号,用驼峰形式命名可以吗?还有你第一次说的,当属性名为变量用点,‘background-color’不是变量吗?我只知道.名称等价于[‘名称’]。到底是怎么用呢?
    2020-04-03 19:50:50
  • 提问者 慕婉清6507108 #2
    我用.的形式,然后下面变为backgroundColor行不行?
    2020-04-03 19:53:37
  • 提问者 慕婉清6507108 #3
    background-color必须带引号,已经是引号,所以用[],用点后面应该跟不带引号的。是这样理解嘛?
    2020-04-03 19:59:20
好帮手慕糖 2020-04-03 14:06:21

同学你好,因为arguments[1]是个变量,当属性名是变量的时候,通过点的方式进行设置,变量会直接作为属性名,而不是变量的值。所以我们这里可以使用[],且三个值的时候,直接设置就可以了,不需要返回。例:

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

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

  • 提问者 慕婉清6507108 #1
    background-color不是变量吗?
    2020-04-03 18:16:14
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

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

在线咨询

领取优惠

免费试听

领取大纲

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