<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 1.var 会变量提升, let const不会
//
//
// console.log(x)
var x = 10;
console.log(y)
let y = 0 //报错
//2.let const 在同一个作用域下不可以重复定义同一个变量名
let y = 0
let y = 9;
// console.log(y) //报错
// 3.var是函数作用域 let const是块级作用域
// 4.const声明后必须赋值 只读变量 基本数据类型只读
const i //报错
//5.const在声明引用类型是可以修改的
//6.let的暂时性死区特性,在下边if的块中,由于let声明了num,所以在if块内暂时性死区,就不会像找变量,这里会报错
//7.使用小指南总结:const一声明一些不变的数学公式等,解析引擎不需要要实时监控,也就是说他的值不变,const效率高
var num = 10
if (true) {
console.log(num)
let num = 20
}
// 箭头函数 语法 简化函数定义
let f = v => v
let f = function(v) {
return v
}
//
let f = () => v
let f = function() {
return v
}
//
let f = (n1, n2) => n1 + n2
let f = function(n1, n2) {
return n1 + n2
}
// 返回对象就要加()
var a = arr.filter(item => items > 10)
var a = arr.filter(function(item) {
return item > 10
})
// set map 数据结构
// set() 类似于数组, 成员唯一
var s = new Set(); //创建
s.add(1) //添加s.add(1).add(2)
// 数组转set集合,可实现去重
var arr = [1, 2, 1, 1, 1, 2, 3, 4, 343, 4, 343, 2, 2]
var s = new Set(arr)
console.log(s)
//数组去重法
var arr = [1, 2, 1, 1, 1, 2, 3, 4, 343, 4, 343, 2, 2]
var s = [...new Set(arr)]
console.log(s)
// ...扩展运算符 参数序列 var es6=[1,2,3] var es7=...es6 (去掉了括号1,2,3)
//阿里面试题
var length = 100;
function f1() {
console.log(this.length)
}
var obj = {
length: 10,
f2: function(f1) {
f1();
argumengts[0]();
}
}
obj.f2(f1, 1)
</script>
</body>
</html>