JavaScript:网页脚本语言,潜入到网页中,使得浏览器可以与网页互动
(1)借鉴C语言的基本语法;
(2)借鉴Java语言的数据类型和内存管理;
(3)借鉴Scheme语言,将函数提升到”第一等公民”(first class)的地位;
(4)借鉴Self语言,使用基于原型(prototype)的继承机制。
所以,Javascript语言实际上是两种语言风格的混合产物—-(简化的)函数式编程+(简化的)面向对象编程。
语言的标准化:ECMAScript
ECMAScript简称es
es5与es3保持基本兼容,所有主要浏览器都支持ECMAScript 5.1版的全部功能
es5:原生JSON对象、继承的方法、高级属性的定义以及引入严格模式
es6(ES2015):模块(import)和类以及一些实用特性,例如箭头函数,Maps、Sets、Promises、生成器(Generators)等
CommonJS是区别于ECMAScript的另一种规范,业界有很多它的实现,其中最著名的是node.js,另外还有Apache的CouchDB
CommonJS涵盖了模块(require)、二进制、Buffer、字符集编码、I/O流、进程环境、文件系统、套接字、单元测试、Web服务器网关接口、包管理等
Babel 是一个 JavaScript 编译器,将 采用 ECMAScript 2015+ 语法编写的代码 转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中
.browserslist用了这个就不需要大部分情况就不需要autoprefixer, stylelint, eslint-plugin-compat
> 1%
last 2 versions
not dead
babel.config.js
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
],
env: {
development: {
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
// This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
// 开发环境import转换热更新
plugins: ['dynamic-import-node']
}
}
}
es6用babel转为es5就可以运行在浏览器里
浏览器不兼容CommonJS的根本原因,在于缺少四个Node.js环境的变量
module
exports
require
global
webpack打包可以解决这个问题
由于webpack别名配置好以后,如果想要在vscode中可以正确提示路径,就需要配置jsconfig.json文件
jsconfig.json
{
“compilerOptions”: {
“target”: “ES6”,
“module”: “commonjs”,
“allowSyntheticDefaultImports”: true,
“baseUrl”: “./”,
“paths”: {
“@/
“: [“src/
”]
}
},
“exclude”: [“node_modules”]
}
而tsconfig.json文件是ts中指定了用来编译这个项目的根文件和编译选项
参考:
https://www.jianshu.com/p/11b58d1bfeed
https://www.cnblogs.com/51kata/p/5358111.html
https://www.babeljs.cn/docs/babel-preset-env
https://blog.csdn.net/shmnh/article/details/53424302
https://blog.csdn.net/weixin_43845137/article/details/122952997