学习JS的第六天

今天学到的一些知识回顾和笔记

1.正则表达式(RegExp)

    1.1 写法

      / 正则表达式的内容/

      例:/^\w{6,10}\@[0-9a-z]{1,4}.com$/  ,这就是一个正则表达式,简单的验证邮箱格式的表达式。

      下面解释一下例子:

        (1)^ : 正则表达式的开始。

      (2)$ :正则表达式的结束。

      (3)\w :代表数字、字母和下划线。

      (4){6,10} :大括号代表位数,这里的意思是6到10位,也就是要求前面的\w 为6到10位。

      (5)\@ :转义字符“\” 加上特殊符号就是指匹配这个字符。若不是正则表达式中的特殊字符(比如 "^" 和 "$"等),就可以不用加转义字符。

      (6)[0-9a-z] : 大括号代表的是范围,这里表示从0到9的任意数字和从a到z的任意字母。

      (7){1,4} : 同上面的{6,10}。

       还有一些经常用到的:

      (8)\d :表示的就是[0-9]。

      (9)\s : 空格

      (10)\D :匹配除了数字以外的。

      (11)\W: 与\w相反,匹配除了数字、字母和下划线以外的。

      (12)\S : 与\s 相反,匹配除了空格以外的。

       (13)  + :表示的是1到多位,{1,}

       (14)  * :表示的是0位或者是多位。

       (15)  "." :表示匹配所有的。

    1.2 方法

      (1)test():测试匹配的对象。

        一个匹配月份的例子:
                var month = "12";
                var val = /0[1-9]|1[0-2]/ ;   //月份有1-9月和10、11、12月,所以有0几月或者是1几月。"|"表示或。
                var result = val.test(month);    //正则表达式的方法test ,测试字符串变量month。
                console.log(result);      //控制台会输出true,若把month改成13,就会返回false。

      (2)exec() :匹配什么就显示什么,返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

         var str = "23342addff#"
                var reg = /[0-9a-z]\#/
                var re = reg.exec(str);
                console.log(re);   //显示出Array [f#],相连的才能匹配,比如说str变量中前面五个是数字,后面五个是字母,最后一个是# 若reg中存放的是/[0-9]{5}\#/ ,                  控制台里面显示为null。因为数字和#没有直接相连,这样就匹配不到。

    1.3 应用

      (1)join() : 将数组中的各个字符串连接,括号里面可以写自定义的连接符。

        var arr = ["hello","world","!"];
               var re = arr.join("$");      //对于数组arr 用"$"符号连接起来。
               console.log(re);        //显示出 hello$world$! 。

      (2)split() : 拆分数组

        var str = "[email protected]";
                 var val = /[@-]/;
                 var re = str.split(val);    //对于字符串str,检索字符串中的正则表达式中的符号,用数组形式将他们分开。
               console.log(re);  //显示Array["2015","12","20"]

  2.toString()

    toString() 方法可把一个逻辑值转换为字符串,并返回结果。

      例:

      var num = 12343;
               var str = num.toString();    
             console.log(str);      //显示12343
               console.log(typeof(str));     //显示string

  3.关于闭包问题

    1.函数赋值有返回值
            var a = function(){    //将一个函数赋值给a,现在a就是一个函数。
                return "hello";    //返回值hello。  如果将这句话注释掉,那么下面b的值就是undefined,因为没有返回值,这个函数即使执行了b也不会得到任何值。后面写了如果没有返回值的情况。
            }
            a();  //调用函数a
            var b = a();  //定义b为这个函数a返回的值。
            console.log(b);     //控制台会显示hello

    2.立即函数有返回值
           var a = function(){            //a被赋值为立即函数的返回值,a不是一个函数了。
               return "haha"
            }()
            var b = a;   // 所以这里a就直接等于b,而不是a()。
            console.log(b);    //显示haha

    3.非立即函数没有返回值的情况。
               var a = function(){    //将一个函数赋值给a,现在a就是一个函数。
               }
            a();  //调用函数a
            var b = a();  //定义b为这个函数a返回的值。
            console.log(b);   //显示undefined,因为函数a没有返回值。

    4.立即函数没有返回值的情况
            var a = function(){   //a被赋值为立即函数的返回值,a不是一个函数了。
            }()          
            var b = a;   // 所以这里a就直接等于b,而不是a()。
            console.log(b);    //这里显示的也是undefined。

    综上,若函数没有返回值,不管是立即执行函数还是非立即执行函数都是没有值的,只会执行函数体里的代码,非立即函数还需调用函数才能执行。若函数有返回值,如果把非立即函数给了一个变量b,那么b就等于这个函数的返回值,如果是立即执行函数,那么b就是立即执行函数的返回值。

时间: 2024-10-10 23:37:52

学习JS的第六天的相关文章

JS DOM编程艺术的学习—— JS学习笔记2015-7-5(第76天)

由于看高程3卡住了,所以现在在学习JS DOM编程艺术来巩固基础: 一.在看JS DOM 编程艺术的时候,有个作者提到的方法很实用, 就是在JS中变量和函数的命名方法:  变量的命名方法为使用下划线,比如: var temp_color = ['red','blue']; 函数就使用驼峰法,比如: function current_date(){}; 这样的习惯可以帮助理解,提高可读性,在理解变量和函数名的时候就很方便了: 二.还有个收获就是关于“对象”的理解又加深了 之前对于什么对象的属性,对

更快学习 JS 的 6 个简单思维技巧

当人们尝试学习 JavaScript , 或者其他编程技术的时候,常常会遇到同样的挑战: 有些概念容易混淆,特别是当你学习过其他语言的时候. 很难找到学习的时间(有时候是动力). 一旦当你理解了一些东西的时候,却很容易再一次忘记. 可以使用的工具甚多且经常变化,所以不知道从哪里开始入手. 幸运的是,这些挑战最终都可以被战胜.在这篇文章里,我将介绍 6 个思维技巧来帮你更快的学习 JavaScript ,让你成为一个更快乐更多产的程序员. 1.不要让将来的决定阻止你进步 对于很多学习 JavaSc

学习JS的这些日子——十二月总结

事实上非常想早就发表这篇十二月份的总结了,可是一直拖拖拉拉没有完毕.一直在想2015年都过去了,该不该再去 写这一篇2015年最后一个月的总结.还有就是2015年的年终总结能否够取代十二月的总结,后来细致考虑了一 下,还是分开来写,毕竟自己的2015年是自己觉得比較过得有意义的大学的一年,这一年计算机带给我不一样的感 受.好了言归正传,開始十二月的总结. 都说每一次的总结都会让自己看清楚过去做了些什么,未来又该做些什么. 说的也对,可是对于我来说,每一次 的总结代表着自己又没有完毕既定的目标和任

关于学习JS的一些体会

我们经常在一些购物网站上看到一些图片会自动切换,这样做的作用是减少空间的占用,能让浏览网页的人获取大量的信息,我们可以利用数组实现自动切换图像的效果,具体操作如下: 打开网页文档,在<head>与</head>之间输入以下代码. <script language="javascript"> var img=new Array(3);  //创建数组 var nums=0; if(document.images) { for(i=1;i<=3;i

学习js回调函数

<!DOCTYPE HTML> <html> <head> <meta charset="GBK" /> <title>回调函数(callback)</title> <script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.9.0/jquery.min.js"></script&g

7月学习js

2015年7月3日  星期五  晴  心情还好 最近身体欠佳,被一个2B气的,跟他沟通是浪费时间,现在我投诉他了,真的很讨厌他,看公司怎么处理,我变现的不好,做不好的打算,大不了批评一顿,但是还是会严肃批评他的,我说不做他的设计了,怎么办呢?如果公司一定要我做,我还是得做,没办法,也就这样吧,我努力了,只是不想跟他纠缠,我有我的事情,跟猪摔跤没意思.就这样. 一个月没写博客了,我把以前的又看了一遍,表现不错!给自己点个赞!湖人今年做的挺好的!6月做的也很满意,学习完第一季的,然后复习,尽管还没复

jQuery手写几个常见的滑动下拉菜单 分分秒秒学习JS

一般的企业网站再我们再实际工作中,有些特效,用jQuery来做,显得极其简单,除非一些大的公司,需要封装自己的类. 今天,我们讲解jQuery入门知识,来写几个简单jQuery滑动下拉菜单.感受一下jQuery的简单快速的神奇之处. 学完本章,可以书写最常见的下拉菜单写法. 案例1 效果如图所示: 在书写这个滑动的下拉菜单的时候,我们首先来认识下jQuery里面的滑动方法 :slideToggle() slideToggle(执行时间,运动方式,返回函数) 执行时间: 常用的是 "slow&qu

慕课网课程学习--JS事件探秘

事件流 事件冒泡(IE):事件最先被最具体的元素(文档中嵌套层次最深的节点)接受,然后逐级向上传播至最不具体的节点(.. -> body ->html -> document): 事件捕获(网景):不具体的节点更早接收到事件,最具体的节点最后接收到事件,和事件冒泡相反. 事件处理程序 1.HTML事件处理程序 原理:把事件直接在HTML结构中的HTML元素上. 方法一. <input type="button" value="click" o

【转知乎】如何学习js(http://www.zhihu.com/question/21064817)

首先要说明的是,咱现在不是高手,最多还是一个半桶水,算是入了JS的门. 谈不上经验,都是一些教训. 这个时候有人要说,“靠,你丫半桶水,凭啥教我们”.您先别急着骂,先听我说. 你叫一个大学生去教小学数学,不见得比一个初中生教得好.因为大学生早已经过了那个阶段,都忘记自己怎么走过来的了.而对于初中生,刚好走过那个阶段,对自己怎么走过来的还记忆犹新,或者还有一些自己的总结.比如,很多高手觉得那本犀牛书入门很好,他们觉得太简单了,但以我的经验来看,它不是入门的最好选择. 先说说学js的条件 论条件,咱