javascript预编译原理