JS基础知识(二)——类和对象
引用类型可以添加属性和方法,基本类型不可以
一、基本数据类型
undefined,null,string,number,Boolean,object
二、引用类型
object,array,RegExp,Date,Function,基本封装类型
(一)引用
1、Object对象类型
- 所有对象是object的子类
对象的声明
var obj = new Object()var obj = { name = xx , value = xx , ··· }
对象属性的操作
- 对象.属性
- 对象{“属性”}/{‘属性’}
prototype
保存对象的属性
- toString方法
- valueOf方法-返回原始数据
- constructor属性-返回构造函数的类型
- 判断一个对象的类型Object.prototype.toString.call(obj)->可以返回数组(toString方法可能返回数组值)
2、Array数组类型
- 数组里的元素可以是任意类型
数组的声明及操作
var arr = [1,2,3] ;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
声明
function name(parament){···} //声明式函数var functionname = function(parament){···}; functionname(parament);//匿名- 构造函数的方式 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

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

被折叠的 条评论
为什么被折叠?



