zoukankan      html  css  js  c++  java
  • 第五章(Date Function RegExp)

    5.3Date类型

    1.创建日期对象

    var now=new Date();

    自动获取当前日期和时间

    2.创建特定日期和时间

    Date.parse()因地区而异

    格式例子:

    6/29/2007;January 12,2004;Tue May 25 2004 00:00:00 GMT-0700;2004-05-25T00:00:00;

    Date.UTC()与Date.parse()类似,但参数基于0开始

    5.4RegExp类型

    var expression=/模式(正则表达式)/标志(一个或多个);如var pattern1=/[bc]at/I;或用构造函数var pattern1=new RegExp(“[bc]at”,”i”);

    标志:

    g全局模式

    i不区分大小写

    m多行模式

    5.4.1RegExp实例属性

    global:

    ignoreCase

    lastIndex

    multiline

    source保存的是字面量形式所用的字符

    5.4.2RegExp实例方法

    test() 接受一个字符串,返回值是 true 或 false。

    exec()检索字符串中的指定值。返回值是被找到的值。没有发现匹配,则返回 null。

    5.4.3RegExp构造函数属性

    这些属性分别有一个长属性名和短属性名(见表格)

    5.5Function类型

    函数实际是一个对象,函数名是一个指针,所以一个函数可能有多个名字

    使用函数表达式定义函数时,可不使用函数名,函数末尾有分号

    使用Function构造函数可接收任意数量的参数,最后一个参数看做函数体,但不推荐这种方法

    5.5.1没有重载

    (重载:函数或者方法有相同的名称,但是参数列表不相同的情形)

    声明两个同名函数,后面的函数会覆盖前面的函数

    5.5.2函数声明与函数表达式

    解析器先读取函数声明,函数表达式在执行到所在行再执行

    5.5.3作为值的函数

    函数名本身就是变量,可以将一个函数传递给另一个函数,也可将一个函数作为另一个函数的结果返回,要返回函数的指针而不执行函数,必须去掉函数名后的圆括号

    5.5.4函数内部属性

    特殊的两个对象:arguments(主要用于保存函数参数,有一个callee的指针属性,指向这个arguments对象的函数)和this(引用的是函数执行的环境对象)

    calle(一个函数对象的属性)保存着调用当前函数的函数引用,在全局作用域中调用当前函数,它的值为null,严格模式中,不能为函数的caller属性赋值,否则会导致错误

    5.5.5函数属性和方法

    函数都包含两个属性:length(函数希望接受到的命名参数的个数)和prototype(保存实例方法的真正所在,不可枚举,使用for-in无法发现),

    每个函数都包含两个非继承而来的方法:apply() 和call()。都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。apply()方法接收两个参数:一个是在其中运行的作用域,另一个是参数数组。其中第二个参数可以使Array的实例,也可以是arguments对象。

    call()法与apply()方法作用相同,它们的区别仅在于接受参数的方式不同。在使用call()方法时,传递给函数的参数必须逐个列举出来

    5.6基本包装类型

    3个特殊的引用类型:Boolean、Number和String。每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象;基本类型值不是对象,因而从逻辑上它们不应该有方法(但它们确实有方法)。

    在读取模式访问字符串时,后台都会自动完成下列处理。

    (1)创建String类型的一个实例;

    (2)在实例上调用指定的方法;

    (3)销毁这个实例。

    引用类型与基本包装类型的主要区别就是对象的生存期。使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁。这意味着我们不能在运行时为基本类型值添加属性和方法。

    对基本包装类型的实例调用typeof会返回"object",而且所有基本包装类型的对象都会被转换为布尔值的true;

    Object构造函数会根据传入值的类型返回相应的基本类型包装的实例。

    使用new调用基本包装类型的构造函数,与直接调用同名的转型函数是不一样的

    不建议显式的创建基本包装类型的对象

    5.6.1Boolean类型

    建议永远不要使用Boolean对象

    创建Boolean对象 var booleanObject=new Boolean(true/false);

    基本类型与引用类型的布尔值区别:typeof操作符对基本类型返回“boolean”,引用类型返回“object”;instanceof操作符测试Boolean对象会返回true,测试基本类型的布尔值返回false

    5.6.2Number类型

    Number是与数字值对于的引用类型。创建Number对象:var numberObject = new Number(10);

    Number类型也重写了valueOf()、toLocaleString()和toString()方法。重写后的valueOf()方法返回对象表示的基本类型数值,另外两个方法则返回字符串形式的数值。

    Number类型还提供了一些用于将数值格式化为字符串的方法。

    toFixed()

    按照知指定的小数位返回数值的字符串表示;能够自动舍入,很适合处理货币值。不同浏览器舍入规则可能会有所不同。

    toExponential()

    返回以指数表示法(e表示法)表示的数值得字符串形式。接收一个参数,指定输出结果中的小数位数。

    toPrecision()

    可能会返回固定大小(fixed)格式,也可能返回指数(exponential)的格式;具体规则是看哪种格式最合适。这个方法接收一个参数,即表示数值的所有数字的位数(不包含指数部分)。

    不建议直接实例化Number类型,而原因与显式创建Boolean对象一样。具体来讲,就是在使用typeof和instanceof操作符测试基本类型数值与引用类型数值时,得到的结果完全不同

    5.6.3String类型

    String类型是字符串对象包装类型。可以使用String构造函数创建

    var stringObject = new String("hello world");

    String对象的方法也可以在所有基本的字符串值中访问到。其中,继承的valueOf()、toLocaleString()和toString()方法,都返回对象所表示的基本字符串值。

    String类型每个实例都有一个length属性

    1. 字符方法

    访问字符串中特定字符的方法是:charAt()(返回字符)和charCodeAt()(返回字符编码)。

    也还可以用方括号加数字索引来访问字符串中的特定字符

    1. 字符串操作方法

    concat() 用于将以或多个字符串拼接起来,可接受多个参数,实践中多用+;

    基于子字符串创建新字符串的方法:slice()、substr()和substring(),都返回操作字符串的一个子字符串,都接受一或两个参数。第一个参数指定子字符串的开始位置,第二个参数(在指定的情况下)表示字符串到哪结束。slice()和substring()指第二个参数指定的是子字符串最后一个字符后面的位置。而substr()的第二个参数指定的则是返回的字符个数。如果没有给这些方法传递第二个参数,则将字符串的长度作为结束位置。这三个方法不会修改字符串本身的字——只返回一个基本类型的字符串字。若参数是负数,slice()将负值与字符串长度相加;substr()负的第一个参数加上字符串的长度,负的第二个参数转换为0;substring()将所有负值参数转换为0;

    1. 字符串位置方法

    indexOf() (从前往后)从一个字符串中搜索给定的子字符串,返回子字符串的位置。

    lastIndexOf() (从后往前)

    1. trim()

    创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果(这是字符串的副本,不影响原始字符串)

    trimLeft() 删除字符串开头空格

    trimRight() 删除字符串末尾空格

    1. 字符串大小写转换方法

    toLocaleUpperCase() —— 转换大写

    toUpperCase() —— 转换大写

    toLocaleLowerCase() —— 转换小写

    toLowerCase() —— 转换小写

    1. 字符串的模式匹配方法

    match()匹配

    search()查找

    replace()替换

    split()分割字符串

    1. localeCompare()方法

    比较两个字符串,字符串在字符串参数前,返回负数,相等返回0, 之后返回正数

    1. fronCharCode()方法

    接收一或多个字符编码,然后把它转换为字符串。

    9.HTML方法(尽量不要使用)

    5.7单体内置对象

    5.7.1Global对象

    不属于任何其他对象的属性和方法,最终都是它的属性和方法,没有全局变量或全局函数,所有在全局作用域重定义的属性和函数,都是Global对象的属性

    Global对象的一些方法:

    1. URI编码方法

    有效的URI中不能包含某些字符,而编码方法就可以对URI进行编码,替换掉无效的字符,让浏览器接受

    encodeURI()整个URI,不会对本身属于URI的特殊字符进行编码

    encodeURIComponent()主要用于URI中的一段,对发现的任何非标准字符进行编码

    decodeURI()只能对encodeURI()替换的字符进行解码

    decodeURIComponent ()能解码使用encodeURIComponent()编码的所有字符

    1. eval()
    2. 只接受一个参数,即要执行的字符串,eval()执行的代码被认为是包含该次调用的执行环境的一部分,执行的代码具有该执行环境相同的作用域,在eval()中创建的任何变量或者函数都不会被提升,严格模式下,在外部访问不到eval()中创建的任何变量或函数,为eval赋值,也错误
    3. Global对象的属性
    4. window对象

    全局作用域中声明的所有变量和函数,就都是window对象的属性。

    取得Global对象的方法:

    var global = function(){

    return;

    }

    5.7.2        Math对象

    1. Math对象的属性
    2. min()和max()方法
    3. 舍入方法

    Math.ceil() 执行向上舍

    Math.floor() 执行向下舍入

    Math.round() 执行标准舍入

    1. random()返回0~1之间的一个随机数
    2. 其他方法

    5.3Date类型

    1.创建日期对象

    var now=new Date();

    自动获取当前日期和时间

    2.创建特定日期和时间

    Date.parse()因地区而异

    格式例子:

    6/29/2007;January 12,2004;Tue May 25 2004 00:00:00 GMT-0700;2004-05-25T00:00:00;

    Date.UTC()与Date.parse()类似,但参数基于0开始

    5.4RegExp类型

    var expression=/模式(正则表达式)/标志(一个或多个);如var pattern1=/[bc]at/I;或用构造函数var pattern1=new RegExp(“[bc]at”,”i”);

    标志:

    g全局模式

    i不区分大小写

    m多行模式

    5.4.1RegExp实例属性

    global:

    ignoreCase

    lastIndex

    multiline

    source保存的是字面量形式所用的字符

    5.4.2RegExp实例方法

    test() 接受一个字符串,返回值是 true 或 false。

    exec()检索字符串中的指定值。返回值是被找到的值。没有发现匹配,则返回 null。

    5.4.3RegExp构造函数属性

    这些属性分别有一个长属性名和短属性名(见表格)

    5.5Function类型

    函数实际是一个对象,函数名是一个指针,所以一个函数可能有多个名字

    使用函数表达式定义函数时,可不使用函数名,函数末尾有分号

    使用Function构造函数可接收任意数量的参数,最后一个参数看做函数体,但不推荐这种方法

    5.5.1没有重载

    (重载:函数或者方法有相同的名称,但是参数列表不相同的情形)

    声明两个同名函数,后面的函数会覆盖前面的函数

    5.5.2函数声明与函数表达式

    解析器先读取函数声明,函数表达式在执行到所在行再执行

    5.5.3作为值的函数

    函数名本身就是变量,可以将一个函数传递给另一个函数,也可将一个函数作为另一个函数的结果返回,要返回函数的指针而不执行函数,必须去掉函数名后的圆括号

    5.5.4函数内部属性

    特殊的两个对象:arguments(主要用于保存函数参数,有一个callee的指针属性,指向这个arguments对象的函数)和this(引用的是函数执行的环境对象)

    calle(一个函数对象的属性)保存着调用当前函数的函数引用,在全局作用域中调用当前函数,它的值为null,严格模式中,不能为函数的caller属性赋值,否则会导致错误

    5.5.5函数属性和方法

    函数都包含两个属性:length(函数希望接受到的命名参数的个数)和prototype(保存实例方法的真正所在,不可枚举,使用for-in无法发现),

    每个函数都包含两个非继承而来的方法:apply() 和call()。都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。apply()方法接收两个参数:一个是在其中运行的作用域,另一个是参数数组。其中第二个参数可以使Array的实例,也可以是arguments对象。

    call()法与apply()方法作用相同,它们的区别仅在于接受参数的方式不同。在使用call()方法时,传递给函数的参数必须逐个列举出来

    5.6基本包装类型

    3个特殊的引用类型:Boolean、Number和String。每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象;基本类型值不是对象,因而从逻辑上它们不应该有方法(但它们确实有方法)。

    在读取模式访问字符串时,后台都会自动完成下列处理。

    (1)创建String类型的一个实例;

    (2)在实例上调用指定的方法;

    (3)销毁这个实例。

    引用类型与基本包装类型的主要区别就是对象的生存期。使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁。这意味着我们不能在运行时为基本类型值添加属性和方法。

    对基本包装类型的实例调用typeof会返回"object",而且所有基本包装类型的对象都会被转换为布尔值的true;

    Object构造函数会根据传入值的类型返回相应的基本类型包装的实例。

    使用new调用基本包装类型的构造函数,与直接调用同名的转型函数是不一样的

    不建议显式的创建基本包装类型的对象

    5.6.1Boolean类型

    建议永远不要使用Boolean对象

    创建Boolean对象 var booleanObject=new Boolean(true/false);

    基本类型与引用类型的布尔值区别:typeof操作符对基本类型返回“boolean”,引用类型返回“object”;instanceof操作符测试Boolean对象会返回true,测试基本类型的布尔值返回false

    5.6.2Number类型

    Number是与数字值对于的引用类型。创建Number对象:var numberObject = new Number(10);

    Number类型也重写了valueOf()、toLocaleString()和toString()方法。重写后的valueOf()方法返回对象表示的基本类型数值,另外两个方法则返回字符串形式的数值。

    Number类型还提供了一些用于将数值格式化为字符串的方法。

    toFixed()

    按照知指定的小数位返回数值的字符串表示;能够自动舍入,很适合处理货币值。不同浏览器舍入规则可能会有所不同。

    toExponential()

    返回以指数表示法(e表示法)表示的数值得字符串形式。接收一个参数,指定输出结果中的小数位数。

    toPrecision()

    可能会返回固定大小(fixed)格式,也可能返回指数(exponential)的格式;具体规则是看哪种格式最合适。这个方法接收一个参数,即表示数值的所有数字的位数(不包含指数部分)。

    不建议直接实例化Number类型,而原因与显式创建Boolean对象一样。具体来讲,就是在使用typeof和instanceof操作符测试基本类型数值与引用类型数值时,得到的结果完全不同

    5.6.3String类型

    String类型是字符串对象包装类型。可以使用String构造函数创建

    var stringObject = new String("hello world");

    String对象的方法也可以在所有基本的字符串值中访问到。其中,继承的valueOf()、toLocaleString()和toString()方法,都返回对象所表示的基本字符串值。

    String类型每个实例都有一个length属性

    1. 字符方法

    访问字符串中特定字符的方法是:charAt()(返回字符)和charCodeAt()(返回字符编码)。

    也还可以用方括号加数字索引来访问字符串中的特定字符

    1. 字符串操作方法

    concat() 用于将以或多个字符串拼接起来,可接受多个参数,实践中多用+;

    基于子字符串创建新字符串的方法:slice()、substr()和substring(),都返回操作字符串的一个子字符串,都接受一或两个参数。第一个参数指定子字符串的开始位置,第二个参数(在指定的情况下)表示字符串到哪结束。slice()和substring()指第二个参数指定的是子字符串最后一个字符后面的位置。而substr()的第二个参数指定的则是返回的字符个数。如果没有给这些方法传递第二个参数,则将字符串的长度作为结束位置。这三个方法不会修改字符串本身的字——只返回一个基本类型的字符串字。若参数是负数,slice()将负值与字符串长度相加;substr()负的第一个参数加上字符串的长度,负的第二个参数转换为0;substring()将所有负值参数转换为0;

    1. 字符串位置方法

    indexOf() (从前往后)从一个字符串中搜索给定的子字符串,返回子字符串的位置。

    lastIndexOf() (从后往前)

    1. trim()

    创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果(这是字符串的副本,不影响原始字符串)

    trimLeft() 删除字符串开头空格

    trimRight() 删除字符串末尾空格

    1. 字符串大小写转换方法

    toLocaleUpperCase() —— 转换大写

    toUpperCase() —— 转换大写

    toLocaleLowerCase() —— 转换小写

    toLowerCase() —— 转换小写

    1. 字符串的模式匹配方法

    match()匹配

    search()查找

    replace()替换

    split()分割字符串

    1. localeCompare()方法

    比较两个字符串,字符串在字符串参数前,返回负数,相等返回0, 之后返回正数

    1. fronCharCode()方法

    接收一或多个字符编码,然后把它转换为字符串。

    9.HTML方法(尽量不要使用)

    5.7单体内置对象

    5.7.1Global对象

    不属于任何其他对象的属性和方法,最终都是它的属性和方法,没有全局变量或全局函数,所有在全局作用域重定义的属性和函数,都是Global对象的属性

    Global对象的一些方法:

    1. URI编码方法

    有效的URI中不能包含某些字符,而编码方法就可以对URI进行编码,替换掉无效的字符,让浏览器接受

    encodeURI()整个URI,不会对本身属于URI的特殊字符进行编码

    encodeURIComponent()主要用于URI中的一段,对发现的任何非标准字符进行编码

    decodeURI()只能对encodeURI()替换的字符进行解码

    decodeURIComponent ()能解码使用encodeURIComponent()编码的所有字符

    1. eval()
    2. 只接受一个参数,即要执行的字符串,eval()执行的代码被认为是包含该次调用的执行环境的一部分,执行的代码具有该执行环境相同的作用域,在eval()中创建的任何变量或者函数都不会被提升,严格模式下,在外部访问不到eval()中创建的任何变量或函数,为eval赋值,也错误
    3. Global对象的属性
    4. window对象

    全局作用域中声明的所有变量和函数,就都是window对象的属性。

    取得Global对象的方法:

    var global = function(){

    return;

    }

    5.7.2        Math对象

    1. Math对象的属性
    2. min()和max()方法
    3. 舍入方法

    Math.ceil() 执行向上舍

    Math.floor() 执行向下舍入

    Math.round() 执行标准舍入

    1. random()返回0~1之间的一个随机数
    2. 其他方法
  • 相关阅读:
    Maven管理Android项目
    如何运行github上的源码
    微信公众平台消息接口开发(3)
    微信公众平台消息接口开发(2)
    关于移动互联网下机场APP的一些思考
    去掉joomla!版权信息
    微信公众平台消息接口开发(4)
    环境变量操作
    vi/vim基本使用方法
    关于WebForm,十分惭愧(下)
  • 原文地址:https://www.cnblogs.com/wjw1997/p/7381108.html
Copyright © 2011-2022 走看看