最近在学习es6,下面是学习过程中总结的一些语法。
1.编程范式
分类一:命令式编程:给计算机指令,第一步需要做什么、第二步需要做什么、第三步需要做什么
声明式编程:拿到数据,把数据保存到每个位置,在对应的位置进行声明,之后会自动遍历
分类二:面向对象编程(第一公民:对象)
函数式编程(第一公民:函数)
2.const 和 let 关键字
变量作用域:变量在什么范围内是可用
块级作用域:{ } 花括号内的作用域就叫块级作用域,可以用闭包来产生块级作用域
函数作用域:函数定义中{ }就叫函数作用域,其中关键字var声明的变量就在函数作用域中
let 关键字:
定义的变量是存在于块级作用域中,不会出现变量污染
const 关键字 :
特点:可定义常量,有块级作用域,不会出现变量污染
建议:
在开发中优先使用 const
,只有需要改变某一个标识符的时候才使用 let
注意 :
const 定义的是
常量
,
不可修改
const 修饰的标识符
必须赋值
常量:可以改变对象内的属性值,但是不能通过直接赋值的方式改变对象的地址
3.对象字面量的增强写法
字面量:根据一个东西就能直接知道这个东西代表了什么
{ }能直接知道代表的是对象
[ ]
能直接知道代表的是数组
对象字面量增强写法:
本质:增强写法本质就是在合适的情况进行适当的简写操作
属性
增强写法:用法:在对象中的属性名和属性值相同则可简写为只写一 个属性名即可
例子:const obj = {name,age}
函数
增强写法:用法:(区别声明函数的时候)
简写前格式:函数名:function ( ) { }
例子:eat:function( ) { }
简写后格式:函数名( ) { }
例子:eat( ) { }
4.JavaScript高级函数
filter函数 :
作用:进行
筛选过滤
,类似
判断
过程
filter中的回调函数要求:必须返回boolean值
n代表回调函数中传入的参数名字,可根据自己的需要自行修 改为其他参数名字
true:将回调的n加入到新数组
false:过滤这次的n
例子:const nums = [ 10, 20, 111, 222, 666, 40, 50 ]
let newNums = nums.filter( function( n ) {
return n < 100
} )
console.log( newNums)
// 输出结果:10, 20,40, 50
map函数:作用:对
数组内所有
的数据进行某一次的
统一变化
例子:
let num1 = [ 10, 20, 30, 40, 50 ]
let numA = num1.map( function ( n ) {
return n * 2
} )
console.log( numA )// 输出结果:20, 40, 60, 80, 100
reduce函数:作用:对
数组
中所有的内容进行
汇总
例子:
let numA = [ 20, 40, 60, 80, 100 ]
let total = numA.reduce( function ( preValue, n ) {
return preValue + n
}, 0 )
console.log( total )// 输出结果:300
5.箭头函数
参数问题:一个参数:当只有一个参数的时候,参数列表的小括号可以省略,相当于简写
例子:cosnt power = num => { return num * num}
两个参数:原生写法,参数不止一个时,无法省略小括号,无简写
例子:const sum = ( num1, num2) => {return num1 + num2}
箭头函数this
的指向问题:
箭头函数中的this引用的就是
最近作用域中的this