Python JavaScript5:封闭函数和常用内置对象

一、封闭函数

  • 1.1、封闭函数定义:javascript中匿名函数的另外一种写法,创建一个一开始就执行而不用命名的函数

    • 一般定义的函数和执行函数:

      function myalert(){
           alert('hello!');
      };
      myalert();
      
    • 封闭函数写法一:去掉函数名字,用括号抱起来,加上小括号执行

      (function myalert(){
          alert('hello!');
      })();
      
    • 封闭函数写法二:可以在函数定义前加上“~”“!”等符号来定义匿名函数

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

      或者

      ~function myalert(){
          alert('hello!');
      }()
      
  • 1.2、封闭函数的好处:封闭函数可以创造一个独立的空间,在封闭函数内定义的变量和函数不会影响外部同名的函数和变量,可以避免命名冲突,在页面上引入多个js文件时,用这种方式添加js文件比较安全,比如:

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>封闭函数的好处</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>
    

    提示:我们可以看到封闭函数里面的函数myalter并不会把封闭函数外的函数myalter给屏蔽掉

二、常用内置对象

  • 2.1、document

    • 通过 id 获取元素

      document.getElementById 
      
    • 通过 标签名 获取元素

      document.getElementsByTagName 
      
    • 获取 上一个跳转页面的地址 (需要服务器环境)

      document.referrer
      
  • 2.2、location

    • 获取或者重定url地址

      window.location.href
      
    • 获取地址参数部分

      window.location.search
      

      如下例子:

      <script type="text/javascript">
           window.onload = function () {
               // 根据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的随机数,不包括 1

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

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

      alert(Math.ceil(3.4));
      

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

  • 2.4、举例:生成 10-20之间的随机数

    <!DOCTYPE html>
    <html lang="en">
    <head>
         <meta charset="UTF-8">
         <title>生成10到20的随机数</title>
         <script type="text/javascript">
              var iNum1 = 10;
              var iNum2 = 20;
              var array2 = [];
              for(var i=0;i<20;i++){
                    // 生成10-20之间的随机数
                    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 在数据较多的时候可以直接展示出来,打印出来查看比较方便,比如上面的打印一个数组

    console.log(array2);
    
  • 3.3、document.tittle 可以直接显示在网页的标题上,如下

    document.title = "测试";
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容

  • 第一章: JS简介 从当初简单的语言,变成了现在能够处理复杂计算和交互,拥有闭包、匿名函数, 甚至元编程等...
    LaBaby_阅读 1,667评论 0 6
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,770评论 0 8
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,477评论 1 45
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,184评论 0 3
  • 感恩父母的养育之恩。感恩通家祖宗、陈家祖宗、杨家祖宗、王家祖宗慈悲护佑。感恩早睡早起第329天。21:30睡觉,5...
    喜羊羊_43e1阅读 136评论 0 3