-
为啥不能收藏查看全部
-
什么是闭包
查看全部 -
闭包的作用
查看全部 -
forEach
map不会修改原来的数组
filer会过滤符合 不会修改原来的数组
every数组中每一个元素都要符合某个条件
some只要任意一个元素复符合条件就行
reduce 操作数组中的两个元素 最后聚合成一个数组
reduceRight 操作数组中的两个元素 最后聚合成一个数组
indexOf&lastIndexOf 数组检索
!!!判断是否为数组
Array.isArray([]);// true
[] instanceof Array;// true
({}).toString.apply([]) === '[object Array]'
[].constructor === Array;//true
查看全部 -
var arr = [1,2,3]; arr.join(); // "1,2,3" arr.join("_") // "1_2_3" function repeatString(str, n){ return new Array(n + 1).join(str); } repeatString("a",3); // "aaa" repeatString("Hi", 5); // "HiHiHiHiHi"
数组逆序
var arr = [1,2,3] arr.reverse(); // [3,2,1] arr;// [3,2,1]会改变原数组
数组排序
arr.sort默认是按字母,数组首位顺序排序;会修改原数组 a-b 从小到达排序
数组合并
var arr = [1,2,3] arr.concat(4,5);// [1,2,3,4,5] arr; // [1,2,3]不会修改原数组,参数是二维或多维数组会拉平,添加的元素师二维数组不会被拉平
返回部分数组
arr.slice(开始元素索引,结束元素索引)// 左闭合,右开区间,负数表示从后往前数;原数组未被修改!!! var arr = [1,2,3,4,5]; arr.slice(1,3);// [2,3] arr.slice(1);// [2,3,4,5] arr.slice(1,-1);// [2,3,4] arr.slice(-4,-3);// [2]
数组拼接
var srr = [1,2,3,4,5] arr.splice(2);// return[3,4,5] arr;//[1,2] arr.splice(2,2);// return [3,4] arr;//[1,2,5]原数组会被修改
查看全部 -
创建数组:1.字面量的方式
var arr1 = [1,,2];//1,undefined,2
var arr2 = [,,];//undefined*2
数组的长度:最小是0,最长的2^23 - 1
2.new Array 构造器的方式来创建数组
数组元素增删:
arr.length和arr.push的方式添加元素都是在元素的末尾添加元素
arr.unshift方法是在元素的头部添加元素
delete arr[2] 只是把第三个元素变成undefined,数组长度不变
数组迭代,for ; for in
for in 遍历出来的数组无序,而且会遍历原型链,使用hasOwnProperty来过滤
查看全部 -
delete obj.x delete为删除 obj为对象 x是对象内容
var obj={x:1};删除x obj.x 就为undefined
查看全部 -
类型检测有typeof ;instanceof;Object.prototype.toString;constructor;duck type
typeof 100 为"number";typeof true 为"boolean";function "function"
(undefined) "undefined";newObject() "object";[1,2] "object";NaN "number";null "object";
查看全部 -
function构造器查看全部
-
严格模式:'use strict';提高错误检查,增强安全性
不允许适应with
不允许未声明的变量被赋值
arguments变为参数的静态副本
delete参数,函数名报错
delete不可配置属性报错
对象字面量重复属性报错
禁止八进制的字面量
eval arguments变为关键字,不能作为变量,函数名
eval独立作用域
查看全部 -
处理异常的顺序是什么?
try{
}catch(....){
}finally{
}
先try捕获异常,执行catch里面的内容,最后执行finally里面的内容,当然也可以只写catch或者finally两个中的一个,但是必须写try语句块。
红色区域内,try没有对应的catch,所以throw出去的Error("oops")抛了出去,在此之前不管是否抛异常都要先走finally,所以先输出"finally", 而后外层的try/catch捕获到这个Error("oops"),所以第二条输出"outer" "oops"
查看全部 -
注:用typeof判断返回类型时,typeof null === "object"
查看全部 -
属性删除
如图
查看全部 -
slice(8,-1)截取从第8个字符到最后一个字符(不包括最后一个)
查看全部 -
定义多个属性defineProperties
查看全部
举报