一.变量
1.var:
- 可以重复声明(项目开发中可能出现一个变量被定义多次的情况导致报错)
- 无法限制修改
- 没有块级作用域
2.let:不能重复声明,变量-可以修改,块级作用域
3.const:不能重复声明,常量-不可以修改,块级作用域
ps:变量提升:
变量提升是浏览器的一个功能,在js代码运行前,浏览器会给一个全局作用域叫window,window分两个模块,一个是存储模块,另一个是执行模块。存储模块找到当前作用域下的所有带var和function关键字,执行模块 代码从上到下执行,遇到变量就会去内存地址查找有没有这个变量,有就看这个变量有没有赋值,如果赋值了就是后面的值,如果没有赋值后面就是undefind 没有找到就是xxx is not defined
二.箭头函数(主要作用就是简写)
1.函数: function 方法名(){}
2.箭头函数:()=>{}
3.特别注意(a.如果只有一个参数,()可以省;b.如果只有一个return,{}可以省)
三.函数的参数
1.参数扩展:
- 收集参数function show(a,b,…args){}
- Rest Parameter必须是最后一个
2.展开数组:
- 展开后的效果跟直接把数组内容写在这一样
3.默认参数:
- 可以直接赋值
四.解构赋值
1.注意:左右两边结构必须一样,右边必须书写正确,声明个赋值不能分开
let [{a,b},[n1,n2,n3],num,str]=[{a:12,b:15},[1,2,3],4,'ls']
五.数组
1.map:映射
let arr=[1,2,3]
let result=arr.map(function(item){
alert(item) //1,2,3
})
alert(result) //1,2,3
--箭头函数
let result=arr.map(item=>item*2)
alert(result) //2,4,6
let score=[34,56,99,87,32]
let result=score.map(item=>item>=60?'及格':'不及格')
alert(score) //34,56,99,87,32
alert(result) //不及格,不及格,及格,及格,不及格
2.reduce:汇总
let arr=[12,69,180,8763];
let result=arr.reduce(function(tem,item,index){
return tem+item
})
alert(result) //9024
3.filter:过滤器
let arr=[12,4,6,7,27,34]
let result=arr.filter(item=>{
return item%3==0
})
alert(result) //12,6,27
4.forEach:循环(迭代)
let arr=[12,5,8,9]
arr.forEach(item=>{
alert(item) //12,5,8,9
})
六.字符串
1.新增两个方法
- startsWith:判断字符串以什么开头
- endsWith:判断字符串以什么结尾
2.字符串模板
- L键盘`上面的那个符号(~~)
七.json
1.JSON对象
-
JSON.stringify :转换为字符串
-
JSON.parse :解析
2.简写
- 名字和值(key,value)一样.留一个就行
- 方法 :function 可以省略
3.json标准写法
- 只能用双引号
- 所有的名字都必须用引号包起来