1、什么是模块?
在面向对象编程设计中,模块至少归属于一个“类”;
在javascript编程中,可以把js文件归属于一个模块。
案例1:module.js
<script type="text/traceur"> //module.js export const intVariantName = 100; export const FloatVariantName = 3.1415926; export const charVariantName = "variantValue"; //use.js import * as variant form './module'; console.log(variant.intVariantName); //100 console.log(variant.charVariantName); //3.1415926 console.log(variant.charVariantName); //variantValue </script>
解析:import表示导入文件;
variant表示的类似于“容器container”;
module表示模块化。
2、什么是全局对象?
全局对象是最顶层的对象,在浏览器环境中指的是window对象;在Node.js中指的是global对象;
在JavaScript中,所有全局变量都是全局对象的属性。(Node情况比较特殊,这一条对REPL环境使用,模块环境必须显式声明global属性。)
ES6规定,var命令和function命令声明的全局变量,属于全局对象的属性;let命令、const命令、class命令声明的全局变量,不属于全局对象的属性。
<script type="text/traceur"> var varName="varValue"; //浏览器环境下 console.log(window.varName); //varValue //Node.js环境下 //console.log(global.varName); //通用环境 console.log(this.varName); //varValue let letName = "letValue"; console.log(window.letName); //undefined; console.log(this.letName); //undefined </script>