基本类型在栈空间,引用类型(对象,方法,数组)在堆空间
1.const是定义一个常量,和let都是块级作用域。不可以重复声明。对于复合类型的常量,常量名不指向数据,而是指向数据所在的地址。const命令只是保证常量名指向的地址不变,并不保证该地址的数据不变,也就是说,将对象常量指向另一个地址会报错,但对象本身是可变的,可以为其添加,修改属性,因此将一个对象声明为常量必须十分小心。比如先定义一个const obj = {name:"zhangsan"}。如果再定义一次obj,就会报错,因为这样子改变了obj指向的地址,但是可以改变obj里面name属性的值。
2.数组解构是按数组里面内容的顺序解构,对象解构是按属性名解构。
3.字符串.includes()是用来判断字符串里面有没有子字符串。字符串.startsWith()是判断字符串是否以...开头。字符串.endsWith()是判断字符串是否以...结尾。
4.promise异步
//提供一个需要执行的函数 let p = new Promise( //在promise这个对象创建完毕之后,立即执行这个函数。 function(resolve, reject){ //resolve 成功的回调 需要手动执行 resolve() // reject 失败的回调 只要这个函数中代码错了,也会执行,除此之外手动执行reject() console.log(123); // console.log(a); reject(); } ); p.then( function resolve(){ console.log('resolve调用了'); }, function reject(){ console.log('reject调用了'); } );
5.Array.from是将一个类数组对象或者可遍历对象转换成一个真正的数组。讲一个类数组对象转换成真正的数组需要以下条件:1、该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。2、该类数组对象的属性名必须为数值型或字符串型的数字(该类数组对象的属性名可以加引号,也可以不加引号)。参考这里。
6.model
7.webpack中配置babel-loader,首先安装,babel-loader是基于webpack的加载器(将es6转为js),babel-core是babel核心语法, babel-preset-es2015 打包了 es6 的特性。
npm install babel-core babel-loader babel-preset-es2015 --D
然后配置webpack.config.js文件:
module: { rules: [ // exclude 排除,不需要编译的目录,提高编译速度 {test: /\.js$/, use: 'babel-loader', exclude: /node_modules/} ] }
创建babelrc文件(在命令行创建:echo 随意输入 >.babelrc):
{ presets: ['es2015'] }