`

五、引用类型

阅读更多
  • 对象属性的访问一般为点表示法,但javascript也可以使用方括号表示法来访问对象的属性。这两种访问对象属性的方法没有任何功能区别,但使用方括号语法的优点是可以通过变量来访问属性。
  • ECMAScript 5为数组添加了两个位置方法indexOf()和lastIndexOf()。(IE 9+才支持)
  • 同时ECMAScript 5还为数组定义了5个迭代方法。(以下方法不会修改数组中的包含的值)
    • every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
    • filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。
    • forEach(): 对数组中的每一项运行给定函数。这个方法没有返回值。
    • map(): 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
    • some(): 对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
  • ECMAScript 5还新增了两个缩小数组的方法:(这两个方法都会迭代数组的所有项,然后构件一个最终返回的值。这两个方法都接收两个参数:一个在每一项上调用的函数和[可选的]作为缩小基础的初始值。函数接收4个参数:前一个值、当前值、项的索引和数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数是数组的第二项。)
    • reduce():Array.reduce(function(prev,cur,index,array){return prev + cur;})//数组求和
    • reduceRight()://仅仅是从哪头开始遍历数组的方向不同而已
  • 创建RegExpl类型的方法:模式中的元字符必须转义:( [ { \ ^ $ | ) ? * + . ] }
    • var expression1 = /pattern/flags;(flags:g,i,m)
    • var expression2 = new RegExp("pattern","flags");此处pattern为字符串转义符需多一个反斜杠
    • 每个实例都有属性:global, ignoreCase, lastIndex, mulitiline, source

使用正则表达式字面量和使用RegExp构造函数创建正则表达式不一样。在ECMAScript 3 中,正则表达式字面量始终共享同一个RegExp实例,而使用构造函数创建的每个新RegExp实例都是新实例。ECMAScript 5明确规定,使用正则表达式字面量也必须直接调用RegExp构造函数,每次都创建新RegExp实例。

  • RegExp实例方法
    • exec():该方法专门为捕获组设计。返回包含第一个匹配信息的数组;或者没有匹配的情况下返回null。同时返回项还包含额为的两个属性:indexinput。数组中,第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串。即使在全局模式(g)下,它每次运行也只会返回一个匹配项,设置全局模式后,每次调用会在字符串中继续查找新匹配项(依赖于RegExp的lastIndex项)
    • test():该方法只返回true或者false
  • RegExp构造函数的属性(大多属性opera不支持):input($_), lastMatch($&), lastParen($+), leftContext($`), multiline($*), rightContext($'), $1...$9
  • 每个函数都是Function类型的实例,函数名实际上是一个指向函数对象的指针。因此没有重载
  • 函数声明与函数表达式解析器会率先读取函数声明,并使其在执行任何代码之前可用,函数表达式则不会提前。并且函数声明具有高优先级,即函数声明不会被变量声明覆盖(但可被赋值覆盖)
  • 函数内部属性arguments, this, arguments.callee(一个指向拥有这个arguments对象的函数,常用于定义不与函数名耦合的递归算法);caller:arguments.callee.caller这个属性保存着调用当前函数的函数的引用,如果在全局作用域中调用的,它的值为null(在严格模式下,方位arguments.callee会导致错误)
  • 函数作为对象的属性和方法length(函数希望接收的命名参数的个数),prototype(不可枚举:for-in)
  • 函数的两个非继承方法apply(this, Array), call(this, argu1, argu2 ...)
  • ECMAScript 5新增函数方法bind(this) 这个方法会创建一个函数的实例,其this值会被绑定到传给bind()的值
  • 基本包装类型
分享到:
评论

相关推荐

    Android Java代码与JNI交互 引用类型转换(五)

    Android Java代码与JNI交互 引用类型转换(五)

    JAVA基础——JAVA的五种引用类型及引用队列

    JAVA 的五种引用类型及引用队列 ​ 在介绍 JAVA 的五种引用之前,先介绍一下什么是引用,以及引用和对象之间的关系 什么是引用 ​ 众所周知,JAVA 是一种面向对象的语言,在 JAVA 程序运行时,对象是存储在堆内存...

    damumu0809#xiaomu#第五章引用类型题目1

    1. 判断正误 2. JavaScript 创建 Object 实例的方法有哪些 3. 下面代码的输出结果是什么,为什么 4. toString()、toLoc

    javascript中基本类型和引用类型的区别分析

    基本类型和引用类型 ECMAScript包含两个不同类型的值:基本类型值和引用类型值。基本类型值指的是简单的数据段;引用类型值指由多个值构成的对象。当我们把变量赋值给一个变量时,解析器首先要做的就是确认这个值是...

    上市公司绿色发明专利被引用数据1992-2023申请获得被引用专利号次数申请人所有权人.zip

    Ftyp[公司类型]-被引用绿色专利的申请人与上市公司之间的关系,分为上市公司本身、子公司、孙公司、合营公司、联营公司五种 Tyinvet[发明类型]-发明类型,分为:独立发明与联合发明两种 Anuctd[各年被引用次数]-专利...

    【JavaScript源代码】详解JS变量存储深拷贝和浅拷贝.docx

     目录 变量类型与存储空间栈内存和堆内存基本数据类型引用类型图解存储空间引用类型的赋值深拷贝和浅拷贝深拷贝浅拷贝对象的赋值三者对比浅拷贝的常用的五种方法Object.assign()扩展运算符Array.prototype.slice...

    JavaScript类型系统之基本数据类型与包装类型

     javascript的数据类型可以分为两种:原始类型和引用类型  原始类型也称为基本类型或简单类型,因为其占据空间固定,是简单的数据段,为了便于提升变量查询速度,将其存储在栈(stack)中(按值访问)。其中,...

    深入C#数据类型巩固

    深入C#数据类型 一、值类型、引用类型 二、详解值类型 三、引用类型详解 四、参数传递 五、装箱和拆箱 六、静态

    JavaScript基础篇(3)之Object、Function等引用类型

    阅读目录 Object类型 1、通过构造函数来创建 2、通过字面量表示法来创建对象 Array类型 同样Array也有两种创建方式: ...我们在《一步步学习javascript基础篇(1):基本概念》中简单的介绍了五种基本数据类型Undef

    javascript中的五种基本数据类型

    [0]5种数据类型:  [0.1]基本数据类型:Undefined、Null、Boolean、Number、String  [0.1.1]基本类型值是指简单的数据段,5种基本类型... [0.2.1]引用类型值是指那些可以由多个值构成的对象。js不允许直接访问内存中

    NDK08_JNI访问数组、引用、异常、缓存

    一 JNI访问数组 二 访问引用数据类型的数组 三 JNI引用 四 异常 五 缓存 六 缓存策略和弱引用联合使用带来的问题

    简单介绍JavaScript数据类型之隐式类型转换

    object是引用类型,其它的五种是基本类型或者是原始类型。我们可以用typeof方法打印来某个是属于哪个类型的。不同类型的变量比较要先转类型,叫做类型转换,类型转换也叫隐式转换。隐式转换通常发生在运算符加减乘除...

    详解JavaScript对象类型

    JavaScrtip有六种数据类型,一种复杂的数据类型(引用类型),即Object对象类型,还有五种简单的数据类型(原始类型):Number、String、Boolean、Undefined和Null。其中,最核心的类型就是对象类型了。同时要注意,...

    VC CString最全面的总结 常用数据类型使用转换详解等总结

    CString 拷贝 & 赋值 & "引用内存块" 什么时候释放? 4 FreeExtra()的作用 5 Format(...) 与 FormatV(...) 6 LockBuffer() 与 UnlockBuffer() 6 CString 只是处理串吗? 6 AllocSysString()与SetSysString(BSTR*) 7 ...

    详解js的六大数据类型

    js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型(Object)。 前面说到js中变量是松散类型的,因此有时候我们需要检测变量的数据类型。 typeof操作符可以...

    详解JavaScript中的数据类型,以及检测数据类型的方法

    在js中,基本数据类型有五种,分别是 string、number、boolean、null、undefined,不过在ES6中新增加的了一种基本数据类型Symbol(表示独一无二的值),其作用主要是从根本上防止属性名的冲突而设定的。 除了基本数据...

    对象数据库系统

    (3)OO的数据类型系统:基本类型,五种复合类型,引用类型。 (4)对象关系模型的定义,两个级别的继承性,引用类型的定义,ORDB的查询语言,路径表达式,Oracle中查询的两种技术,嵌套与解除嵌套。 (5)OODBS的...

    依次输出五句话,然后逆序输出

    请输入五句话: 第1句话:在java中 ...第4句话:2类是引用数据了类型 第5句话:要理解两类的区别 逆序输出五句话: 要理解两类的区别 2类是引用数据了类型 1类是基本数据类型 数据类型风两类 在java中

    java操作redis所需jar包五个

    内含五个jar包!!!redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取...

    JavaScript判断数据类型有几种方法及区别介绍

    有五种数据判断类型方法typeof 、instanceof、constructor、Object.prototype.toString.call()、jquery.type() 一、typeof方法 typeof是个操作符,可以判断基本数据类型(返回的结果只能是number,string,boolean...

Global site tag (gtag.js) - Google Analytics