node.js是基于Chrome V8引擎的JavaScript运行时
就是一个运行环境,他是基于谷歌V8引擎的运行环境。
作用:可以让js开发服务端功能
没有变量提升
console.log(age) //报错 let age = 18有块级作用域
for(let i = 0; i < 10; i++){} console.log(i) //报错不能重复声明
let num = 10 let num = 20 //报错可以重新赋值
let num = 10 num = 20 console.log(num)定义常量的关键字,一旦定义就不可被修改
没有变量提升
console.log(num) const num = 10有块级作用域
{ const num = 10 } console.log(num)不能重复声明
const num = 10 const num = 20不可以重新赋值
const num = 10 num = 20 //报错 console.log(num)声明必须初始化
const num //报错 console.log(num)将一个对象的某些属性赋给变量
基于es6版本
let obj = { name : 'lyb', age : 22, sex : '男' } //第一种情况 let {name:name1,age:age1,sex:sex1} = obj; console.log(name1,age1,sex1) //lyb 22 男 //第二种情况 let {name:name,age:age,sex:sex} = obj; console.log(name,age,sex) //lyb 22 男 //第三种情况 let {name,age,sex} = obj; console.log(name,age,sex) //lyb 22 男 //第四种情况 let {name,age,sex,score} = obj; console.log(name,age,sex,score)//lyb 22 男 undefined //第五种情况 let {name,age,sex,score=100} = obj; console.log(name,age,sex,score) //lyb 22 男 100 //第六种情况 let {name,age,sex:gender} = obj; console.log(name,age,gender) //lyb 22 男 //第七种情况 let {name,age = 10,sex} = obj; console.log(name,age,sex) //lyb 22 男将数组中的值依次赋值给变量
基与es6版本:
let arr = [1,2,3] //第一种情况 let [num1,num2,num3] = arr; console.log(num1,num2,num3) //1,2,3 //第二种情况 let [num1,num2,num3,num4] = arr; console.log(num1,num2,num3,num4) //1,2,3,undefinde //第三种情况 let [num1,num2,num3,num4=100] = arr; console.log(num1,num2,num3,num4) //1,2,3,100 //第四种情况 let [num1,num2] = arr; console.log(num1,num2) //1,2 //注意:只能依次赋值,不可以间隔赋值声明对象的时候后边的对象属性的值是前面对象的数组,可以用对象展开方式简写
展开运算符:…(三个点)
//声明一个变量 let chinese = { skin: '黄色', hair: '黑色', sayHi() { console.log('Ni好,吃了没?') } } // 声明一个变量 let zhubo = { skill: '跳唱rap篮球', sex:'女' } // 声明一个变量 let person = { // skin: '黄色', // hair: '黑色', // sayHi() { // console.log('Ni好,吃了没?') // }, // skill: '跳唱rap篮球', // sex: '女' ...chinese, ...zhubo, } console.log(person)展开运算符:…(三个点)
使用场景:数组拼接、利用Math.max,Math.min求最大最小值
let arr1 = [1, 2, 3, 4] let arr2 = [...arr1, 5, 6] console.log(arr1, arr2) //[ 1, 2, 3, 4 ] [ 1, 2, 3, 4, 5, 6 ] let max = Math.max.apply(Math, arr1) console.log(max)//4 let max1 = Math.max(...arr1) console.log(max1)//4遍历数组,把遍历出来的每一项交给回调函数
没有返回值
//eg let arr = [1, 2, 3, 4, 5] let max = -1 arr.forEach(function (item,index) {//item 就是遍历出来的每一项,index是索引 if (item > max) { max = item } }) console.log(max);//5遍历数组,有返回值,跟forEach类似
过滤器:返回新的数组,新的数组中的元素是通过检查后符合条件的元素
所有的空格缩进都会保留在输出中
// 使用场景1 let name = 'lyb'; let age = 22; let score = 100; console.log(`我的名字是${name},我的年龄${age},我的成绩是${score}`); //我的名字是lyb,我的年龄22,我的成绩是100 // 使用场景2 function test() { return '哈哈哈' } console.log(`我是神雕大侠,我在笑:${test()}`); //我是神雕大侠,我在笑:哈哈哈作用:和数组类似,不同点是他不能存放重复元素
应用场景:数组去重