js(1)-正则表达式

  1. JS的简介
    概述: JavaScript, 是一门弱类型的语言, 可以给页面增加动态效果.
    //弱类型的语言: 对数据的数据类型划分不精细.
    //所有的js的变量都用: var这个运算符来接收.
    特点:
    1) JavaScript 是一种轻量级的编程语言。
    2) JavaScript 是可插入 HTML 页面的编程代码。
    3) JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
    4) JavaScript 很容易学习。

    组成:
    ECMAScript基础: 定义了JS的核心语法和基本对象.
    BOM: Browser Object Model, 浏览器对象模型.
    DOM对象: Document Object Model, 文档对象模型.

  2. JS的引入方式:
    方式一: 直接嵌入到HTML页面中.类似于CSS的内部引入.
    写在<head>标签<script>
    格式:
    <script>
    //JS的代码.
    </script>

    方式二: 写在.js文件中, 然后在页面中引入该文件. //类似于昨天讲解的CSS的外部引入.
    引入的格式:
    <script src="要引入的js文件的路径">
    </script>

  3. ECMAScript核心基础
    基础语法:
    1) JS是区分大小写的.
    2) JS是一门弱类型语言, 所有的变量都用var(variable:变量)运算符来接收.
    3) JS语句最后边的分号可写可不写, 建议写上.
    4) JS中的注释方式和Java中的注释方式类似.
    //单行注释
    /* 多行注释 */
    5) 由{}括起来的内容是: 代码块.

    变量的命名规则:
    1) 不能以数字开头.
    2) 必须是数字, 大小写字母, _, $四部分中组成.
    3) 不能和关键字重名.
    4) 最好做到见名知意.

    JS中对值的类型进行了划分:
    //不同类型的值, 在内存中的存储地方是不一样的.
    原始类型的值: //可以理解为是Java的基本类型.
    //原始类型的值都存在栈里边, Null除外(存储在堆中).
    String: 表示字符串, 值用引号括起来, 单双引号均可. //JS是没有字符的概念的, 只有字符串.
    Number: 表示数字(所有的整数和小数)
    Boolean: 值只有: true, false.
    Null: 值只有一个: null
    Undefined: 值只有一个: undefined, 该值是从 null 派生过来的.
    //当声明的变量未初始化时,该变量的默认值是 undefined。

         String name;        //声明
         name = "张三";        //赋值            声明 + 赋值 = 初始化.              
    

引用类型的值:

        //存储在 堆 中.
        //所有new出来的东西, 都存储在堆中.
        
        var v1 = false;                 //v1是 原始类型的值
        var v2 = new Boolean(false);    //v2是 引用类型的值,   Boolean 对象是 Boolean 原始类型的引用类型。
        
        var v3 = 10;                    //v3 原始类型的值
        var v4 = new Number(10);        //v4 引用类型的值,        Number 对象是 Number 原始类型的引用类型
        
        
        var v5 = "abc";                 //v5 原始类型的值
        var v6 = new String("abc");     //v6 引用类型的值,        String 对象是 String 原始类型的引用类型

我们可以通过typeof关键字, 来校验变量或者值是什么类型的值:
格式:
typeof 值或者变量名
如果返回值是string, 说明是String类型的原值值.
如果返回值是number, 说明是Number类型的原始值.
如果返回值是boolean, 说明是Boolean类型的原始值.
如果返回值是undefined, 说明是Undefined类型的原始值.
如果返回值是object, 说明是一个引用类型的值或者Null类型的原始值.

  1. JS中的类型转换:
    //可以把一下的三个方法理解为: Java中的隐式类型转换.
    转成字符串:
    变量名.toString();
    转成数字:
    parseInt(值), parseFloat(值);

    强制类型转换:
    Boolean(给定的值); //把给定的值转成boolean类型, 值是非空字符串, 非零数字, 非null的情况下返回true, 其他返回false.
    String(给定的值); //把给定的值转成字符串.
    //类似于 值.toString()这种方式.
    Number(给定的值); //把给定的值转成数字. 如果给定的值是false和true, 那么则分别转成0和1.

  1. JS中的关键字和保留字
    //和Java中的关键字和保留字非常类似.
  1. JavaScript中的运算符
    JavaScript中的运算符和Java运算符基本一致.
    算术运算符:
    +, -, *, /, %, ++, --

    赋值运算符:
    =, +=, -=, *=, /=, %=

    比较运算符:
    >, <, >=, <=, != , ==, ===(全等于)
    /*
    ==和===解释:
    ==: 只校验值是否相等.
    ===(全等于): 既校验值是都相等, 也校验值的类型是否相同.
    */
    逻辑运算符:
    &&, ||, !
    条件运算符: //和Java中的三元运算符一样.
    var num = num1 > num2 ? num1 : num2;
    逗号运算符:
    //相当于同时声明多个变量.
    var num1 = 1, num2 = 2, num3 = 3;

  1. JavaScript中的语句
    和Java中非常类似, 需要注意的是: for循环的初始化条件的类型要写成var.
  1. JavaScript的事件的概述
    概述: 前面编写的JS代码都是直接在<script>标签中直接写的, 按照执行的顺序来讲, 只要页面加载到代码, 就会执行.这样写不够灵活, 一般JS的代码是由 用户某些行为 的触发来执行的.这些用户的行为, 就是事件.
    //学事件, 就是要知道: 用户有哪些行为.
常用事件:
    onclick:        //鼠标单击事件
    ondblclick:     //鼠标双击事件
    onmouseover:    //鼠标悬浮事件
    onmousemove:    //鼠标移动事件
    onmouseout:     //鼠标移除事件
    onkeyup:        //键盘抬起事件
    onfocus:        //获取鼠标焦点事件
    onblur:         //失去鼠标焦点事件
    onchange:       //改变事件. 一般用于下拉列表, 可以用来做菜单联动.
    onsubmit:       //提交事件. 可以用来做表单数据校验.
    onload:         //页面加载事件

//记忆: JS事件一般结合 JS函数一起使用.    
  1. JavaScript的自定义函数
    函数的定义格式:

     格式一: 普通定义格式, 直接写.
         //注意: 直接写参数即可, 不需要写数据类型.
         function 函数名(参数1, 参数2){
             
         }
         //示例: 计算两个数字的和
         function sum(a,b){
             return a + b;
         }
     格式二: 匿名函数
         //把函数绑定到事件上.
         onload = function() {
         }   
    
  2. JavaScript的全局函数
    eval(): 将字符串当成脚本来执行.
    var s = "alert('aaa')";
    eval(s);
    parseInt(); 转成整数
    parseFloat(); 转成小数
    toString(); 转成字符串

    encodeURIComponent(); 把字符串编码为 URI 组件。
    decodeURIComponent(); 解码一个编码的 URI 组件。
    //Cookie会用到, 登陆页面的时候, 缓存数据可以存在Cookie里边, 但是Cookie默认是不能存中文的, 就可以通过这两个方法对字符串进行编码和解码.

  1. JavaScript的对象及数组
    RegExp: 正则对象.
    正则的校验有两种方式:
    String#match();
    //字符串.match("正则表达式");
    RegExp#test();
    //正则表达式.test(字符串);

    数组的定义:

    直接定义:
        var arr = [1,2,3,"abc",true];
    对象方式定义:
        var arr = new Array();
        arr[0] = 1;
        arr[1] = 2;
        
        var arr2 = new Array(3);
        //下边只能是0,1,2
        
        var arr3 = new Array("a","b","c");
    
  2. JavaScript的BOM对象
    BOM的概述: //Browser Object Model, 浏览器对象模型.
    浏览器对象的分类:

    Window: 
        Window是浏览器对象中最顶层的对象, 使用这个对象的时候可以window.xxx也可以将window省略. 
        //即: window.alert()和alert()效果一样.
        alert();    警告框
        confirm();  确认框
        open(); 打开一个新的浏览器窗口或查找一个已命名的窗口
        close(); 关闭浏览器窗口。
        prompt();   //提示用户录入数据
        setInterval();  设置定时, 循环执行.
            //用法: setInterval("表达式", 间隔时间-毫秒);
        setTimeOut();   设置定时, 执行一次.
            //用法: setTimeOut("表达式", 间隔时间-毫秒);
        clearInterval(); 清除定时
        clearTimeOut(); 清除定时
    History:
        浏览器的历史对象.
        go();
    Location:
        浏览器的控制页面跳转对象.
        href属性
    



正则表达式:

/^[0-9a-zA-Z]{5,16}$/      字母数字组成,5-16位,一定要加终止符$,验证用户名
/^1[3-9][0-9]{9}$/         第一位以1开头,第二位在3-9之间,后面9位在0-9之间选择,验证手机号码
[0-9a-zA-Z_] 也可以写为 \w  字母数字下划线
eg: /^\w{5,16}$/
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容