引用类型

该博客围绕JavaScript展开,详细介绍了Array、Date、RegExp、Function等内置对象。涵盖数组的创建、检测、转换等多种操作方法,以及函数的定义、内部属性和方法等内容,还提及基本包装类型和单体内置对象的相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Array

创建数组

  • Array构造函数

    var arr = new Array();
    
  • 数组字面量

    var arr = [1,2,3]
    

数组的length属性不是只读的,通过设置该属性可以从末尾移除或添加项
数组最后一项的索引始终是length-1,下一新项位置为length

检测数组

  • instanceof
    假定单一的全局执行环境
  • Array.isArray()

转换方法

  • toString()调用数组每一项的toString(),返回字符串
  • valueOf()返回数组
  • toLocalString()调用数组每一项的toLocalString(),返回字符串

alert( ) 会在后台调用toString( )
null和undefined会以空字符串表示

栈方法

push pop

队列方法

  • shift + push : 实现后端队列
  • unshift + pop : 实现前端队列

重排序

  • reverse() 反转数组
  • sort()默认升序
    会调用每项的toString( ),按字符串编码排序,故并非最佳排序
    eg. [5,10] = > [10,5]
    • 可以写一个比较函数作为参数传递给sort()

      		function compare(v1,v2){ // 升序
      			if (v1<v2) return -1;
      			else if (v2>v1) return 1; // 交换为降序
      			else return 0;
      		}
      		arr.sort(compare);
      
    • 对于数值类型

      		function compare(v1,v2){
      			return v1-v2;
      		}
      

操作方法

  • concat()拼接,若无参数则返回原数组
  • slice(start,end)切分子数组,不影响原数组
  • splice()向数组中部插入项
    • 删除: 两个参数:要删除的第一项的位置,要删除的项数
    • 插入/替换: 三个参数: 起始位置,要删除的项数,要插入的项

位置方法

  • indexOf()从头找
  • lastIndexOf()从尾找

比较时使用全等===

迭代方法

均接受两个参数(fn,a)

	fn:每一项上运行的函数	
	a:作用域对象(可选)

fn接受三个参数 (item,index,array)

	item:数组项的值
	index:该项在数组中的位置
	array:数组对象本身
  • every( ) 若每一项都返回true,则返回true

  • filter( ) 返回会返回true的项组成的数组

      可用于查询符合某些条件的项
    
  • forEach( ) 遍历,无返回值

  • map( ) 返回每次函数调用的结果组成的数组

      创建包含项与原数组一一对应的数组(映射)
    
  • some( ) 若有一项都返回true,则返回true

缩小方法

接受四个参数(prev,cur,index,array)

  • reduce( ) 第一项开始
  • reduceRight( ) 最后一项开始

Date

RegExp

var exp = / pattern / flag

flag: g(全局) i(不区分大小写) m(多行)

RegExp实例方法

  • exec( )
    • 接受一个参数:要应用模式的字符串
    • 返回包含匹配项信息的数组
      • 额外属性:index、input
  • test( )
    • 直接检测是否存在匹配,常用于if语句

Function

函数实际上也是对象,函数名实际上也是指向函数对象的指针
定义方式: 函数声明、函数表达式[ 在函数声明提升时有区别 ]
一个函数可能有多个名字

function a(){}
var b=a;
a=null;

将a设置为null,但仍可以正常调用b( )

作为值的函数

不仅可以将函数作为参数传递给另一个函数,还可以作为另一个函数的结果返回

函数内部属性

  • argument.callee : 用于解除函数递归时函数执行与函数名的耦合,无论引用函数时用的是什么名字,均可以保证正常递归
  • this :引用函数执行的环境对象
  • caller: 保存调用当前函数的函数的引用

函数属性和方法

  • 属性
    • length : 函数希望接受的命名参数的个数
    • prototype :保存引用类型所有实例方法的真正所在;不可枚举,使用for-in无法发现
  • 方法
    等于设置函数体内this对象的值,扩充函数的作用域
    • apply( ) :参数数组
    • call( ) : 需要的参数逐个列出
    • bind( )

基本包装类型

每当读取一个基本类型值时,后台就会创建一个与之对应的基本包装类型的对象
基本包装类型的对象只存在于代码运行的一瞬间,然后立即被销毁

Boolean

基本类型引用类型
typeofBooleanObject
instanceoffalsetrue

Number

参数为返回的位数

  • toFixed( ) 适合处理货币值
  • toExponential( ) e表示法
  • toPerecision( ) 最合适格式

String

单体内置对象

不依赖于宿主环境的对象

Global

  • eval( )
  • window( )

Math

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值