js小技巧

作者: 乔一丁_2020强化班 | 来源:发表于2021-02-01 08:59 被阅读0次

    a标签中的值

    有时候我们想使用a标签时,如果想让鼠标划至上面有小手出现的话,必须要给href属性赋值,一般是要写"#"的。但是这样写有一定的弊端——点击链接时会回到页面顶端,导致效果很不理想。
    如果只想使用“鼠标移至上面变成小手的样子”,可以直接使用"cursor:pointer;"属性。
    如果既想使用a标签,还想点击不发生任何事,可以给href添"javascript:;"或者""javascript:void(0);""但是更建议使用前者,语义简介,且不会出问题;后者"void(0)"的意思是通过计算void中的表达式,但是不返回任何值,也就是说内部的0可以换成任意数。我们可以使用void操作符指定超级链接,如javascript:void(document.form.submit())。表达式会被计算但是不会在当前文档处装入任何内容。

    关于href属性中javascript的使用可以自行查阅

    js加载顺序

    js是根据其标签所在位置加载的,当浏览器扫描到js标签时,就会直接执行它。所以这样会导致一个严重的问题:如果你把script标签写的太靠前,就会导致执行时,dom树还未建立,导致诸如getElementById等获取元素对象的方法总是返回 undefined。
    所以我们如果要想使用dom(也就是想要通过document对象对文档进行操作)就必须吧script节点写在文档的后面(比如body的最下面,或者body的下面)

    小技巧

    js是可以把函数作为参数进行传递的。但是传入时,我们无法对其传入参数,否则js就会误以为该方法执行后会返回一个函数,比如:

    function a(index){/* .... */}
    setTimeout(a(1),1000);
    

    但是,如果在函数内进行实现,往往很麻烦。这时我们可以

    function a(index){/* .... */}
    setTimeout(function(){
      a(1);
    },2000);
    

    即定义一个匿名函数,然后在其内调用目标函数并传值。

    相关文章

      网友评论

        本文标题:js小技巧

        本文链接:https://www.haomeiwen.com/subject/vpxjtltx.html