前端JavaScript面试技巧-----开发环境

1.关于开发环境

关于为什么会考察开发环境方面的问题呢?如下

面试官想通过开发环境了解面试者的经验。
开发环境,最能体现工作产出的效率。
会以聊天的形式为主,而不是出具体的问题。
IDE(写代码的效率)。
git(代码版本管理,多人协作开发)
JS模块化
打包工具
上线回滚的流程

2.IDE(开发工具)

webstorm(功能强大,收费) (大牛,大咖,逼格路线)
sublime(轻量级) (普通低调路线)
vscode(轻量级,插件多)(我用的这个,因为我是文艺小清新,哈哈)
atom(github的软件)(同vscode)

!!! 千万别说你在用Dreamweaver/notpad++
(显得土,? 面试会扣分哦)
!!! 不做.net也不要用Visual Studio
!!! java也不要用eclipse
(理由同上?)

3.Git(代码管理工具)

大型项目都需要代码版本管理
大型项目需要多人协作开发
Git和linux是一个作者哦

4.常用Git命令

git clone https://e.coding.net/tothethousand/xx.git(克隆远程仓库)
git add .(提交到暂存区)
git commit -m “first commit”(暂存区里的改动给提交到本地的版本库)
git push -u origin master(提交给远程仓库)
git status(查看当前状态)
git diff (查看新增的部分)
git checkout xxx(把之前修改的xxx撤销)
git pull origin master(远程仓库代码同步到本地)
git branch(查看分支)
git checkout -b dev(切换到dev分支)
git merge dev(合并分支)

5.模块化

不使用模块化的情况

//举个栗子
//这是util.js
function getFormateDate(data,type){
//type === 1返回这种格式 2019-10-15
//type === 2返回这种格式 2019年10月15日
}

//这是a-util.js
function aGetFormatDate(data){
	return getFormateDate(data,2)//调用util.js的方法
}

//这是a.js
var dt=new Data()
console.log(aGetFormatDate(dt))//输出格式化后的日期

//使用时
<script src='util.js'></script>//引入要用的js
<script src='a-util.js'></script>
<script src='a.js'></script>

上诉情况就没有使用模块化:
1.导致需要同时引入多个js,关系混乱,a.js知道引用a-util.js,但是不知道还要引用util.js。当项目庞大的时候,显然会遇到很多问题。
2.这些代码中必须使用全局变量,才能暴露给使用的一方,容易污染全局变量。

使用模块化是什么样子

//举个栗子
//这是util.js
export{
	getFormateDate:function (data,type){
	//type === 1返回这种格式 2019-10-15
	//type === 2返回这种格式 2019年10月15日
	}
}


//这是a-util.js
var getFormatDate=require('util.js')//引入依赖的js
export{
	aGetFormatDate:function (data){
		return getFormateDate(data,2)//调用util.js的方法
	}
}

//这是a.js
var aGetFormatDate=require('a-util.js')
var dt=new Data()
console.log(aGetFormatDate(dt))//输出格式化后的日期

使用模块化是不是很清晰呀,就不存在上诉问题了。

AMD
require.js一个工具 网址requirejs.org
全局define函数
全局require函数
依赖JS会自动,异步加载

//util.js
define(function(){
	return{
		getFormatDate:function(date,type){
			if(type === 1 ){
				return '2019-10-22'
			}
			if(type === 2 ){
				return '2019年10月14日'
			}
		}
	}
})
//a-util.js
define(['./util.js'],function(util){
	return{
		aGetFormatDate:function(date){
		return util.getFormatDate(date,2)
		}
	}
})
//a.js
define(['./a-util.js'].function(aUtil){
	return {
		printDate: function(date){
			console.log(aUtil.aGetFormatDate(date))
		}
	}
})
//main.js
requrie(['./a.js'],function(a){
	var data = new Data()
	a.printDate(date)
})

CommonJS
node.js 模块化规范,现在被大量使用在前端。why:?
1.前端开发依赖的插件和库,都可以从npm中获取
2.构建工具的高度自动化,使得使用npm的成本非常低
3.CommonJS不会异步加载JS,而是同步一次性加载出来

    //util.js
    module.exports = {
        getFormatDate: function (date, type) {
            if (type === 1) {
                return '2019-10-22'
            }
            if (type === 2) {
                return '2019年10月14日'
            }
        }
    }
    //a-util.js
    var util = require('util.js')
    module.exports = {
        aGetFormatDate: function (date) {
            return util.getFormatDate(date, 2)
        }
    }

AMD和CommonJS的使用场景
需要异步加载JS,使用AMD
使用了npm之后建议使用CommonJS

每晚更新,还没写完。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值