JS语法基础(六)之内置对象

系统提供的对象, Object Array Math Date等

宿主对象(浏览器宿主,Node宿主软件)

浏览器中提供的对象。Js运行环境提供等对象。比如 Bom中的window,Dom中的document。


(一)Math对象

Math本身是一个对象,不是构造函数。

//属性

console.log(Math.PI);

//方法

var a = Math.abs(-100);  //绝对值

- Math.abs(数字); 获取一个数字的绝对值

- Math.round(数字);  四舍五入

- Math.PI;    π

- Math.ceil(数字);    向上取整

- Math.floor(数字);  向下取整

- Math.random();    随机数[0,1);

- Math.max(数字,数字,数字...);    求最大数

- Math.min(数字,数字,数字...);    求最小数

(二)Date对象

Date和Math不同,是一个系统内置的构造函数。是JS提供的日期和时间的操作接口。

可以表示1970年1月1日前后各1亿天。

1)创建日期对象

创建当前时间

new date = new Date();  //输出星期 月份 日期 年份 小时:分钟:秒 时区

console.log(date);  //默认调用了toString(),得到的是字符串。

console.dir(date);  //可以打印对象,得到的是对象。

创建其他时间

new date = new Date('2019/10/10 12:12:12');

//或new date = new Date('2019-10-10 12:12:12');

时间戳:是数字。从1970年到某个时间的总毫秒值

var date = new Date(9999999999);

console.dir(date);

传入多个参数

这种方式中的月份从0开始,即0到11。

var date = new Date(2019,3,4,12,12,12,500);

console.dir(date); //打印2019年4月4日12:12:12

2)操作日期对象

var date = new Date();  //创建一个日期对象

//获取

var year = date.getFullYear(); //获取年份

var month = date.getMonth(); //获取月份。月份从0开始,打印出当前月份-1

var day = date.getDate(); //获取日期

var week = date.getDay(); //获取星期。返回星期数,数字范围为0(周日)到6(周六)

var hours = date.getHours(); //获取小时

var minutes = date.getMinutes(); //获取分钟

var seconds = date.getSeconds(); //获取秒

var milliSeconds = date.getMilliSeconds(); //获取毫秒

var time = date.getTime(); //获取从1970年到某日的时间戳

//设置

date.setMonth(4);  //日期改变成5月

date.setMonth(12);  //日期改变成下一年的1月。数字没有范围,年份会自动变化

date.setMonth(-1);  //日期改变成上一年的12月。

代码举栗:

//封装一个函数,实现格式化日期。

function blockDate(date) {

// var date = new Date(); //获取当前时间

var year = date.getFullYear();

var month = date.getMonth() + 1;

month = month < 10?'0' + month:month;

var day = date.getDate();

day = day < 10?'0' + day:day;

var hours = date.getHours();

hours = hours < 10?'0' + hours:hours;

var minutes = date.getMinutes();

minutes = minutes < 10?'0' + minutes:minutes;

var seconds = date.getSeconds();

seconds = seconds < 10?'0' + seconds:seconds;

var dateStr = (year + '年' + month + '月' + date + '日 ' + hours + '点' + minutes + '分' + seconds + '秒');

return dateStr;

}

var time = new Date(); //当前时间

var time = new Date(2019,3,4,12,12,12); //指定时间

var r = blockDate(time);

document.write(r);

(三)数组对象

在js中数组是一个特殊对象:数组中数据的键名(即下标或索引)是一组从0开始的有序的数字。

var arr = new Array(11,22,33,44,55);

console.log(arr);

1)向数组前后添加数据

var arr = ['张三','李四'];

arr.unshift('小明','小黄');  //在数组最前面添加元素

arr.push('王五','赵六');  //在数组末尾添加元素

//var len = arr.push('王五','赵六');

//console.log(len);  //可以返回添加后的数组长度。

2)删除数组前后数据

var arr = ['张三','李四','王五','赵六'];

arr.pop();  //不需要传参数,删除数组最后一个元素

arr.shift();  //删除数组的第一个元素

//var r = arr.pop(); 

//console.log(arr);  //返回删除掉的最后一个元素

3)删除任意位置的数据

数组名.splice(index,howmany,item1,...,itemn);

index:从数组的什么位置开始删

howmany:删几个

item:添加的其他数据

var arr = ['张三','李四','王五','赵六'];

arr.splice(1,1); //删掉了李四

//arr.splice(1,1,lisi); //将李四替换成了lisi

//arr.splice(1,0,'小明','小白');  //在李四前面添加了小明和小白

console.log(arr);

4)数组元素的查询

数组名.indexOf(searchElement,index);

index:表示从数组的什么位置开始查找

var arr = ['张三','李四','张三','王五','张三','赵六'];  //0,2,4

var index = arr.indexOf('张三');  //返回张三在数组中的位置

//从前往后找,如果数组中有两个张三,返回第一个张三的位置。

var index = arr.indexOf('张三',2); //返回2

//var index = arr.lastIndexOf('张三'); //返回最后一个张三的位置

//若查找的数据不存在,返回-1

//var index = arr.indexOf('陈七');

console.log(index);

5)反转和排序

反转:arr.reverse();

排序:arr.sort();  //默认按照Unicode编码排序,所以11会排在6前面

arr.sort(function(a,b)) {

//a和b代表数组中相邻的两个数字

return a-b; //从小到大排列。

//return b-a; //从大到小排列。

}

6)截取和拼接

截取:arr.slice(start,end);

var arr = ['张三','李四','张三','王五','赵六'];

var r = arr.slice();  //表示截取全部

var r = arr.slice(2);  //表示从指定位置向后截取所有。结果'张三','王五','赵六'

var r = arr.slice(1,3);  //从指定位置向后截取到结束的位置,包括1但是不包括3

拼接:

var arr = ['张三','李四','王五','赵六'];

//var str = arr.join();  //默认用,连接

//var str = arr.join('-');  //用-连接

7)清空数组

var arr = [22,33,44,55];

// 方式1 推荐

arr = [];

// 方式2

arr.length = 0;

// 方式3

arr.splice(0, arr.length);

(四)String对象

字符串在内存中占据的大小由字符串的长度决定,字符串在重新赋值时,字符串的长度可能会发生改变。

在内存中原有的数据不会被更改,而是开辟新的空间,存放重新赋值后的数据。原有的数据会在某一时刻被浏览器回收。

要避免大量的字符串拼接,因为字符串由不可变性,在重新开辟空间时会耗时。

1)获取字符串中的单个字符

字符串.charAt(index);

字符串[index];// 推荐使用

2)字符串的拼接和截取

// 拼接

字符串.concat(str1,str2,str3...);

拼接符+//推荐使用​

// 截取

字符串.slice(star,end);

3)查询字符是否在字符串中存在

字符串.indexOf();

字符串.lastIndexOf();

4)去除空白符

字符串.trim();// 去除字符串两边的空格

5)字母字符大小写转换

字符串.toUpperCase(); // 转换大写 

字符串.toLowerCase(); // 转换小写 

6)字符串替换

字符串.replace(newStr,oldStr);

7)字符串分割

字符串.split(sp);// 把一个字符串分割成字符串数组。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351