03-2 JS的常用对象(2)

1、Boolean(了解)

Boolean对象描述

         1)Js提高的3个包装对象之一,是基本类型boolean的包装类;

2)Boolean 对象主要用于提供将布尔值转换成字符串的 toString() 方法。

 

Boolean对象创建

Boolean 对象表示两个值:"true"或 "false"。

创建 Boolean 对象的语法:

new Boolean(value);        //构造函数

Boolean(value);                 //转换函数

当作为一个构造函数,把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象。

如果作为一个函数调用时,B把它的参数转换成一个原始的布尔值,并且返回这个值。

 

注释:如果省略 value 参数,或者设置为 0-0null""falseundefined NaN,则该对象设置为 false。否则设置为 true(即使 value参数是字符串 "false")。

2、Number(了解)

Number对象描述

         1)Js提高的3个包装对象之一,是基本类型 数值类型的包装类;

2)在必要时,JavaScript 会自动地在原始数据和对象之间转换。

 

Number对象创建

Number 对象是原始数值的包装对象。

创建 Number 对象的语法:

var myNum=new Number(value);

var myNum=Number(value);

当作为一个构造函数时,它返回一个新创建的 Number 对象。

当作为一个函数来调用,把自己的参数转换成一个原始的数值,并且返回这个值(如果转换失败,则返回 NaN)。

3、String

String对象描述            

1)字符串是 JavaScript 的一种基本的数据类型。

2)String对象的length 属性 声明了该字符串中的字符数。

3)String 类定义了大量操作字符串的方法。

例如:从字符串中提取字符或子串;检索字符或子串;大小写转换等

 

注意:JavaScript 的字符串是不可变的(immutable),String类定义的方法都不能改变字符串的内容。像String.toUpperCase()这样的方法,返回的是全新的字符串,而不是修改原始字符串。

 

String对象创建

String 对象用于处理文本(字符串)。

创建 String 对象的语法:

new String(s);

String(s);

当作为构造函数使用时,它返回一个新创建的 String 对象,存放的是字符串 s 或 s 的字符串表示。

当作为函数调用时,它只把 s 转换成原始的字符串,并返回转换后的值。

 

3.1String常用属性和方法

属性length:返回字符串的长度;

 字符方法

charAt、charCodeAt、formCharCode

var s = "abcd";
console.log(s.charAt(1));//b
console.log(s.charCodeAt(1));//98
//*静态方法
console.log(String.fromCharCode(98));//b 

位置方法

indexof:返回某一个指定的字符首次出现的位置,对应的字符函数返回-1

lastIndexof:与上面恰好相反,从末尾查找起。

var s = "abcdcba";
console.log(s.indexOf('b'));     //1
console.log(s.lastIndexOf('b')); //5

从原字符串中获取子串

substring、substr、slice

var s = "abcdefg";
console.log(s.substring(1));   //bcdefg
// 截取索引是1,4的子串(顾头不顾尾)
console.log(s.substring(1,4));//bcd
// 负值转换为0
console.log(s.substring(-1,4));//abcd
 
console.log(s.substr(1));      //bcdefg
// 截取从索引1,开始截取,往后截取4个
console.log(s.substr(1,4));    //bcde
// 第一个参数与字符串长度相加,第二个参数转换为0
console.log(s.substr(-1,4));   //g
 
console.log(s.slice(1));       //bcdefg
console.log(s.slice(1,4));     //bcd
//负值与字符串长度相加
console.log(s.substr(-1,4));   //g

大小写转换

toLowerCase、toUpperCase

去处空格

trim、trimLeft、trimRight

匹配方法

match、search、replace、split

var s = "aabcddee";
//如果没有找到,返回null;0表示被匹配到的字符串;index表示被匹配到的位置;input表示被查找的这个子串
console.log(s.match("abc")); //[0:"abc", index: 1, input:"aabcddee"]
//查找下标
console.log(s.search("bc")); //2
console.log(s.replace("aa","**"));//**bcddee
console.log(s.split("dd"));  //["aabc","ee"]                                                                   

 拼接方法

concat

var s = "a";
// 可添加n个参数
console.log(s.concat("bc","de","f","g"));//abcdefg          

编码方法

字符串常规编码与解码:escape、unescape

URI字符串编码与解码:encodeURI、decodeURI

URI组件编码与解码:encodeURIComponent、decodeURIComponent

用的比较多的是encodeURI / decodeURI

//encodeURIComponent & decodeURIComponent
var url = "http://baidu.com?k=张三&q= a";
var enURI =encodeURIComponent(url);
var deURI =decodeURIComponent(encodeURI);
// 对整个url进行编码,不推荐
console.log(encodeURI);  //http%3A%2F%2Fbaidu.com%3Fk%3D%E5%BC%A0%E4%B8%89%26q%3D%20a
console.log(decodeURI);  // http://baidu.com?k=张三&q= a
 
// encodeURI& decodeURI
// 只对uri部分进行编码,推荐
var enURI =encodeURI(url);
var deURI =decodeURI(enURI);
console.log(enURI);  // http://baidu.com?k=%E5%BC%A0%E4%B8%89&q=%20a
console.log(deURI);  // http://baidu.com?k=张三&q= a

3.2字符串细节

typeof与instanceof:

var s1 = new String("abc");
console.log(typeof s1);  //object
 
var s2 = "abc";
console.log(typeof s2); //String
 
console.log((s1instanceof String)); //true
console.log((s2instanceof String)); //false

总结:instanceof适合判断对象,typeof适合判断基本类型;由此可以得到基本类型与包装类型的区别。

字符串的组成:

//字符串,就是一个字符数组,可以通过下标获取值
var s = new String("abcd");
console.log(s[1]);//b

boolean类型转换:

//boolean类型转换为字符为相应的字符串
var s = new String(true);
console.log(s);//true

4、Array

Array对象描述

Array 对象用于在单个的变量中存储多个值。

 

Array对象创建

创建 Array 对象的语法:

new Array();

new Array(size);

new Array(element0, element1, ..., elementn);

返回新创建并被初始化了的数组。

作为构造函数使用:

如果调用构造函数 没有参数 时,那么返回的数组为空,length 字段为 0。

当调用构造函数 传递一个数字参数 时,该构造函数将返回具有指定个数、元素为 undefined 的数组。

当调用构造函数 传递多个参数 时,会将参数值来初始化数组。

作为函数调用:

作为函数调用时,它的行为与使用 new 运算符调用它时的行为完全一样。

 

4.1基本操作

存取与增加数组

//数值型下标数组
var arr = new Array("aa","bb","cc","dd");
console.log(arr[1]);// bb
 
//非数值型下标数组
var arr = new Array(3);
arr["aa"] = 1;
arr["bb"] = 2;
arr["cc"] = 3;
arr["dd"] = 4;
console.log(arr["aa"]); //1

删除数组

//非数值型下标数组
var arr = new Array(3);
arr["aa"] = 1;
arr["bb"] = 2;
arr["cc"] = 3;
console.log(arr["aa"]); //1
 
delete arr["aa"];
console.log(arr["aa"]); //undefined

遍历数组//数值型下标数组

var arr = new Array("aa","bb","cc","dd");
for(var index in arr){
    console.log(arr[index]);
}

4.2Array常用属性&方法

constructor:引用数组对象的构造函数

length:返回数组的长度

prototype:通过增加属性和方法扩展数组

 

判断是否是数组

isArray()

 

在数组的头部添加元素

unshift

var arr = new Array();
arr.unshift("aa");
arr.unshift("bb");
console.log(arr[1])//aa

 

队列方法(先进先出)

push\shift(添加\删除) 

//队列方法
var arr = new Array();
console.log(arr.push("aa")); //返回数组长度1
console.log(arr.push("bb")); //返回数组长度2
console.log(arr.push("cc")); //返回数组长度3
console.log(arr.shift());//"aa"
console.log(arr.shift());//"bb"

栈方法(后进先出)

push\pop(添加删除)

//栈方法
var arr = new Array();
console.log(arr.push("aa")); //返回数组长度1
console.log(arr.push("bb")); //返回数组长度2
console.log(arr.push("cc")); //返回数组长度3
console.log(arr.pop());//"cc"
console.log(arr.pop());//"bb"

 子数组

splice: 从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。

arrayObj.splice(start,deleteCount,[item1[,item2[, . . . [,itemN]]]])

start  - 删除的开始位置;

deleteCount  -  删除元素的个数

第三参数  -  在删除的位置插入的元素

注意:该方法改变了原数组

 

slice:返回一个数组的一段。

arrayObj.slice(start, [end])

start  -- 开始位置

end   -- 结束位置

 

//子数组
var arr =[1,2,3,4,5,6,7,8]; 
console.log(arr.splice(2,3,[9,9,9,9]))//[3, 4, 5]
console.log(arr);  //[1, 2, Array(4), 6, 7, 8]
var arr =[1,2,3,4,5,6,7,8];
console.log(arr.slice(2,4));//[3, 4]
console.log(arr);  //[1, 2, 3,4, 5, 6, 7, 8]
 

数组排序(略)

reverse(反转)、sort(排序)

 

数组转换(略)

toString

toLocaleString

join

 

位置方法(略)

indexof、lastIndexOf

 

迭代方法

every、filter、forEach、map、some

//every()相当于逻辑与
var arr =[1,2,3,4,5,6,7,8];
var everyRes =arr.every(function(item,index,array){
    //index当前下标; item当前值; array被迭代的数组
    return (item>2);
});
console.log(everyRes); //false
 
//some()相当于逻辑或
var someRes =arr.some(function(item,index,array){
    return (item>2);
});
console.log(someRes); //true
 
//filter()返回给定条件的数组
var filterRes =arr.filter(function(item,index,array){
    return (item>2);
});
console.log(filterRes); //[3, 4, 5, 6, 7, 8]
 
//map()返回给定条件的数组
var mapRes =arr.map(function(item,index,array){
    return (item*2);
});
console.log(mapRes);   //[2, 4, 6, 8, 10, 12, 14, 16]
 
//forEach()没有返回值
arr.forEach(function(item,index,array){
   console.log(item);
})

 

缩小方法

reduce、reduceRight

//reduce()归并方法接受传入的函数和作为归并基础的初始值(可选
//要传入的函数接收四个函数,前一个值,当前值,索引项,数组对象
var sum =arr.reduce(function(prev,cur,index,array){
   return prev + cur;
});
console.log(sum);  //36
 
//reduceRight()归并方法和reduce()方法本质一样,区别就在于是从后向前开始边里
var sum2 =arr.reduceRight(function(pre,cur,index,array){
   return pre + cur;
});
console.log(sum2); //36

5、Date

Date对象创建

Date 对象用于处理日期和时间。

创建 Date 对象的语法:

var myDate=new Date()

注释:Date 对象会自动把当前日期和时间保存为其初始值。

 

Date对象的静态方法:

Date.now()

返回当前距离1970年1月1日00:00:00 UTC的毫秒数(Unix时间戳乘以1000)。

Date.parse()

用来解析日期字符串,返回当前距离1970年1月1日00:00:00 UTC的毫秒数,解析失败返回NaN

 

Date对象的实例方法:

to类方法

toString:返回一个完整的日期字符串

 

get类方法

getTime():返回实例对象距离1970年1月1日00:00:00 UTC的毫秒数,等同于valueOf方法

getDate():返回实例对象对应每个月的几号(从1开始)

getDay():返回星期几,星期日为0,星期一为1,以此类推

getYear():返回距离1970的年数

 

valueOf方法

返回实例对象距离1970年1月1日00:00:00 UTC的毫秒数,等同于getTime方法

var date = new Date();
console.log(date); //Mon Aug 28 2017 23:33:35 GMT+0800 (中国标准时间)
console.log(Date());//Mon Aug 282017 23:33:35 GMT+0800 (中国标准时间)
console.log(date.toString());//Mon Aug 282017 23:33:35 GMT+0800 (中国标准时间)
 
console.log(date.getTime());//1503934415139
console.log(date.getDay()); //1
console.log(date.getYear());//117
 
console.log(date.valueOf());//1503934415139
 
console.log(Date.now()); //1503934415139
console.log(Date.parse("Mon Aug28 2017 23:33:35"));//1503934415139
 
date.setDate(2015,1,6);
console.log(date.valueOf());//1675611515700

6、Math

Math对象创建

Math 对象用于执行数学任务。

使用 Math 的属性和方法的语法:

var pi_value=Math.PI;

var sqrt_value=Math.sqrt(15);

注意:Math 对象并不像 Date String那样是对象的类,因此没有构造函数 Math(),像 Math.sin()这样的函数只是函数,不是某个对象的方法。您无需创建它,通过把 Math作为对象使用就可以调用其所有属性和方法。

7、RegExp

RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。

直接量语法

/pattern/attributes

创建 RegExp 对象的语法:

new RegExp(pattern, attributes);

pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

 

一个新的 RegExp 对象,具有指定的模式和标志。如果参数 pattern 是正则表达式而不是字符串,那么 RegExp() 构造函数将用与指定的 RegExp 相同的模式和标志创建一个新的 RegExp 对象。

如果不用 new 运算符,而将 RegExp() 作为函数调用,那么它的行为与用 new 运算符调用时一样,只是当 pattern是正则表达式时,它只返回 pattern,而不再创建一个新的 RegExp 对象。 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值