包装对象:
1.点语法只有引用数据才能使用
2.基本数据比如字符串的toUpperCase , 数字的toFixed
基本数据调用点语法,有一个隐式操作,基本数据是不能使用点语法的,只要程序中出现了,就会把基本数据转化为对象
字符串:
常用方法:
toUpperCase()转大写
toLowerCase()转小写
取单个字符:str[0];当成数组来取,通过下标来取
str.charAt(0)
str.trim():去掉前导空格和后导空格
取编码:str.charCodeAt(下标) a:97 A:65
string.indexOf(searchString : 查找目标字符串, position? : 开始查询的位置,默认0) : 查找字符串第一次出现的位置,如果有,返回第一次出现的位置; 如果字符串中没有查询的字符串,返回-1
字符串的截取:
str.substring(start: number, end?: number) ?: 可选,可以写可以不写,
包含start, 不包含end
end: 不写,默认截取到最后一个字符
负数没有意义
start 和 end可以交换位置
str.substr(from: number, length?: number) ?: 可选
包含from ,
from: 支持负数,从字符串末尾开始截取(-1开始)
length: 不写默认,截取到最后一个字符
str.slice(start?: number, end?: number) ?:可选
支持负数
包含start , 不包含end
start与end的位置不能交换位置,字符串只能从左往右进行截取
*字符串拆分 str.split(): 通过指定的字符串分隔目标字符串,结果为数组
笔试题:把当前页面地址中的url的参数转化为obj对象
数组:
arr,push(57),原数组后添加元素,会改变原数组,返回值为数组元素个数
arr.unshift(57),原数组前面添加元素,会改变原数组
arr.pop(),删除数组最后一个元素,返回值为删除的元素
arr.shift(),删除数组第一个元素,返回值为删除的元素
arr.splice(2,3,hello),从下标几开始删除,删除几个元素,在该位置插入的元素
注意:可以表示前四个功能,但不常用
arr.slice(2,5)(开始截取的下标,结束截取的下标),[),返回值是截取的元素
arr.join():将数组转为字符串,返回值为字符串(将数组的元素用逗号连接,成为一个字符串)
arr.reverse(),反转数组元素,得到一个新数组。
arr.indexOf():查找数组中元素,查到了就返回元素的下标,没有查到就返回-1
遍历数组:
for 循环:兼容性最好
for-in :可以遍历对象,会遍历出原型
for-of:es6新语法,直接遍历出数组元素,不能遍历对象
var arr[10,304,4,50]
for(el in arr){
console.log(arr[el])
}
arr数组的API
map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。产生新数组,不改变原数组
Var arr=[10,30,409,5]
arr.map(functoin(el,index,arr){
console.log(el,index,arr,11111)
})
(2) filter():传入一个返回值为布尔类型的函数。
如果该函数返回为true,则将当前循环项作为元素放入新数组,如果为false,则不放入。不改原数组
理解:过滤器,传入一个函数作为参数,该函数主要用来判断想要过滤的条件,条件为真,则将该元素放入新数组,为假 不放入。
不生成新数组
(1) forEach() :对数组中的每一项运行给定函数,没有返回值,它和使用for循环的结果相同
(2) every():对数组中的每一项运行给定函数,如果该函数对每一个项都返回true,则返回true;反之,有一个值是false就返回false(默认返回false)。不会生成新数组 也不会改变原数组
(3) some():对数组中的每一项运行给定函数,如果该函数对任一一项返回true,则返回true(默认返回false)
reduce:
使用指定的函数对数组元素进行组合,生成一个值,接收两个参数。
-
求累加:
var a = [1,2,23,34,5,6,78,98,900]; var n = a.reduce(function (x, y) { return x + y; }, 0); // 参数一匿名函数function,为要执行的函数 // 参数二为0,函数的默认起始值,即第一次执行0将被赋值给previousValue;
求累积:
var a = [1,2,23,34,5,6,78,98,900]; var m = a.reduce(function (x, y) { return x*y; }, 1);
求数组最大值:
var a = [1,2,23,34,5,6,78,98,900]; var max = a.reduce(function (x, y) {return x > y ? x : y;}, 0);