scss 用法 及 es6 用法講解


  scss 用法的准備工作,下載 考拉 編譯工具  且目錄的名字一定不能出現中文,哪里都不能出現中文,否則就會報錯

  es6 用法

  let 和 const   

   let   聲明變量的方式  在 {} 代碼塊里面才有效;且在相同的代碼塊,不能聲明兩個相同的變量名,一旦出了這個{} 代碼塊 ,此變量無效

  const  聲明常量的方式  聲明完畢后,我們不能輕易的更改聲明的常量,(但不代表我們不能更改,只是更改,還不如不用他聲明)

  字符串介紹:

    傳統的字符串拼接的方式,麻煩且容易出錯,所以我們的 es6 提供了一種新的 字符串拼接的方式 ``

    雖然這種寫法,確實要比傳統的寫法高明了許多,但是還是有很多想吐槽的點;

      這種寫法在字符串里面並不支持 js 語法了,也就是我們並不能進行 for 循環 和 條件判斷,使得我們又不得不為此做出很多的處理

    但是,比起傳統的寫法高明了很多,例如,我們使用字符串拼接的話,顯得美觀又漂亮

  用法:我們使用英文下的反引號來代替我們之前的雙引或單引 `` (鍵盤 tab 上面的鍵)

    案例:let a="world";

         let b=`hello ${a}`;

        console.log(b)  // hello world   最終的打印結果

  如果我們非要用 字符串拼接的方式來進行頁面的渲染,也不是不可能,我們可以使用函數的方式來解決;

    案例:function fn(a){

          var st=  ` <div> ${a} </div> `;

          return st;   

       }

       var mt=` <div>${fn("hello")}</div> `;

       這樣的話 我們 的 mt 變成了 這種結構

        <div>

          <div> hello </div>

        </div> 

  模塊化:

    common 是 nodejs 的模塊化規范

    amd     是 requirejs 的模塊化規范

    cmd     是 seajs 的模塊化規范

    而我們的 es6 也提供了我們的模塊化規范

    瀏覽器對於 type="module" 都是異步加載的;

      模塊加載一遍,就不加載了,會從內存中直接讀取

      開發思路:我們可以把所有的特效 分成不同的 js 文件,最后都放在一個 js 文件里面

 

    es6 模塊化的用法

      export 向外暴露 變量 或 方法

      如果有多個暴露的 變量 和 方法 ,我們使用 逗號 隔開

      案例:01.js文件

        let a="hello";

        let b="world";

        export {a,b}

      import 接收外面暴露的變量 和 方法 

      案例:

        像 jQuery 這種 插件我們 就可以不使用 export 向外暴露 變量 和方法 , 直接引入即可

        import "jQuery.js";

        像 在 01.js 中,我們有暴露的 變量 和 方法,我們就要使用 es6 語法了

        import {a,b} from "01.js";

      如果在 頁面中 引入 模塊的內容;我們只能這么寫 

      案例:

        <script type="module" src="01.js">

          import {a} from "01.js"  //我們如果只想使用一個變量,那么引入一個就好了;

          console.log(a)  // hello 

        </script>

    注意事項:

      不管是導出,還是引入,我們都需要 用 {} 將變量 和 方法 括起來 傳遞出去;

      記住,每個 js 文件,或者在 頁面中 <script> 中的語法,一旦使用 模塊化開發,使用任何東西前,先看有沒有引入,有沒有暴露變量 和 方法 ,不然就會報錯

    script 標簽的屬性,defer  和  async 都是異步執行的;

      defer 等頁面渲染完,才執行

      async 下載完畢就執行,

  函數:

    ...變量名  由...加上一個具體名稱的參數標識符組成,不定參數用來標識,不確定的參數

    function fn(...value){

      console.log(value)  //打印的結果為 1,2,3

    }

    fn(1,2,3)

  箭頭函數:=> 提供了一種更加簡潔的函數書寫方式

  基本語法:參數=>函數體

    var f=v=>v  //箭頭后面只跟語句的話,代表 return 這條語句

    等價於 function f(v){

         return v

       }

    var f=(a,b)=>a+b  //箭頭后面只跟了語句的話,代表return 這條語句

    var b=f(1,2);

    console.log(b)  //3

  總結:當箭頭函數沒有參數或者多個參數的話,我們應該用 () 來括起來,代碼書寫的安全模式;

      指的是形參的寫法:不管參數有沒有,都需要用 () 括起來,如果使用箭頭函數的話,

      多行語句:用 {} 包裹起來,表示代碼塊,當只有一行語句,並且需要返回結果時,可以省略 {},結果會自動返回

   當箭頭函數要返回對象的時候,為了區分代碼塊,要用 () 將對象包裹起來

  案例:

    var f=(id,name)=>({id:id,name:name})

    f(6,2)  //id=6,name=2;

  關於 this 指向問題

    函數體里面的 this 跟誰調用有關,誰調用這個函數,this就指向誰,在定時器中 this 通常指向 window,但是通過 => this 便可以指向函數內的 this

  聲明 類 class 

  class father{

    //這個類里面的內容,講道理構造器好一點

  }

  屬性的寫法

  a="hello 我是類的屬性"

  里面有一個 constructor 的方法,當 new 實例化對象的時候,這個方法就會執行

  方法的寫法

  fn(){

    //方法的內容

  }

  實例化對象

  let a=new father()  // 注意:實例的時候,還是需要用 new

  類的繼承

  class son extends father{

    //這里面書寫了子類的屬性和方法

  }

  let b=new son()

  這個 b 的實例種功能,便擁有了 father 的屬性和方法,也擁有自己的屬性和方法

  less 用法:

  引用 less

  第一步:下載 less.js 插件

  第二步:寫以 .less 為后綴的文件

  第三部:引入 less 文件的方式:

  在 head 中加入 <link rel="stylesheet/" type="text/less" href="01.less">

  引入 js 文件 <script src="less.js"></script>

  less 是一門 css 的預處理語言

  變量:這些變量都是不言自明的;

  @nice-blue:#5b83ad  //利用 @ 定義常量

  #header{

    color:@nice-blue;  // 引用常量

  }

  <div id="header">

    <div class="navigation"></div>

    <div class="logo"></div>

  </div>

  less 樣式寫法

  嵌套規則:

    #header{

      color:black;

      .navigation{

        font-size:12px;

      }

      .logo{

        width:300px;

      }

    }

  用 & 操作符 在那個代碼塊下,& 就代表了誰

  作用域:一個 {} 代表一個作用域,凡是在作用域里面定義的常量,便可使用,否則不可以

 

  sass 用法

  scss 是 sass 的升級版,擁有了很多強大的功能,因為 scss 包括了 sass 的功能,所以就只說 scss 用法

  scss 是一個成熟,穩定,強大的 css 預處理器,scss 是 sass3版,引入了新的語法特性

  變量:$變量名:屬性值

  嵌套:

    div{

      p{

      }

    }

  引入:@import "scss文件";

  混合:通過 mixin 來分組那些需要在頁面中復用的 css 聲明

  關鍵字:@mixin           include

  案例:

  聲明

  @mixin border-radius($radius){

    border-radius:$radius;

    -ms-border-radius:$radius;

    -moz-border-radius:$radius;

    -webkit-border-radius:$radius;

  }  

  .box{

    引用

    @include border-radius(10px);

  }

  繼承:

  通過 % 變量名 聲明

  %message-common{

    border:1px solid #ccc;

    padding:10px;

    color:#333;

  }

  .box{

    引用

    @extend %message-common;

    border-color:red;  //也可以更改里面的額屬性

  }

  操作符:我們可以進行 + - * / %;

  width:600px/960px*100%;

  關鍵字:& 代表父級選擇器

  .box{

    & 代表 .box;

  }

  另一種嵌套的屬性

  .demo{

    //命令空間后帶有冒號

    font:{

      size:30em;

    }

  }

  翻譯過來:

  .demo{

    font-size:30em;

  }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM