JavaScript相关

  • Boolean && 变量
  • Boolean || 变量可以用来设置默认值
  • a.indexOf(b)a为字符串或者数组
  • a.toFixed(2)a类型为number,保留小数
  • toString()可以判断对象的类型。number.toString
  • -a可以将a转化为number类型
  • 正则表达式//gi,g表示全局搜索,i表示忽略大小写
  • js不支持负向零宽断言(?<=aaa)
  • Math.floor()向下取整,Math.ceil()向上取整,Math.round()四舍五入。
  • arr.sort()由大到小排序后面减去前面。
  • substr() 方法返回一个字符串中从指定位置开始到指定字符数的字符。
    不改变原数组,字符串
    str.substr(start[, length])
  • Array.prototype.slice()
    String.prototype.slice()
    slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。
  • Array.prototype.splice()

array.splice(start[, deleteCount[, item1[, item2[, …]]]])

splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。

返回值

由被删除的元素组成的一个数组。如果只删除了一个元素,则返回只包含一个元素的数组。如果没有删除元素,则返回空数组。
- Array.forEach(arguments, func())对非数组序列进行forEach处理
- Array(<len>).fill(<value>) 填满数组

numberArray.sort(function(a,b){  //6,5,4,3,2,1
    return b-a;
})
  • 数组操作: shift(),unshift(),pop(),push()。改变原数组。

  • 箭头函数的this,指向其定义位置的this。

  • this总是指向函数的直接调用者(而非间接调用者),在DOM事件中,this指向定义这个事件的DOM对象;

  • t=setTimeout(fun(), N毫秒);clearTimeout(t)t=setInterval();clearInterval(t)

  • async与await

    var start = async function () {
    for (var i = 1; i <= 10; i++) {
    console.log(当前是第${i}次等待..);
    await sleep(1000);
    }
    };

  • e.preventDefault();

对象处理

  • Object.keys(obj)得到对象的可枚举属性
  • delete Obj.prop删除对象属性
  • 简单的拷贝:const a = {};``a = { ...ArrObj }Object.assign({}, Obj)
  • 字符串与对象的转换:JSON.stringify(json)JSON.parse(string)。Array也是Object类型
  • 字符串变量d用作对象属性名:{ [d]: !this.state[d] }

作用域

  • if块级作用域在ES5与ES6中不同
  • const a = func; 与function a(){}的变量提升方式不同;
  • for循环中let 与var i = 0,在函数中不同

原型继承

  • 对象的constructor属性指向它的构造函数。对象的__proto__属性指向上一级的原型对象。构造函数的prototype等于其生成对象的__proto__。

  • 必须显式地设置原型才能确保动态的继承,将B设置为A的原型链: A.prototype = new B;

  • 将构造器B属性传给A作为A的自身属性

    function A (a, b) {
    B.call(this, c, d);
    this.machine = mach || “”;
    }

  • A为函数:A.prototype={ constructor: A, __proto__: 基本prop }

Web APIs

  • 在chrome中加入断点:在源码中加入debugger
  • 前端全局对象window,node.js全局对象global。全局对象可以用来设置全局变量window.abc
  • window.location获取当前页面网址信息,可进行页面跳转
  • fetch跨域加上{ mode: ‘no-cors’ },response类型为opaque,status为0。或者使用fetch-jsonp
  • 赋值localStorage.abc = string,数字存入localStorage后变为string
  • URLSearchParams
  • es6 array新方法