第二章 面试题进阶篇

2.1 ES6面试题

1. var、let、const区别

var、let、const 共同点都是可以声明变量的

区别一:
    var 具有变量提升的机制
    let和const没有变量提升的机制
区别二:
    var 可以多次声明同一个变量
    let和const不可以多次声明同一个变量
区别三:
    var、let声明变量的
    const声明常量
    var和let声明的变量可以再次赋值,但是const不可以再次赋值了。
区别四:
    var声明的变量没有自身作用域
    let和const声明的变量有自身的作用域

2.2 作用域考题

1. let和const没有变量提升性

console.log( str );//undefined
var str = '你好';

console.log( num );//报错
let num = 10;
function demo(){
    var n = 2;
    if( true ){
        var n = 1;
    }
    console.log( n );//1
}
demo();


function demo(){
    let n = 2;
    if( true ){
        let n = 1;
    }
    console.log( n );//2
}
demo();

可以修改

const obj = {
    a:1
}
obj.a = 11111;
console.log( obj )

const arr = ['a','b','c'];
arr[0]= 'aaaaa';
console.log( arr );

2. 将下列对象进行合并

方式一:Object.assign
const a = {a:1,b:4};
const b = {b:2,c:3};

let obj1 = Object.assign(a,b);
console.log( obj1 );
方式二:...
let obj2 = {...a,...b};
console.log( obj2 );
方式三:自己封装方法
function extend( target,  source ){
    for(var key in source){
        target[key] = source[key];
    }
    return target;
}
console.log( extend(a,b) );

2.3 箭头函数和普通函数有什么区别?

  1. 箭头函数没有prototype(原型),所以箭头函数本身没有this
  2. 箭头函数的this在定义的时候继承自外层第一个普通函数的this。
  3. 如果箭头函数外层没有普通函数,严格模式和非严格模式下它的this都会指向window(全局对象)
  4. 箭头函数本身的this指向不能改变,但可以修改它要继承的对象的this。
  5. 箭头函数的this指向全局,使用arguments会报未声明的错误。
  6. 箭头函数的this指向普通函数时,它的argumens继承于该普通函数
  7. 使用new调用箭头函数会报错,因为箭头函数没有constructor
  8. 箭头函数不支持new.target
  9. 箭头函数不支持重命名函数参数,普通函数的函数参数支持重命名
  10. 箭头函数相对于普通函数语法更简洁优雅

2.4 Promise有几种状态

有三种状态:
pending(进行中)
fulfilled(已成功)
rejected(已失败)

2.5 find和filter的区别

区别一:返回的内容不同
    filter 返回是新数组
    find   返回具体的内容
区别二:
    find   :匹配到第一个即返回
    filter :返回整体(没一个匹配到的都返回)

2.6 some和every的区别

some  ==》 如果有一项匹配则返回true
every ==》 全部匹配才会返回true

2.7 webpack面试题

webpack相关面试题(深度考察)_webpack面试题-CSDN博客

2.8 Git面试题

1. git常用命令

创建仓库命令

命令

说明

git init

初始化仓库

git clone

拷贝一份远程仓库,也就是下载一个项目。


提交与修改

命令

说明

git add

添加文件到暂存区

git status

查看仓库当前的状态,显示有变更的文件。

git diff

比较文件的不同,即暂存区和工作区的差异。

git difftool

使用外部差异工具查看和比较文件的更改。

git range-diff

比较两个提交范围之间的差异。

git commit

提交暂存区到本地仓库。

git reset

回退版本。

git rm

将文件从暂存区和工作区中删除。

git mv

移动或重命名工作区文件。

git notes

添加注释。

git checkout

分支切换。

git switch(Git 2.23 版本引入)

更清晰地切换分支。

git restore(Git 2.23 版本引入)

恢复或撤销文件的更改。

git show

显示 Git 对象的详细信息。

提交日志

命令

说明

git log

查看历史提交记录

git blame <file>

以列表形式查看指定文件的历史修改记录

git shortlog

生成简洁的提交日志摘要

git describe

生成一个可读的字符串,该字符串基于 Git 的标签系统来描述当前的提交

远程操作

命令

说明

git remote

远程仓库操作

git fetch

从远程获取代码库

git pull

下载远程代码并合并

git push

上传远程代码并合并

git submodule

管理包含其他 Git 仓库的项目

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值