请教

请教

老师问题如下图

http://img1.sycdn.imooc.com//climg/609ccba7094904cc06690375.jpg


我记得,之前课程有讲过

单引号可以嵌套双引号

双引号可以嵌套单引号

如果双引号嵌套单引号,需要使用转义字符 \ 

这里显示的是单引号嵌套单引号,且能够正确编译,就很疑惑了,请老师指导一下。



相关代码:

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>单指拖动</title>
    <style>
        .backtop{
            position: fixed;
            right: 20px;
            bottom: 20px;
            width: 45px;
            height: 45px;
            line-height: 45px;
            text-align: center;
            background-color: rgba(0,0,0,0.6);
            border-radius: 50%;
            color: #fff;
            font-size: 30px;
            -webkit-tap-highlight-color: transparent;
            /* transform: translate3d(x,y,0);   // GPU 图形处理单元 */
        }
    </style>

 </head>
 <body>
     
    <a href="#" id="backtop" class="backtop">&uarr;</a>
    <script>
        var backtop = document.getElementById('backtop');
        
        var curPoint = {
            x:0,
            y:0
        };
        backtop.addEventListener('click',function(){
            move(this, -10 + curPoint.x,-10 + curPoint.y);
            curPoint.x += -10;
            curPoint.y += -10;

        },false);
        function move(el,x,y){
            // x=x||0;  表示,如果没有传x轴的值,就给x一个默认值为0
            x=x || 0;
            y=y || 0;
            el.style.transform = 'translate3d('+ x +'px,' + y +'px,0)';
        }
        // 双引号编译后,页面是没有效果的,为什么呢?
            el.style.transform = "translate3d('+ x +'px,' + y +'px,0)";
        }
    </script>
 </body>
 </html>


正在回答

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

2回答

同学你好,解答如下:

1、“如果双引号嵌套单引号,需要使用转义字符 \ ”这句话,老师不是很理解。印象中,是不需要转义的,如下:

html、css中:

http://img1.sycdn.imooc.com//climg/609ce4f209bba04815290106.jpg

js中:

http://img1.sycdn.imooc.com//climg/609ce51b092fac1c04510120.jpg

http://img1.sycdn.imooc.com//climg/609ce53209aa13b004110168.jpg

2、transform值是字符串形式,形式是这样的:translate3d(x, y,z),比如translate3d(1px, 2px,3px));并且translate3d(x, y,z)中没有引号,所以不用单双引号嵌套。

'translate3d(' + x + 'px,' + y + 'px,0)'解析后的形式如下:

http://img1.sycdn.imooc.com//climg/609ce661095d70a308100117.jpg

http://img1.sycdn.imooc.com//climg/609ce683092c25f804840116.jpg

它符合translate3d(x, y,z)的形式,所以有效。

而另一种写法,解析后的形式如下:

http://img1.sycdn.imooc.com//climg/609ce85e09a2572507800170.jpg

http://img1.sycdn.imooc.com//climg/609ce96d09fb041204620119.jpg

它的形式与translate3d(x, y,z)不一样,所以没有效果。

3、使用加号拼接字符串时,字符串要使用引号包裹起来,并且起包裹作用的引号要成对,如下写法是符合要求的:

http://img1.sycdn.imooc.com//climg/609ce77b098f593110220126.jpg

http://img1.sycdn.imooc.com//climg/609ce78e09de198709970131.jpg

而如下写法,起包裹作用的引号不成对,所以写法本身就不对:

http://img1.sycdn.imooc.com//climg/609ce7b809f4433011630183.jpg

http://img1.sycdn.imooc.com//climg/609ce7c909f4163c09470089.jpg

可以改成如下形式:

http://img1.sycdn.imooc.com//climg/609ce7f80976243c11140241.jpg

祝学习愉快!

  • 日拱一卒_ 提问者 #1

    1.  我的本意是想请教老师,

    “单引号可以嵌套双引号

        ​双引号可以嵌套单引号

        ​如果双引号嵌套双引号,需要使用转义字符 \ 。(单引号同理)

        ​这里显示的是单引号嵌套单引号,且能够正确编译,就很疑惑了,请老师指导一下。”


    2.  看了老师  2  的讲解,还是不能理解为什么打印的结果不一样。

         看完  3 的讲解,明白我错的原因了,想来也真是无敌的蠢,将这段代码理解为引号的嵌套,       居然栽到这里了。


    原来的理解是这样的,所以很迷惑:

    http://img1.sycdn.imooc.com//climg/609cf74d09c1b4aa08690226.jpg

    看完老师的讲解的理解:

    http://img1.sycdn.imooc.com//climg/609cf596094d532c08900232.jpg



    2021-05-13 17:56:59
好帮手慕久久 2021-05-13 18:21:24

同学你好,解答如下:

1、如下理解是对的:

http://img1.sycdn.imooc.com//climg/609cfa8e0911a73a06940237.jpg

2、有的时候很难get到同学的疑惑点,所以就只能把老师能想到的内容都说出来,说不定就有某一点正对同学的疑惑。如果哪里不全,再给同学补充。

3、对于引号嵌套,给同学补充一下:

当我们需要的结果中有引号时,才需要引号嵌套,比如下面的例子:

http://img1.sycdn.imooc.com//climg/609cfc3c09f06cbd07080150.jpg

http://img1.sycdn.imooc.com//climg/609cfc4409e495cb05160126.jpg

为了区分引号,所以外层使用了双引号:

http://img1.sycdn.imooc.com//climg/609cfc9c09a1707307570213.jpg

http://img1.sycdn.imooc.com//climg/609cfd5709d3b4f111740291.jpg

单引号嵌套双引号也同理。

祝学习愉快!

  • 提问者 日拱一卒_ #1
    嗯嗯,现在明白了 谢谢老师的解答?
    2021-05-13 18:28:01
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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