JaveScript内置对象(JS知识点归纳八)
1)JS自身提供的方式
用于对数据进行简便的操作,根据方法可以操作的数据类型不同,形成了不同的对象--内置对象
2)数组
a)基本操作方法--对数组进行修改
从数组最后进行操作
1)数组.push(); 传入参数 添加到数组最后 返回值=>新数组
2)数组.pop(); 传入参数 删除最后一个 返回值=>删除元素
从数组开始进行操作
3)数组.unshift(); 传入参数 添加到数组开始 返回值=>新数组
4)数组.shift(); 传入参数 删除最开始的一个 返回值=>删除元素
b)操作方法
1)数组.concat(); 用于数组连接
特性:不会修改原数组,返回操作的结果=>新数组
特殊功能:进行数组的复制操作
2)数组.slice(start,end) 复制数组中指定部分数据
返回值:返回值:获取的结果不含end位置的值,以数组形式返回
特殊功能:
a)不传参数2,默认到最后
b)参数可以为负数.表示从后往前
3)数组.splice(start,len); 截取数组中的指定部分
返回值:截取元素的部分 数组形式
特殊用法:数组.splice(start,len,item1,item2,item3..) 将后面的元素放入原数组中被截取的位置上,个数不需要对应
常用用法:删除数组中的指定元素
c)位置方法-IE9以下不支持
--> 数组.indexof(要查找的元素值,检索的起始位置索引值(默认是==0)) --- 查找数组中置顶元素的索引值
返回值:找到=>返回索引值 没有找到=>-1
数组去重
var arr = [1, 1, 2, 2, 3, 3, 4, 3, 2, 1, 1, 2, 3, 2, 1];
var resultArr = [];
for(var i= 0 ; i<arr.length; i++){
if(resultArr.indexof(arr[i]===-1){
resultArr.push(arr[i]);
}
}
console.log(resultArr);
--> 数组.lastIndexOf() 不经常使用
问题:如果在一个数组中具有多个满足条件的元素,需要多次使用indexof
var arr = ["a", "b", "a", "c", "a", "a", "b", "a", "c", "a", "a", "b", "a", "c", "a", "a", "b", "a", "c", "a", "a"];
var indexArr = [];//用于保存找到的索引值
var index = -1;
while (arr.indexof("a",index +1) != -1){
index = arr.indexof("a",index +1 );
indexArr.push(index);
}
console.long(indexArr);
d)排序方法
1)数组.reverse( ) 翻转数组 修改原数组 返回值=>原数组
2)数组.sort( ) 排序 修改原数组
3)return a-b; 升序 return b-a; 降序
var arr = [7, 5, 8, 6, 3, 11, 22, 9, 2, 1, 4];
//升序的参数形式: function(a,b){return a-b;}
//arr.sort(function (a,b) {
// return a-b;
//});
//降序的参数形式: function(a,b){return b-a;}
arr.sort(function (a, b) {
return b - a;
});
console.log(arr);
模拟 sorted
模拟:
function sorted(arr, fn) {
//fn = function (a,b) {
// //使用时需要的是差的计算结果
// return a-b;//返回的是当前项减后项的差
// return b-a;//返回的是后项减当前项的差
//}
var j, temp;
for (var i = 0; i < arr.length - 1; i++) {
for (j = 0; j < arr.length - 1 - i; j++) {
//比較当前项和后项的大小关系:
//升序的判断条件 : arr[j] > arr[j + 1]
// arr[j] - arr[j+1] > 0;
//降序的判断条件 : arr[j] < arr[j + 1]
// arr[j+1] - arr[j] > 0;
//结论:升序和降序的控制实际上是由比較运算前面的操作数决定的。
//如果是当前项-后项的差,升序。
//如果是后项-当前项的差,降序。
if (fn(arr[j], arr[j + 1]) > 0) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
var arr = [1, 6, 3, 5, 4, 2];
sorted(arr, function (a, b) {
//使用时需要的是差的计算结果
// return a-b;//返回的是当前项减后项的差
return b - a;//返回的是后项减当前项的差
});
console.log(arr);
3)字符串
a)概念
字符串就是基本数据类型,不是对象;JS帮我们创建了基本包装类型对象,并且调用了其属性和方法;我们一定不要自己书写基本包装类型对象
b)转换为字符串
1)数组.toString( );
2)join( );
//var arr = [1,2,3,4,5];
//2.1 如果不传参数,形式和toString相同
//console.log(arr.join());//"1,2,3"
//2.2 传入参数时,会按照传入的字符串将数组的所有元素进行连接
//console.log(arr.join("-"));//"1-2-3"
//2.3 传入空字符串,可以返回元素相连的字符串
//console.log(arr.join(""));//"123"
c)基本属性
1)字符串.length 字符串长度
2)索引
a)字符串[索引值] IE9 以下不支持
b)字符串.charAt(索引值)
d)字符串方法--字符串具有不可变性
1)字符串.concat( ) 字符串连接(不常用,一般使用+)
2)字符串.slice(start,end) 拷贝字符串中的指定部分字符
3)字符串.substring(start,end) 截取字符串中的指定字符(不常用)
不支持负数参数(负数默认是0 ,参数1 > 参数2 =>交换两个参数的值)
4)字符串.substr (start,len) 截取字符串中的指定长度的部分字符
e)大小写转换
1)字符串.toUpperCase(转为大写)
2)字符串.toLowerCase(转为小写)
f)位置方法--没有兼容性
1)字符串.indexOf("要查找的字符串",起始位置索引值);
如果参数1是多个字符,会返回首字母所在的位置(前提是整体必须存在)
2)字符串.LastindexOf("要查找的字符串",起始位置索引值);
g)替换方法
字符串.replace("要替换的字符串","替换为什么字符串");
replace在使用时一次只能替换从左往右的第一个指定字符。
替换次数不定时,使用while循环
var str = "adbcddefdg";
while(str.indexOf("d") != -1){
str = str.replace("d", "z");
}
console.log(str);
l)转换方法
字符串.split() 将字符串转换为数组结构
按照传入的字符串参数将字符串str进行分割操作
var str = "da-bac-ade-af-ag-dwd";
a) 什么也不传,整体会变成一个数组,字符串为数组的第一个元素(不常用)
console.log(str.split());//["abcdefg"]
b) 传入空字符串,转换为数组形式,每个字符为数组中的一个元素
console.log(str.split(""));//["a", "b", "c", "d", "e", "f", "g"]
c) 传入某个字符串
console.log(str.split("-"));
e)常用的使用方法--与数组方法join进行结合
1) 删除字符串中的所有a
var str = "dahuwaadawadaukbawaadua";
var arr = str.split("a");
console.log(arr.join(""));*/
2) 将字符串中的所有a替换为z
var str = "dahuwaadawadaukbawaadua";
var arr = str.split("a");//将a去除
console.log(arr.join("z"));//将z添加
4)Date对象
1 创建方式---var date = new Date();
1.1 当前时间---var date = new Date();
1.2 具体的某一个时间---var date = new Date("2015-1-1 12:12:12");
如果传入的参数为数值,月份是从0开始,如果月份大于11,可能会跨年---var date = new Date(2015,13,1,12,12,12);--console.log(date);
2 date对象的方法---作用:用于获取日期中的某个部分
a)获取年份---console.log(date.getFullYear());
b)获取月份:月份从0开始,使用时注意要加1---console.log(date.getMonth()+1);
c)获取日---console.log(date.getDate());
d)获取星期: 星期是从0开始的,但是0表示周日---console.log(date.getDay());
e)获取小时--- console.log(date.getHours());
f)获取分钟--- console.log(date.getMinutes());
g)获取秒---console.log(date.getSeconds());
h)获取毫秒: 0-999---1秒 是 1000毫秒---console.log(date.getMilliseconds());
5)Math对象
1)Math.PI 圆周率
2)Math.max(item1,item2....)计算多个数的最大值
3)Math.min(item1,item2....)计算多个数的最小值
4)向上取整:取到比当前数值大的最近的一个整数
console.log(Math.ceil(2.3));//3
5)向下取整:取到比当前数值小的最近的一个整数
console.log(Math.floor(1.3)s);//1
console.log(Math.floor(-1.3));//-2*/
四舍五入
console.log(Math.round(1.4));
console.log(Math.round(1.5));
对于负数来说:
下面的计算方式指的是某一位上的数值,不管符号的问题
如果小于等于5,去除小数位,如果大于5,去除小数位并且将整数位的数值扩大1
console.log(Math.round(-1.5));//-1
console.log(Math.round(-1.6));//-2
6)Math.random() 获取随机数 [0.1)
console.log(Math.random());
传入的参数值需要是弧度,可能会出现精度的问题,后期在使用时进行处理即可
7)Math.PI 表示的为180度的弧度 Math.PI/180 1弧度
8)正弦值 console.log(Math.sin(Math.PI / 180 * 60));
9)余弦值: console.log(Math.cos(Math.PI / 180 * 60));
10)正切值: console.log(Math.tan(Math.PI / 180 * 45));
JaveScript内置对象(JS知识点归纳八)的更多相关文章
- JaveScript对象(JS知识点归纳七)
1.JS中的对象表示的是一个具体的事物. a)静态的特征=>对象的属性 b)动态的行为=>对象的方法=>保存的值==>函数 2.对象的创建方式 a)构造函数的创建方式 ``` ...
- 通过javascript的日期对象来得到当前的日期,并输出--内置对象---JS
//通过javascript的日期对象来得到当前的日期,并输出. var mydate = new Date(); var week = ["星期日","星期一" ...
- JS基础语法---内置对象
js学习中三种对象: 内置对象----js系统自带的对象 自定义对象---自己定义的构造函数创建的对象 浏览器对象---BOM的时候讲 内置对象: Math Date String Array Obj ...
- JavaScript (五) js的基本语法 - - - 面向对象、工程模式、内置对象、JSON
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.编程思想 1.定义: 编程思想:把一些生活中做事的经验融入到程序中 面向过程:凡事都要亲力亲为,每件 ...
- JavaScript的事件、DOM模型、事件流模型以及内置对象详解(三)
JS中的事件 JS中的事件分类 1.鼠标事件: click/dbclick/mouseover/mouseout 2.HTML事件: onload/onunload/onsubmit/onresize ...
- JavaScript-----13.内置对象 Math()和Date()
1. 内置对象 js对象分为3种:自定义对象(var obj={}).内置对象.浏览器对象. 前两种对象是js基础内容,属于ECMAScript,第三个浏览器对象是js独有的.讲js API的时候会讲 ...
- 内置对象(Math、Date、String、Array、基本包装类型)
一.内置对象 js中三种对象:内置对象.自定义对象.浏览器对象 实例对象是指通过构造函数创建出来,然后实例化的对象(new关键字) 静态对象是指不需要创建,直接调用的对象,可以在整个JS里调用的公共对 ...
- 170104、js内置对象与原生对象
内置对象与原生对象 内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是在引擎初始化阶段就被创建好的对象,是后者的一个子集:而后者包括了一些在运行过程中动态创建的对象. 原生对象 ...
- 巧用JS内置对象Function
在做练习的时候也好,做项目的时候也好,我经常会碰到想要的到一个字符串“”里面的东西的这样的需求. 注意,“”里面的东西可以是任何东西[],number等等 于是有了个大神教我一个绝招: 于是世界圆满了 ...
随机推荐
- 论文笔记(5):Fully Convolutional Multi-Class Multiple Instance Learning
这篇论文主要介绍了如何使用图片级标注对像素级分割任务进行训练.想法很简单却达到了比较好的效果.文中所提到的loss比较有启发性. 大体思路: 首先同FCN一样,这个网络只有8层(5层VGG,3层全卷积 ...
- 面向对象和面向过程,python中的类class,python中程序的入口——main方法,
1.程序入口,让main显现出来: print(__name__)#__name___是模块中的隐藏字段,当前模块运行的函数名 if __name__ == __main__ __main__() # ...
- python 批量删除mysql前缀相同的表
1,一般游戏log数据库会存储大量的玩家行为日志,一种行为一张表,每天生成一张新表,一天会有30+张不同行为的表,通常会保留玩家日志1年左右,对于超过1年的日志需要删除 2,log数据库一年会保存1W ...
- Ubuntu14.04安装pycharm用于Python开发环境部署,并且支持pycharm使用中文输入
一.目标 实现在Linux下用pycharm调试工具/Python开发 Linux使用vi/vim工具写Python,缺点:调试不方便,无代码提示.跳转等诸多功能. Windows使用idle/pyc ...
- CCF-201803-2 碰撞的小球
问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒.当小球到达线段 ...
- WordPress制作一个首字母排序的标签页面
很早就想制作这样一个页面了,废话不多说, 先看看效果:传送门 在网上找了很多的代码,试了很久,修改了一些代码,最终就达到了现在的效果. 实现方法:(里面增加了缓存功能,打开页面更快,对数据进行了缓存, ...
- WordPress添加显示和隐藏侧边栏按钮开关
在很多的地方都看见过这种效果,就是在文章页面可以切换显示和隐藏侧边栏功能,感觉还是很有用,比如一篇文章的文字内容过多,那么就可以通过隐藏侧边栏来显示更多的文字便于浏览.比如你可以通过点击我文章标题下方 ...
- Python+ Selenium自动化登录腾讯QQ邮箱实例
学习了Python语言一段时间后,在公司的项目里也使用到了python来写测试脚本,一些重复的操作都使用脚本来处理了.大大的提高工作效率,减少了一些手工重复的操作. 以下是使用unittest框架写的 ...
- php做的一个简易爬虫
对于爬虫的好奇好像由来已久,一直在研究python的爬虫,今天得空研究研究php的爬虫 index.php <?php header("Content-Type:text/html;c ...
- 用js写动态时钟 2017-03-23
45每隔1秒变一次: 代码如下: <body onLoad="show()" > ------------表示当页面载入时执行该事件,可以没有 <div id ...