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.8 KiB
1.8 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 声明也是存在预处理的,但是它的行为会更加的符合直觉,更倾向于抛出错误
指令序言机制
"use strict"是 JavaScript 标准中规定的唯一一种指令序言,但是设计指令序言的目的是,留给 JavaScript 的引擎和实现者一些统一的表达方式,在静态扫描时指定 JavaScript 代码的一些特性。
JavaScript 的指令序言是只有一个字符串直接量的表达式语句,它只能出现在脚本、模块和函数体的最前面。