JavaScript引用类型


引用类型 赋值是变量指针的赋值,不是真正的值的拷贝,修改会相互干预

1.Object类型

创建object实例的方式有两种,一种是使用New操作符后跟Object构造函数
另一种是使用对象字面量表示法

//第一种
var person = new Object();
person.name="Nicholas";
person.age=29;
//第二种
var person={
	name: "Nicholas",
	age:29
};

2.Array类型

创建数组的方式有两种,一种是使用Array构造函数
另一种是使用数组字面量表示法

	var colors = new Array(20);
	var names=[];

数组的length属性,可以从数组的末尾移除项或向数组中添加新项。

2.1检测数组

instanceof
Array.isArray(value)
Object.prototype.toString.call(obj)

2.2转换方法

toString()返回字符串
valueOf()返回数组本身
toLocaleString()
join()
toString()
valueOf()

2.3添加移除

push()数组末尾接受任意数量,并返回修改后的数组长度
pop()数组末尾移除最后一项,减少length值,返回移除的项
shift()移除数组第一项,并返回该项,数组长度减一
unshift()数组前面添加任意个项并返回新数组长度
push与pop栈
push与shift队列
unshift与pop反向队列

2.4重排序

reverse()反转
sort()排序 默认为字符串从小到大排序, a-b从小到大,b-a从大到小 arr本身也被排序
在这里插入图片描述

2.5操作方法

concat()创建当前数组一个副本,然后将接收到的参数添加的这个副本的末尾,返回构建的新数组。不传参则返回当前数组的副本。

var colors=["red","blue","green"];
var colors2=colors.concat("yello",["grey","black"]);//"red","blue","green","yello","grey","black"

slice(start, end)接收一个或两个参数,但不返回结束位置的项,不会影响原数组
splice(起始位置,删除的项数,要插入的项),删除、插入、替换

var colors=["red","blue","green"];
var removed=colors.splice(0,1);//colors删除前一项,removed为返回的删除的项
removed=colors.splice(1,0,"yellow","purple");//colors从1位置插入两项,removed为返回的空数组
removed=colors.splice(1,1,"red","orange");//colors从1位置删除1项,插入两项,removed为返回的删除项

2.6位置方法

indexOf()从数组开头向后查找
lastIndexOf()从数组末尾开始向前查找
返回查找项在数组中的位置,没有则返回-1

2.7迭代方法

  • every()返回true/false
  • filter()返回true的项组成的数组
  • forEach()没有返回值
  • map()返回每次函数调用的结果组成的数组
  • some()返回true/false

归并方法

reduce()
reduceRight()

var values=[1,2,3,4,5];
var sum=values.reduce(function(pre,cur,index,array){
   return pre+cur;
});

arr.reduce(callback,[initialValue])
arr.reduce(callback,[initialValue])
  • callback (执行数组中每个值的函数,包含四个参数)

     previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
     currentValue (数组中当前被处理的元素)
     index (当前元素在数组中的索引)
     array (调用 reduce 的数组)
    
  • initialValue (作为第一次调用 callback 的第一个参数。)
    https://segmentfault.com/a/1190000010731933

3.Date类型

var now=new Date();//当前日期

//指定日期
var someDate=new Date(Date.parse("May 25, 2004"));
var someDate=new Date("May 25, 2004");//等价

var sd=new Date(Date.UTC(2005, 4, ,5, 17, 55, 55));//2005年5月5日17:55:55 月份为从0开始

toLocaleString()
toString()以上不同浏览器格式不同
valueOf()返回日期的毫秒表示,可比较大小来比较日期值
在这里插入图片描述

4.RegExp类型

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions

  • reg.test(str);存在则返回true
  • reg.exec(str);
    在这里插入图片描述
  • str.search(reg);

在这里插入图片描述

  • str.match(reg);以找到一个或多个与RegExp匹配的文本
  • str.split(reg);
  • str.replace(reg, '...');在这里插入图片描述

5.Function类型

fn.apply(this, arguments);
fn.call(this,num1,num2);
fn2=fn1.bind(o);

6.基本包装类型

6.1boolean类型

6.2Number类型

toString();传递一个表示基数的参数,返回几进制数值的字符串形式
toFixed();按照指定的小数位返回数值的字符串表示
toExponential();返回以指数表示法1.0e+1
toPrecision();返回小数位表示或指数表示
在这里插入图片描述

6.3String类型

6.3.1 字符方法

charAt();返回给定位置的字符
carCodeAt();返回给定位置的字符编码

6.3.2字符串操作方法

str1.concat(str2,str3);将一个或多个字符串拼接起来,一般用+
slice(start, end);
substr(start, n);
substring(start, end);
对原始字符串没有影响

6.3.3字符串位置方法

indexOf();
lastIndexOf();

6.3.4trim方法

trim();创建字符串的副本,删除前置及后缀的所有空格,原字符串不变

6.3.5字符串大小写转换方法

toLowerCase();
toUpperCase();

6.3.6

localeCompare();
在这里插入图片描述
fromCharCode();接受一个或多个字符编码,将它们转成一个字符串

7.单体内置对象(Object、Array、String、Global、Math)

7.1Global对象

所有在全局作用域中定义的属性和函数,都是Global对象的属性
Global对象方法:isNaN()isFinite()parseInt()parseFloat()

  • encodeURI();用于整个URI,只对空格进行编码

  • encodeURIComponent();用于URI中的某一段进行编码,对所有非字母数字字符编码

  • decodeURI();

  • decodeURIComponent();

  • eval();接收字符串参数,解析器,执行字符串表示的语句

属性说明属性说明
undefined特殊值undefinedDate构造函数Date
NaN特殊值NaNRegExp构造函数RegExp
Infinity特殊值infinityError构造函数Error
Object构造函数ObjectEvalError构造函数EvalError
Array构造函数ArrayRangeError构造函数RangeError
Function构造函数ObjectReferenceError构造函数ReferenceError
Boolean构造函数BooleanSyntaxError构造函数SyntaxError
String构造函数StringTypeError构造函数TypeError
Number构造函数NumberURIError构造函数URIError

window对象
在全局作用域中声明的所有变量和函数,都是window对象的属性

7.2Math对象

7.2.1Math对象的属性

Math.E自然对数的底数
Math.LN1010的自然对数
Math.LN22的自然对数
Math.LOG2E以2为底e的对数
Math.LOG10E以10为底e的对数
Math.PI
Math.SQRT1_21/2的平方根
Math.SQRT22的平方根

7.2.1Math对象的方法

min()
max()
ceil()向上舍入
floor()向下舍入
round()四舍五入
random()随机数

function selectFrom(lower,upper){
	var choices=upper-lower+1;
	return Math.floor(Math.random()*choices+lower);
}
var num=selectFrom(2,10);//介于2和10之间的一个数值(包括2和10)

abs(num)
exp(num)
log(num)
pow(num,power)
sqrt(num)
acos(x)
asin(x)
atan(x)
atan2(y,x)
cos(x)
sin(x)
tan(x)

《JavaScript高级程序设计》

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值