let 和 const let 声明块级变量
const 声明块级常量,简单数据类型不可以变, 对象和函数可以变; 因为const指向地址
(1)在函数表达式中使用, 只有一个参数时, 括号()可以忽略;
(2)没有参数和多个参数时要加上()(3)函数只有一行的简洁函数体时, 不用声明return直接返回; 块级函数体需要手动return
this 是固定的
let fn = x => x * x
var link = ()=>{}
arrs.map(value => { })
数组遍历
参数: 元素本身, 元素下标, 数组本身
filter() 返回一个所有通过测试的元素的新数组, 返回true表示保留该元素, 返回false表示不保留该元素 var newArr = arr.filter(item=>{ return item > 3;})
map() 原数组中每个元素调用一个指定方法后, 返回值组成一个新的数组 var a = [1, 2, 3,4 5]
var b = a.map(item=>{
return item + 1;
})
forEach() 遍历数组中每个元素, 没有返回值
every() 遍历数组, 每个都通过测试, 则返回true
some() 遍历数组,有一个通过测试,则返回true
改变自身数组的方法:
push() 在末尾添加元素
pop() 删除并返回最后一个元素,
unshift() 在开头添加元素
shift() 删除并返回第一个元素
splice() 删除元素, 替换元素, 插入元素
reverse() 数组翻转
sort() 数组排序
不改变自身数组的方法
concat() 拼接数组 let newarr = arr1.concat(arr2, arr3);
join() 拼接成字符串 let arrStr = arr.join(’_’);
slice() 数组抓取 let newArr = arr.slice(0, 5); 第二个参数可以为负数
valueOf()—返回数组对象的原始值。
1 数组拼接, 解开数组[]暴露元素
var arr1 = [1,2,3]; var arr2 = [4,5,6];
arr1.push(…arr2)
[…arr1, …arr2]
2 对象拼接
var obj1= { name: ‘my’}; var obj2 = {sex: ‘male’};
var obj3 = {…a, …b, x: 1}
// es5中, 使用requireJs,一个文件一个模块, 暴露属性和方法
module.exports = {
port: 3000,
getAccounts: function(){
console.log(this.port)
}
}
//es5中, 使用requireJs,一个文件一个模块, 暴露属性和方法
//引用时, 变量名表示整一个模块, 相当于一个对象
var config = require('module.js');
var port = config.port
//es6, 使用commonJs
export default name = 'rmy';
export let port = 3000;
export function getAccount(){
...
}
//默认属性不用放在{}里
import name, {port, getAccount} from 'module.js';
var link = function(height=50, color=‘red’){ }
var name =
your name is ${first} ${last}
;${变量名}
var {house, mouse} = obj.data
new Promise((resolve, reject)=>{
....
resolve()
}).then(()=>{
}).catch(()=>{
})
resolve表示进行下一步then, reject表示下一步catch
then也是一个promise, 参数是resolve传下来的参数
Promise.all() 将多个promise实例包装成一个新的promise实例, 成功返回一个结果数组, 失败返回最先失败状态的值
Promise.all(promiseArray).then(res => {
)
属性在构造函数中分配; 方法不用关键字function; constructor使用默认参数;
class baseModel {
constructor(options, data){
this.name = 'base;
this.url = 'http://baidu.com';
this.data = data;
this.options = options;
}
getName(){
console.log(this.name)
}
}
let base = new baseModel()
base.getName()
先在该类找属性和方法, 如果找不到, 再去继承的类里找
class AccountModel extends baseModel {}
Object.assign() 对象合并
第一个参数是目标对象, 从第二个参数开始, 按顺序拼接供应者的属性到第一个参数,有相同的属性则会被覆盖
var recevier = {}
Object.assign(recevier, {type: ‘js’, name: ‘file.js’}, {type: ‘css’})
for in 遍历对象自身和继承的可枚举属性