☞ JavaScript组成: ECMAScript | DOM | BOM
☞ ECMAScript: 变量 , 函数, 数据类型 ,流程控制,内置对象。。。
☞ js中的对象: 自定义对象 , 内置对象 , 浏览器对象(不属于ECMAScript)
☞ Math对象,Array对象,Date对象。。。。
☞ 通过查文档学习内置对象 MDN (https://developer.mozilla.org/zh-CN/docs/Web/JavaScript)
Array对象
数组: 可以一次保存多条数据, 数组也是一个用来保存数据的容器。
数组的类型: Array Array.prototype
伪数组的类型: Object Object.prototype
相同点:都可以通过索引获取数据,都有length获取长度
不同点:伪数组 和 数组的类型不一样,伪数组无法调用数组中的方法。
Array属性
获取函数的名字
var arr = [];
console.log(arr.constructor.name);
Array方法
map()方法
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。
注意: map循环是不可以跳出的 map函数中return的对象会组成一个新的数组
新数组长度一定和原数组相等
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
语法:
array.map(function(currentValue,index,arr), thisValue)
参数:
currentValue 必须。当前元素的值
index 可选。当前元素的索引值
arr 可选。当前元素属于的数组对象
thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
如果省略了 thisValue,或者传入 null、undefined,那么回调函数的 this 为全局对象。
返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
filter()方法
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
注意: filter() 不会对空数组进行检测。
注意: filter() 不会改变原始数组。
array.filter(function(currentValue,index,arr), thisValue)
参数同map()方法
返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。
sort()方法
排序顺序可以是字母或数字,并按升序或降序。
默认排序顺序为按字母升序。40会排在5前面,除非传参
数组在原数组上进行排序,不生成新数组
注意: 这种方法会改变原始数组!。
语法:
array.sort(fn) //可选。规定排序顺序。必须是函数。
function fn (a,b) {return b-a;} //a-b为升序,b-a为降序
pop()方法和shift()方法
pop() 方法用于删除数组的最后一个元素并返回删除的元素
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
注意:pop()方法和shift()方法改变数组的长度!
ary.pop()
ary.shift()
push方法和unshift() 方法
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
注意: push方法将新元素将添加在数组的末尾。
注意: unshift() 方法方法将新元素将添加在数组的开头。
注意: push方法和unshift() 方法改变数组的长度。
var b = array.push(item1, item2,
array.unshift(item1,item2,
join() 方法
join() 方法用于把数组中的所有元素转换一个
字符串。
array.join([separator]) // 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
indexOf() 方法和lastIndexOf()
数组与字符串用法一样
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。Number类型
如果没有找到匹配的字符串则返回 -1。
注意: indexOf() 方法区分大小写。
返回值:查找指定字符串第一次出现的位置,如果没找到匹配的字符串则返回 -1。
string.indexOf(searchvalue,[start]) //searchvalue 规定需检索的字符串值。
//start 规定在字符串中开始检索的位置
其他方法
var ary = []
ary.valueOf() // valueOf() 方法返回 Array 对象的原始值。
ary.toString() // 把数组转换为字符串,使用逗号分隔
ary.reverse() // 翻转数组 该方法会改变原来的数组,而不会创建新的数组。
Math对象
Math方法
☞ Math.PI 获取圆周率【属性】
☞ Math.random() 返回大于等于0小于1之间的随机数
☞ Math.floor() 向下取整,返回一个小于当前数字的整数
☞ Math.ceil() 向上取整,返回一个大于当前数字的整数
☞ Math.round() 四舍五入
Math.abs() 取绝对值(返回当前数字的绝对值,正整数)
☞ Math.max() 返回一组数中的最大值 (可以设置多个参数,返回其中最大值,参数不可以是数组)
☞ Math.min() 返回一组数中的最小值 (可以同时设置多个参数,与最大值效果一样)
☞ Math.sin(x) 返回一个正弦的三角函数 ( 注意: x 是一个以弧度为单位的角度)
☞ Math.cos(x) 返回一个余弦的三角函数 (注意: x 参数是一个以弧度为单位的角度)
Date对象
☞ Date是一个构造函数,必须通过 new Date() 创建一个实例成员才能使用
☞ 用法一:空构造函数
var d = new Date();
☞GMT 格林威治时间(0时区)
☞ 用法二:在构造函数中传入毫秒值
var d = new Date(d.valueOf());
☞ 用法三: 传入日期格式的字符串
var d = new Date("1988-8-8")
☞ 用法四: 传入数字
var d = new Date(year, month[,day,time,second]); //必须设置年和月
备注: 月份从0 开始, 0 代表1月
☞ 获取当前时间的毫秒值:
d.valueOf()
d.getTime() // 推荐使用
Date.now() //H5 新方法 有兼容信息
Date方法
☞ 日期格式化方法
var d = new Date();
d.toString(); //转化成字符串
d.toDateString(); //转换成日期字符串
d.toTimeString(); //转换成时间字符串
d.toLocaleDateString(); //返回本地的日期格式 (不同浏览器不同效果)
d.toLocaleTimeString(); //返回本地的时间格式 (不同浏览器不同效果)
☞ 获取日期其他部分
d.getSeconds() //获取秒
d.getMinutes() //获取分钟
d.getHours() //获取小时
d.getDay() //返回周几 (0表示周日)
d.getDate() //返回当前月的第几天
d.getMonth() //返回月份 (从0开始)
d.getFullYear() //返回年份
string对象
string方法
字符串特性
不可变性,定义一个变量再次赋值会重新开辟空间
注意: 在程序中不要大量的拼接字符串
charAt() 方法
1. charAt(index) //获取指定位置处的字符
2. str[index] //获取指定位置的字符 (H5中的方法)
concat() 方法
concat() 方法用于连接两个或多个字符串。
该方法没有改变原有字符串,但是会返回
连接两个或多个字符串新字符串。
string.concat(string1, string2,
substr() 方法
substr() 方法可在字符串中抽取从* 开始* 下标开始的指定数目的字符。
提示: substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
注意: substr() 方法不会改变源字符串。
string.substr(start,length)
start:要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
substring() 方法
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
substring(start,[end]) //从指定位置开始,截取字符串到结束位置, end值取不到
如果省略end,那么返回的子串会一直到字符串的结尾。
slice() 方法
slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
string.slice(start,end) //从指定位置开始,截取字符串到结束位置, end值取不到
如果省略end,那么返回的子串会一直到字符串的结尾。
replace() 方法
返回新字符串
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
string.replace(searchvalue,newvalue)
只替换找到的第一个
str.replace(/searchvalue/g,"red"); //替换全局
split() 方法
split() 方法用于把一个字符串分割成字符串数组。
提示: 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
注意: split() 方法不改变原始字符串。返回一个字符串数组
string.split(separator,[limit])
separator:可选。字符串或正则表达式,从该参数指定的地方分割 string Object。
limit:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
trim() 方法
trim() 方法用于删除字符串的头尾空格。
trim() 方法不会改变原始字符串。
转换大小写
toLocaleLowerCase() //转化为小写
toLocaleUpperCase() //转化为大写