AI智能
改变未来

JS高级语法基础(三)

文章目录

  • 严格模式
  • 开启方式
  • 为脚本开启严格模式
  • 为函数开启严格模式
  • 严格模式中的变化
  • 高阶函数
  • 闭包
  • 递归
  • 深浅拷贝
  • 正则表达式
    • 正则表达式在JS中的使用
    • 创建
    • 检测
    • 替换
  • 特殊字符
    • 边界符
    • 字符类
    • 字符组合
  • 量词符
  • 括号总结
  • 预定义类
  • 其他
  • 严格模式

    前提:严格模式在IE10以上的浏览器才支持。

    开启方式

    严格模式的开启方式有两种,一是为脚本开启严格模式,一是为函数开启严格模式。

    为脚本开启严格模式

    “use strict”; ——放在

    为函数开启严格模式

    将 “use strict”; 放在函数内第一句,即可为函数开启严格模式。

    严格模式中的变化

    1.必须先声明变量再使用;
    2.严禁删除已声明变量;
    3.在全局作用域中this指向undefined;
    4.构造函数不加new实例化会报错;
    5.定时器函数不变换;
    6.事件、对象的this指向还是调用者;
    7.函数中的参数不允许重名,不允许在非函数的代码块内声明函数。

    高阶函数

    定义:对其他函数进行操作的函数。

    闭包

    定义:有权访问另一个函数内部变量的函数。

    特点:
    1、函数可以使用全局变量;
    2、外部不能使用内部变量;
    3、函数使用完的局部变量会销毁。

    作用:延伸了变量的作用范围。

    其他:函数外面的作用于可以访问函数内部的变量,闭包内直接返回一个函数,外部对闭包进行调用,使用变量接受,再用变量调用。立即执行函数也被成为小闭包,因为它里面任何一个函数都可已使用它的参数。

    递归

    定义:在函数的内部调动自身,但是容易发生堆栈溢出,所以必须加退出条件。

    深浅拷贝

    浅拷贝:只拷贝一层数据,深层次的数据只拷贝地址,当更改拷贝出来的深层次数据时,原数据也会跟着变化。

    深拷贝:拷贝所有的数据。

    浅拷贝的两种实现方式:

    for( var k in \'被拷贝对象\');object.assign(\'目标对象\',\'被拷贝对象\');

    深拷贝的实现:利用递归函数。

    if(obj[k] instanceof Array);//判断被拷贝的数据是否属于数组if(obj[k] instanceof Object);//判断被拷贝的数据是否属于对象//判断时,先判断数组,再判断对象,因为数组也属于对象

    正则表达式

    定义:匹配字符串中字符组合的模式,也是对象。

    作用:验证表单(匹配、替换或者提取)。

    正则表达式在JS中的使用

    创建

    创建正则表达式的两种方式:

    var 变量 = new RegExp(/正则表达式/);var 变量 = /正则表达式/;//通过字面量的方式创建

    检测

    正则表达式.test(被检测的数据);//返回布尔值

    替换

    string.replace(被替换的字符串或正则表达式,替换为);

    参数:/表达式/[switch]。
    switch修饰符:
    g:全局匹配;
    i:忽略大小写;
    gi:全局匹配+忽略大小写

    特殊字符

    边界符

    边界符有 ^ 和 $两个符号,并且,正则表达式不需要加引号。

    /abc/——只要包含abc就返回true;

    /^abc/——必须以abc开头

    /^abc$/——必须是abc才行,精准筛选。

    字符类

    [] 表示有一系列字符可以选择,只要匹配其中一个就行。

    /[abc]/——只要包含a或b或c

    /^ [a-z]/ ——26个小写英文字母任选其一

    /^ [abc]$/——只能是a或b或c

    字符组合

    /^ [a-zA-Z]$/——26个英文字母

    /^ [a-zA-Z0-9_]$/——一般用来匹配用户名
    如果在中括号中有 ^ 符号则表示取反。

    量词符

    作用: 设定模式出现的次数

    (*)——出现0次或者多次

    (+)——出现1次或多次

    (?)——出现0次或一次

    ({n})——重复n次

    ({n,})——重复大于等于n次

    ({n1,n2})——重复大于n1小于n2次

    括号总结

    中括号——字符集合,匹配里面的任意一个字符

    大括号——量词符,表示重复次数

    小括号——表示优先级

    预定义类

    作用:常见模式的简写。

    \\d——0-9

    \\D——0-9以外的

    \\w——[a-zA-Z0-9]

    \\W——[^a-zA-Z0-9]

    \\s——空格(换行符、制表符、空格符)

    \\S——非空格

    其他

    正则里面的或运算符号为 “|”
    在线测试:www.c.runoob.com 菜鸟工具

    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » JS高级语法基础(三)