JS基础知识(二)——类和对象

本文深入探讨JavaScript中的类和对象概念,涵盖基本数据类型、引用类型如Object、Array、Date、RegExp、Function等的详细操作,以及基本包装类型的使用技巧。


引用类型可以添加属性和方法,基本类型不可以

一、基本数据类型

undefined,null,string,number,Boolean,object

二、引用类型

object,array,RegExp,Date,Function,基本封装类型

(一)引用

1、Object对象类型
  • 所有对象是object的子类
对象的声明
  1. var obj = new Object()
  2. var obj = { name = xx , value = xx , ··· }
对象属性的操作
  1. 对象.属性
  2. 对象{“属性”}/{‘属性’}
prototype

保存对象的属性

  1. toString方法
  2. valueOf方法-返回原始数据
  3. constructor属性-返回构造函数的类型
  • 判断一个对象的类型Object.prototype.toString.call(obj)->可以返回数组(toString方法可能返回数组值)
2、Array数组类型
  • 数组里的元素可以是任意类型
数组的声明及操作
  1. var arr = [1,2,3] ;
  2. var arr = new Array(); arr[i] = xx ;
属性,方法
join

使用分隔符来构造字符串
(在数组的各个元素之间添加分隔符,输出一个字符串)

  • 默认状态为英文半角下逗号
  • 可以为jion(""),会将数组元素连接一起输出
length

表示一个数组的长度

  • 可以通过修改length来改变数组的长度(截短或拉长)
  • 当arr[length+i]=x;length+=i;
push,pop

push:在数组的结尾加上一个元素
pop:删去数组的结尾元素

shift,unshift

shift:删去数组的第一个元素
unshift:在开头添加一个元素

reserve,sort

reserve:将数组倒序
sort:将数组升序排列

  • 默认的sort方法是比较字符串的大小,从第一位的Unicode码开始进行比较
    数字的升序:sort(function(a,b){return a-b;})
    数字的降序:sort(function(a,b){return b-a;})
concat

拼接数组

  • 传入一个或多个数组作为参数,返回拼接后的数组,原数组不改变
slice

对数组进行切割,截取原数组的一部分

  • 返回值为数组arr[start,……,end-1]
splice

插入,删除数组的元素

  • 会改变原始的数组
  • 返回值为删除部分内容(不含新插入的内容)
  • splice(从哪里进行插入删除,删除多少个元素)
  • splice(,,插入元素的内容)-从哪里删除就从哪里插入
indexOf,lastlndexOf

返回目标的索引值

  • 从前向后,从后向前;返回值都一样为下标
迭代
类数组
3、Date日期对象
声明

var now = new Date();

  • 不赋初值时,返回的默认值为当前时刻

  • Date.parse(now)-返回此时间到1970年1月1日零点的毫秒数

    Date.now()-返回现在到1970年1月1日零点的毫秒数

    Date.UTC(2000.1.1.10.0.0)-返回2000年1月1日10:00:00到1970年1月1日零点的毫秒数

4、RegExp正则表达式

用来匹配字符串

写法

1.var par = "/at/g";
2. var par = new RegExp("at","g");

  • g:全局模式
  • i:不区分大小写
  • m:多行模式
search

检索,返回值所在的位置(str.search(reg))

5、Function
声明
  1. function name(parament){···} //声明式函数
  2. var functionname = function(parament){···}; functionname(parament);//匿名
  3. 构造函数的方式 new Function(“函数参数”,“函数内容”)
  • 函数提升(只有声明式函数会)
函数表达式

在声明函数之后立即调用
(function name(){})
匿名声明是函数表达式的一种

this

指的是函数执行时的环境对象

var name = "1";
function test(){this.name = "2"; }
console.log(name);    //1
test();
console.log(name);    //2
call,apply

改变this的指向,在特定作用域调用函数
不同之处为函数参数传入的形式
函数名.call(对象本身,参数本身)
函数名.apply(对象本身,参数数组)

var name = "1";
function test(){this.name = "2";}
test.call(1,2);
console.log(name);    //1
bind

创建一个函数的实例,其this值绑定到传给bind()函数的值

this.num = 9; 
var mymodule = {
  num: 81,
  getNum: function() { 
    console.log(this.num);
  }
};

mymodule.getNum(); // 81

var getNum = mymodule.getNum;
getNum(); // 9, 因为在这个例子中,"this"指向全局对象

var boundGetNum = getNum.bind(mymodule);
boundGetNum(); // 81
callee,caller

callee返回当前函数(arguments属性)
caller返回调用当前函数的引用

 function factorial(n)
 {
      if(n<=1)
      {
           return 1;
      }
      else
      {
           return n*factorial(n-1);
      }
}

(二)基本包装类型

Boolean,Number

Boolean(),Number()将目标转成布尔值/数字

String

字符串可以索引(同数组的方式)

  • charAt,charCodeAt:返回第几个字符/Unicode码
  • contact,slice:拼接和切割
  • indexOf,lastindexOf:数组索引
  • trim:删除字符串开头和结尾的字符串空白
  • toUpperCase,toLowerCase:将所有字符转换成大小写
  • match:匹配字符串
  • split:按照所传参数分割字符串成数组
var str = "asd/fgh/jkl";
var s = str.split("/");
console.log(s[0));   //asd
console.log(s[1]);   //fgh
console.log(s[2]);   //jkl
Global,Window

不属于其他任何对象的方法,都属于Global
Window对象相当于web浏览器的对象

  • eval:计算js字符串,并执行内部代码

  • isNaN:检查一个数是否为NaN

  • isFinite:检查参数是否是无穷大的(若是无穷大的,则返回false

  • parseInt:解析字符串返回一个整数
    “10”->10
    “10.33”->10
    “32 52 25”->32
    “40 sfaf”->40
    “afsgf 34 dg”->NaN
    " 45 "->45

  • parseFloat

Math
  • ceil:对一个数进行上舍入
  • floor:取整函数
  • round:返回最接近的一个整数
  • random:返回一个随机数
  • abs
  • max,min
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值