`

五、引用类型

阅读更多
  • 对象属性的访问一般为点表示法,但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()的值
  • 基本包装类型
分享到:
评论

相关推荐

    C#引用类型的赋值 类的赋值

    ### C#中引用类型的赋值详解 在C#编程语言中,变量分为两种类型:值类型和引用类型。本文将重点介绍引用类型的赋值特点及其背后的实现机制。 #### 一、引用类型的定义与特点 在C#中,除了基本类型(如`int`、`...

    引用类型与值类型的运算

    在探讨“引用类型与值类型的运算”这一主题时,我们需要深入了解JavaScript中两种基本的数据类型——值类型和引用类型,并理解它们之间如何进行运算。本文将根据提供的内容进行深入解析。 ### 引用类型与值类型的...

    浅析Java引用类型和方法参数传递

    ### 浅析Java引用类型和方法参数传递 #### 一、引言 在Java编程语言中,理解数据类型的处理方式对于编写高效、可维护的代码至关重要。本文将深入探讨Java中的引用类型及其如何影响方法参数的传递机制。通过具体实例...

    C#源代码-值类型和引用类型.zip

    在C#编程语言中,值类型和引用类型是两种基本的数据类型分类,它们在内存管理、性能和使用方式上有着显著的区别。理解这两者之间的差异对于编写高效且可靠的C#程序至关重要。 一、值类型(Value Types) 1. 定义:...

    6.java引用类型.zip

    在Java编程语言中,引用类型是一种非常重要的概念,它与原始数据类型(如int、char等)相对应。引用类型包括类类型、接口类型和数组类型,它们共同构成了面向对象编程的基础。本教程将深入探讨Java中的引用类型,...

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

    本篇主要探讨的是如何在Java和JNI之间进行引用类型的转换,这对于理解和编写高效、稳定的应用至关重要。 首先,理解JNI的基本概念是必要的。JNI是一个接口,允许Java代码调用C/C++原生代码,同时也让原生代码能调用...

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

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

    值类型与引用类型.....................

    ### 值类型与引用类型 #### 一、概述 在C#中,所有数据类型可以分为两大类:值类型(Value Types)和引用类型(Reference Types)。理解这两种类型的区别对于编写高效、健壮的代码至关重要。 #### 二、值类型详解...

    【第十三章】JavaScript【引用类型】

    【第十三章】JavaScript【引用类型】主要涵盖了JavaScript中的对象、数组、函数等核心概念,这些都属于引用类型的范畴。在JavaScript中,引用类型与基本类型有着本质的区别,理解它们的特点和用法对于深入掌握这门...

    值引用与对象引用

    值引用适用于基本类型和值类型,提供了一种简单且高效的引用机制;而对象引用则用于引用复杂的对象结构,虽然更加灵活但也带来了更多的潜在问题。在处理诸如`String`和`Integer`等特定类型时,还需要注意它们特有的...

    详解JavaScript基本类型和引用类型

    JavaScript是一种动态类型的语言,这意味着变量可以存储不同类型的值,包括基本类型和引用类型。基本类型是JavaScript中的五种原始类型,它们是Undefined、Null、Boolean、Number和String。这些类型通常占据固定大小...

    C语言教程第讲-指针引用类型声明完美版资料.ppt

    C语言教程第讲-指针引用类型声明完美版资料.ppt 本讲内容主要包括指针、引用、字符串处理、typedef声明类型、循环语句等知识点。 一、指针 指针是一种特殊的变量,它可以存储其他变量的内存地址。指针变量的声明...

    Java中的强软弱虚引用

    强引用是最常用也是默认的引用类型。如果一个对象有一个强引用指向它,那么该对象不会被垃圾回收器回收,即使内存空间不足。只要强引用存在,对象就会被保留在内存中。 **举例:** ```java Object obj = new Object...

    C++11右值引用和转发型引用教程详解

    无名右值引用是指由右值引用相关操作所产生的引用类型。无名右值引用主要通过返回右值引用的类型转换操作产生,语法形式如下:static_cast(t)。无名右值引用是右值,标准规定无名右值引用和传统的右值一样具有潜在的...

    JavaScript基本数据类型及值类型和引用类型

    JavaScript还有五种简单的数据类型:Undefined、Null、Boolean、Number和String。这些是基本数据类型,它们的值直接存储在变量的栈内存中。通过`typeof`操作符可以判断变量的数据类型,它会返回相应的字符串表示,如...

    Excel电子表格单元格数据引用问题

    本篇将深入探讨Excel单元格数据引用的概念、类型及其应用实例。 一、相对引用 相对引用是Excel中最常见的引用方式。在公式中,当你复制或移动公式时,相对引用会根据目标位置自动调整。例如,假设A1单元格值为5,B1...

    Java的四种引用

    从JDK 1.2版本开始,Java引入了一种更为精细的引用类型管理机制,通过四种不同的引用类型:强引用、软引用、弱引用和虚引用,让开发者能够更加灵活地控制对象的生命周期。这种机制不仅提升了Java应用程序对内存使用...

    弱类型语言允许将一块内存看做多种类型

    #### 五、WeakHashMap 概念 WeakHashMap 是 Java 集合框架中的一个接口实现,它提供了一种基于弱引用的哈希映射。这意味着它所持有的键是弱引用的,如果这些键在其他地方没有被强引用,那么它们可能会被垃圾回收器...

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

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

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

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

Global site tag (gtag.js) - Google Analytics