1
0
Fork 0
Obsidian 管理的个人笔记仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1.4 KiB

import 声明

import 声明有两种用法,一个是直接 import 一个模块,另一个是带 from 的 import,它能引入模块里的一些信息。

import "mod"; //引入一个模块
import v from "mod";  //把模块默认的导出值放入变量v

直接 import 一个模块,只是保证了这个模块代码被执行,引用它的模块是无法获得它的任何信息的,而带 from 的 import 意思是引入模块中的一部分信息,可以把它们变成本地的变量。

独立的 export 导入相当于是一个引用,导出的变量仍然指向同一个地址(无关引用类型和值类型)。

export default 导出的则是一个值,但是对于引用类型而言,也是会被修改的

var 声明的预处理

var 在预处理阶段,不关心赋值的部分,只管在当前作用域声明这个变量

var a = 1;
function foo() {
	console.log(a); // undefined

	// var 会穿透一切语言结构
	if(false) {
		var a = 2;
	}
}

foo();

function 声明

function 声明表现跟 var 相似,不同之处在于,function 声明不但在作用域中加入变量,还会给它赋值。

看一个与之不同的例子:

// foo 会被提升,但不会被赋值
console.log(foo); // undefined

if(true) {
	function foo(){ }
}

class 声明

class 声明也是存在预处理的,但是它的行为会更加的符合直觉,