Python JavaScript5:封閉函數(shù)和常用內置對象

一、封閉函數(shù)

  • 1.1、封閉函數(shù)定義:javascript中匿名函數(shù)的另外一種寫法,創(chuàng)建一個一開始就執(zhí)行而不用命名的函數(shù)

    • 一般定義的函數(shù)和執(zhí)行函數(shù):

      function myalert(){
           alert('hello!');
      };
      myalert();
      
    • 封閉函數(shù)寫法一:去掉函數(shù)名字,用括號抱起來,加上小括號執(zhí)行

      (function myalert(){
          alert('hello!');
      })();
      
    • 封閉函數(shù)寫法二:可以在函數(shù)定義前加上“~”“!”等符號來定義匿名函數(shù)

      !function myalert(){
          alert('hello!');
      }()
      

      或者

      ~function myalert(){
          alert('hello!');
      }()
      
  • 1.2、封閉函數(shù)的好處:封閉函數(shù)可以創(chuàng)造一個獨立的空間,在封閉函數(shù)內定義的變量和函數(shù)不會影響外部同名的函數(shù)和變量,可以避免命名沖突,在頁面上引入多個js文件時,用這種方式添加js文件比較安全,比如:

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>封閉函數(shù)的好處</title>
       <script type="text/javascript">
         
           var iNum1 = 10;
           function myalter() {
               alert('hello');
           }
    
           ~function () {
    
               var iNum1 = 20;
               function myalter() {
                   alert('hello world!');
               }
    
               alert(iNum1);
                   myalter();
           }();
    
           alert(iNum1);
           myalter();
       </script>
    </head>
    <body>
    </body>
    </html>
    

    提示:我們可以看到封閉函數(shù)里面的函數(shù)myalter并不會把封閉函數(shù)外的函數(shù)myalter給屏蔽掉

二、常用內置對象

  • 2.1、document

    • 通過 id 獲取元素

      document.getElementById 
      
    • 通過 標簽名 獲取元素

      document.getElementsByTagName 
      
    • 獲取 上一個跳轉頁面的地址 (需要服務器環(huán)境)

      document.referrer
      
  • 2.2、location

    • 獲取或者重定url地址

      window.location.href
      
    • 獲取地址參數(shù)部分

      window.location.search
      

      如下例子:

      <script type="text/javascript">
           window.onload = function () {
               // 根據(jù)id獲取一個按鈕的標簽
               var oButton = document.getElementById('button1');
               var aData = window.location.search;
      
               if (aData != ''){
                    alert(aData.split('='));
               }
           }
      </script>
      
    • 獲取頁面錨點或者叫哈希值

      window.location.hash
      
  • 2.3、Math 對象

    • Math.random之能獲取0-1的隨機數(shù),不包括 1

      alert(Math.random());
      
    • Math.floor 向下取整: 結果是:3

      alert(Math.floor(3.4));  
      
    • Math.ceil 向上取整: 結果是:4

      alert(Math.ceil(3.4));
      

      提示:向上或者向下取值是 沒有四舍五入

  • 2.4、舉例:生成 10-20之間的隨機數(shù)

    <!DOCTYPE html>
    <html lang="en">
    <head>
         <meta charset="UTF-8">
         <title>生成10到20的隨機數(shù)</title>
         <script type="text/javascript">
              var iNum1 = 10;
              var iNum2 = 20;
              var array2 = [];
              for(var i=0;i<20;i++){
                    // 生成10-20之間的隨機數(shù)
                    var iNum02 = Math.floor((iNum2-iNum1+1)*Math.random()) + iNum1;
                    array2.push(iNum02);
              }
              console.log(array2);
        </script>
    </head>
    <body>
    </body>
    </html>
    

    打印結果: 15、20、11、16、18、20、20、20、18、16、17、20、12、14、13、11、17、17、17、13

三、調試 js 的方法

  • 3.1、alter 調試比較直觀

    var iNum1 = 10;
    alert(iNum1);
    
  • 3.2、console.log 在數(shù)據(jù)較多的時候可以直接展示出來,打印出來查看比較方便,比如上面的打印一個數(shù)組

    console.log(array2);
    
  • 3.3、document.tittle 可以直接顯示在網頁的標題上,如下

    document.title = "測試";
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 第一章: JS簡介 從當初簡單的語言,變成了現(xiàn)在能夠處理復雜計算和交互,擁有閉包、匿名函數(shù), 甚至元編程等...
    LaBaby_閱讀 1,761評論 0 6
  • 一、JS前言 (1)認識JS 也許你已經了解HTML標記(也稱為結構),知道了CSS樣式(也稱為表示),會使用HT...
    凜0_0閱讀 2,932評論 0 8
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標準。 注意:講述HT...
    kismetajun閱讀 28,817評論 1 45
  • 概要 64學時 3.5學分 章節(jié)安排 電子商務網站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,851評論 0 3
  • 感恩父母的養(yǎng)育之恩。感恩通家祖宗、陳家祖宗、楊家祖宗、王家祖宗慈悲護佑。感恩早睡早起第329天。21:30睡覺,5...
    喜羊羊_43e1閱讀 176評論 0 3

友情鏈接更多精彩內容