我的作业5
# 我的作业5
# 1、
let和var的不同请从以下几个方面来通过代码说明 1)不存在变量提升 2)同一个作用域内不能重复定义同一个名称 3)有着严格的作用域 4)块级作用域的重要性
Function fn(){
console.log(a);//不同于var, 这里显示a is not undefined
let a=1;
}
let a = 1
let a = 2 //同一作用域不能重复定义
let a=1 //在循环里,a变量作用域
if(true){
let a=100
console.log(a) // 100
}
for(let i=0; i<10; i++){
console.log(i);// i is not defined
}
# 2、
暂时性死区是什么,举例1-2例说明 一个局部块只能有一个let的同名的申请
var a =10;
if(true){
a=50;
console(a);// 同局部块只能let申请一次
let a;
}
# 3、
写出对应的答案,求出变量的值
let [x= 10,y = 20] = [1]; // x=1 y=20
let [x,y='b']= ['a']; //x=’a’y=’b’
let {x,y = 5} = {x:10}; // x=10 y=5
let [x=1,y] = [null,'y']; //x=null y=’y’
let {x:y=5} ={x:50}; //x=null y=50
function f(){return 100}
let [x=f(),y=f()] = [null,undefined]; //x=null y=100
let {x:a=f(),y:b=20} = {x:undefined}; //x=null y=100
# 4、
var obj = {
id:1,
name:'abc',
sex:'男',
friends:['x','y','z'],
o:{id:2,msg:'hello'}
};
1)通过对象解构的方式,name的别名为n;o的别名为h; 2)取出’hello’的值
var {id,name:n,sex,friends,o:h} = obj
console.log(h.msg)
# 5、
const fun =({a = 1, b = 1} = {}) =>[a, b];
fun({a: 10, b: 10}); //a=10 b=10
fun({a: 10}); //a=10 b=1
fun({}); //a=1 b=1
fun(); //a=1 b=1
# 6、
const fun =({x, y} = { x: 1, y: 1 }) =>[x, y];
fun({x: 10, y: 10}); //x=10 y=10
fun({x: 10}); //x=10 y undefined
fun({}); //x undefined yundefined
fun(); //x=1 y=1
# 7、
通过includes()实现模糊匹配
var arr=[arrs]; //定义数组
var input=’a’; //定义要查询的关键
arr.filter(function(item){return item.includes(input);})
# 8、
function fun(a,b,...c){
console.log(c);
}
fun(1,2,3,4)
输入结果
[3,4]