0
点赞
收藏
分享

微信扫一扫

JS系列之-引用类型

 Object

  1.  创建Object 的实例

// 构造函数方式
var obj = new Object()

// 对象字面量方式
var obj = {
	name:'nike',
  age:12
}

Array 类型

 1. 创建 Array 实例

var arr = []
var arr1 = new Array()
var arr2 = new Array(2) // 数组长度为2
var arr3 = new Array('a')	// 只有一项的数组
var arr4 = [,,,]	//不要这样,老版本浏览器与新版本结果不一致

 2. 检测数组:

Array.isArray(value)

 3. Array 内置方法

  • toString()/toLocalString()/valueOf()    返回数组字符串的形式
  • join(',')    返回以 ,分割的字符串形式
  • push()  数组末尾添加,改变原数组
  • pop() 数组末尾移除一项,改变原数组
  • shift()  移除数组第一项,改变原数组
  • unshift() 数组前端添加任意项,改变原数组
  • reverse() 反转数组,改变原数组
  • sort() 按指定函数的返回值排序,改变原数组

var arr = [3,5,1,4,6,2]
arr.sort(function(value1,value2){
  // 返回负数 value1 在前,返回正数 value1 在后
	return value1 - value2
})
//arr 是 [1,2,3,4,5,6]

  • slice(1,3) 删除 位置1到位置2上的元素;不会改变原数组,返回删除的元素组成的数组
  • splice() 删除+添加(先删除在添加),不会change old Arr,返回删除项组成的数组

var arr = [1,2,3,4]
arr = arr.splice(1,1,'a','b')
// arr: [1,3,4,'a','b']

  • indexOf()/lastIndexOf() 返回查找项在数组的位置,没有则返回 -1 ;(比较时使用的是===)
  • every() //对数组的每一项运行给的函数,如果每一项都返回true 则返回 true
  • some()  如果有一项返回true 则返回true
  • map() 返回结果组成的数组,是一个新数组
  • filter() 返回函数返回为true 的项组成的数组
  • forEach() 没有返回值,相当于对数组进行了一次循环

归并方法

  •  reduce() / reduceRight()

两个方法都接收两个参数:1. 在每一项上调用的函数,2. 作为归并基础的初始值

var arr = [1,2,3]
// 求 10 + arr 的和
var sum = arr.reduce((prev,cur,index,array)=>prev + cur,10)
// sum: 10+1+2+3 = 16

Date 类型

1. 创建 Date 对象

// 当前日前和时间
var now = new Date()
//根据特定日期和时间创建日期对象,必须传入表示该日期的毫秒数,为了简化计算,提供了两个方法
// 1. Date.parse('May 25,2004')
var someDate = new Date(Date.parse('May 25,2004'))
// 2. Date.UTC(2005,0,5,5,55,55)
var someDate1 = new Date(Date.UTC(2005,0,5,5,55,55)) //2005-1-5 05:55:55

// 上面可以简写,因为构造函数会后台调用对应获取毫秒数的方法
someDate = new Date('May 25,2004')
someDate1 = new Date(2005,0,5,5,55,55)

// 获取当前时间的时间戳也可以使用以下方法
var start = Date.now()
var end = +new Date()

2. 方法

日期格式化方法:

  • toDateString() / toLocalDateString()  显示星期几、月、日和年
  • toTimeString() / toLocalTimeString() 显示时分秒和时区
  • toUTCString() 完整的UTC日期

获取与设置的方法

  • getTime() 返回日期的时间戳
  • setTime(毫秒)
  • getFullYear()
  • getUTCFullYear()
  • setFullYear(年)
  • setUTCFullYear(年)

其他类似

RegExp 类型

😈 

知之为知之,不知为不知,是知也

创建

var expression = / pattern / flags;

// pattern(模式) :任何正则表达式
// flags(标志):
//   - g: 全局
//	 - i: 不区分大小写
//	 - m: 多行模式

var pattern = new RegExp('[bc]at','gi')

方法

  •  test(text) 返回Boolean
  • exec()  捕获组

var text = 'mom and dad and baby'
var pattern = /mom( and dad( and baby)?)?/gi
var matches = pattern.exec(text)
matches[0] //'mom and dad and baby'
matches[1] //' and dad and baby'
matches[2] //' and baby'

Function 类型

函数实际上是对象,每个函数都是 Function 类型的实例,同样具有属性和方法。由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定。

1. 创建

// 1. 函数声明方式
function functionName(argument){}

// 2. 函数表达式
var functionName = function(argument){}

2. 函数内部属性

在函数内部,有两个特殊的对象:arguments 和 this;arguments 是一个类数组,保持着函数传入函数的参数。arguments 还有一个 callee 属性,该属性指向拥有该 arguments 的函数。

函数也有一个callee 的属性,指向调用该函数的函数(即指向父函数)。

// 阶乘
function factorial(num){
	if(num<=1) 
    return 1
  else
    return num * arguments.callee(num-1)	//将回调函数与函数名解耦
}
//这样使用阶乘函数就不会因为函数名改变而报错
var trueFactorial = factorial;
factorial = function(){return 0}
trueFactorial(5)	// 120
factorial(5)	//0

3. 函数属性和方法

属性

  • length : 表示函数希望接收的命名参数的个数
  • prototype : 原型,这个属性是一个指针,指向一个对象(即原型对象)

方法:

  • apply : 两个参数,第一个是作用域(函数将在这个作用域下执行),第二个是参数数组
  • call:参数是逐个列举出来的

window.word = 'hello'
var o = {word:'bye'}
function say(){
	alter(this.word)
}
say() // hello
say.apply(this) // hello
say.apply(window)	//hello
say.call(o)	//bye
say.apply(o) //bye

基本包装类型

有三类:Number、Boolean、String;主要说明一下String 的方法

String 类型的方法:

  • chartAt(1) :位置1上的字符
  • charCodeAt(0) : 位置0上字符的编码
  • concat 连接
  • slice
  • substring(3,4) 
  • substr(3,1) : 第二个参数指定截取的个数
  • indexOf('a') : 获取字符串的位置
  • lastIndexOf('b',3)
  • trim() 会创建字符串的副本,删除前置和后缀的所有空格,然后返回结果
  • toUpperCase()
  • toLowerCase()
  • match() 与调用RegExp的exec() 方法等效
  • search() 返回第一个匹配项的索引
  • replace() 替换
  • splice() 以指定的分隔符将一个字符串分割成多个子字符串,并将结果放在一个数组中

单体内置对象

Global 对象

Global 对象上的属性:只列举最常见的几个

undefined

NaN

Infinity

Object

Array

Function

Boolean

String

Number

Date

RegExp

Error

Math 对象

Math 对象常用的的方法

min()


max()


ceil()

向上舍入

floor()

向下舍入

round()

四舍五入

random()

返回一个0<= x <1 的数

举报

相关推荐

0 条评论