定义变量的方式:let 、const 、 var
1、var 变量会提升,有全局作用域和函数作用域2、let、const 必须先定义,在使用 变量不会提升,变量不能重复定义(不能重名) 有快级作用域,超出快级就不能使用3、let 变量,值在程序执行的过程中,可以发生改变 const 常量,在定义的时候必须赋值,后面在运行的时候就没有机会赋值了 解构赋值:分解结构,进行赋值 作用:可以快速定义多个变量,并且给变量赋值,将复杂数据类型分解成变量 1、对象结构过程: 解构过程: 把对象属性值,赋值给同名变量// let {name, age} = {name: '狗蛋', age: 18};// let {name, age} = {name: '狗蛋', age: 18};
变量名和属性名不同的情况
// let {name:userName, age} = {name: '狗蛋', age: 18}; // console.log(userName, age); 设置默认值(如果可能解构失败可以设置默认值, 默认值是备胎) // let {name, age, sex ='女'} = {name: 'zs', age: 18, sex: '男'}; // console.log(name, age, sex); 2、数组结构过程: //let arr = [2, 3, 4]; // let [c1, c2, c3] = arr; 只取部分值 // let [, c1, ] = arr; // console.log(c1);
模板字符串:使用反引号 ` `
1、可以换行,保留格式进行输出 let str = '大家好,我叫' + name + ', 今年' + age+ '岁了, 是' + sex + '生';2、可以进行插值${....}
let str1 = `大家好, 我叫${name}, 今年${age}岁了, 是${sex}生`; 字符串新方法:返回true或者false1、str.startsWith(字符串) 判断str是否以指定字符串开头2、str.endsWith(字符串) 判断str是否以指定字符串结尾3、str.includes(字符串) 判断str是否包含指定字符串对象简写:
1、如果对象和属性名相同,可以只写一个2、对象中方法,可以省略functionlet name = '翠花';
let age = 18;let obj = {
name: name, age: age, sex: '男', say: function () { alert('我男朋友是, 鹏鹏'); }, hi: function (){ alert('就是鹏鹏!!'); }} let obj1 = { name, age, sex: '男', say() { alert('我男朋友是, 鹏鹏'); }, hi () { alert('还是鹏鹏'); } }console.log(obj1.name);
obj1.say(); 展开运算符 ... --允许一个表达式在某处展开 let arr1 = [1, 2, 3];let arr2 = ['a', 'b', 'c']; let arr2 = ['a', 'b', 'c', ...arr1]; 箭头函数:1、定义函数用的是箭头 =>2、箭头函数,也是函数表达式3、var 变量 = (参数列表)=> { 函数体 }4、箭头函数的简写:(1)只有一个变量,可以省略()(2)函数体只有一行代码,可以省略{ }和returnlet big = num => num * 10 ;5、箭头函数内部没有自己的this,使用的this是外部函数的this,箭头函数不能作为构造函数
6、函数可以设置默认参数,当函数没有传递,取默认值 set去重:new set()可以得到一个set实例,set是一个集合,可以存储数据唯一值 var arr = [1, 2, 3, 4, 3, 2]; var set = new Set(arr); // {1, 2, 3, 4} var arr = [...set]; // 将set实例展开成数组[...set] console.log(arr);