周末总结

103 阅读3分钟

正则表达式

  1. 备选字符集/^[]$/
  2. 预定义字符集
    一个数字:\d
    一个数字、字母、下划线\w
    一个空格\s
  3. 有明确数量的话
    {n,m} 出现n-m次
    {n,}至少出现n次

    {n}必须出现n次
  4. 无明确数量 ?可有可无,最多1次
    *可有可无,多了不限
    +最少一次,多了不限
  5. 选择和分组(规则|规则)
  6. 预判 (?![预判规则]+$)
  7. 验证 var bool=reg.test(输入的内容);

Math对象

  1. 取整
    Math.ceil(num) 上取整
    Math.ceil(num) 下取整
    Math.round(num) 四舍五入取整
  2. 乘方
    Math.pow(底数,幂);
  3. 开方
    Math.sqrt(num);
  4. 最大值Math.max
  5. 最小值Math.min
  6. 随机数Math.random()

Date()日期对象

  1. 获取当前时间:
    var now=new Date();
  2. 复制时间,
    var copy=new Date(now);

API

FullYear Month Date Day Hours Minutes Seconds Milliseconds
get获取
set设置
Day不允许设置,取值范围是0-6,0代表星期天
Month取值范围是0-11

错误对象

语法错误:SyntaxError
引用错误:RerferenceError
类型错误:TypeError
范围错误:RangeError
错误处理用if else
try catch性能太差了

function 重载

arguments可以做的事:
1、变相实现重载:通过在函数内部判断arguments,执行不同的操作
2、以后有没有形参已经无所谓了
3、正式开发中,有可能将多个函数整合为一个函数 - 提升代码性能 - 代码优化

匿名函数

匿名自调函数:只会执行一次,节约内存,因为匿名函数,没有变量引用着,用完就会立刻被垃圾回收器回收掉 (function(){ })();
匿名函数回调:将函数作为实参,传递给其他函数调用 1、学习回调的目的:让你们知道哪些东西属于回调,匿名函数只要不是自调,就是回调
arr.sort(function(){})
str.replace(reg,function(){})
btn.onclick=function(){}

闭包

希望保护一个可以【反复使用的局部变量】的一种词法结构,其实函数一个函数,写法和以前有点不同 何时使用:希望保护一个可以【反复使用的局部变量】的时候
如何使用:
1、两个函数进行嵌套
2、外层函数创建受保护的变量
3、外层函数返回return出内层函数
4、内层函数要去操作受保护的变量
防抖节流公式: function fdjl(){
var timer=null;
return function(){
if(timer!=null){clearTimeout(timer)}
timer=setTimeout(function(){
//操作
},1000);
}
}
var result=fdjl();

对象object

  1. 创建对象 var obj={
    "属性名":"属性值"
    "方法名":"function(){},"
    }
  2. 访问对象的属性和方法
    obj.属性名; === obj["属性名"] obj.方法名(); === obj"方法名"; js中一切都是对象,一切对象的底层都是hash数组
  3. 访问到不存在的属性,返回undefined
  4. 可以随时随地添加新属性和新方法
    obj.属性名=属性值;
    obj.方法名=function(){};
  5. 如果我们希望遍历出对象所有的东西,应该使用
    for(var i in lzh){
    console.log(lzh[i]);
    }
  6. 如果你希望在对象的方法里使用到对象自己的属性:this.属性名;
    this的指向:
    1、单个元素绑定事件:this->单个元素
    2、多个元素绑定事件:this->当前触发事件的元素
    3、函数中使用this->谁在调用此方法,this指的就是谁
    4、定时器中的this->window
    5、箭头函数this->外部对象
    6、构造函数中的this->当前正在创建的对象