JavaScript是 解释型 弱类型 脚本语言
解释型:
在 JavaScript程序正式执行之前,先将整个JavaScript 预先 解释 编译 解析一遍
针对 var 关键词 和 function 关键词 定义的变量和函数,执行 预解释/预编译/预解析
实际项目中,所有的变量,要使用var关键词来声明
预解释的无底线
即时在最终不会执行的程序中,定义的变量,也会被执行预解释
提前调用,执行结果也是 undefined
总结:
变量,函数,实际项目中,必须要使用 var function 关键词 来声明定义
var 定义的变量,可以被提前调用,执行结果是undefined
function 定义的函数,可以被提前调用,执行结果是 正确调用执行函数
其他方式 声明的函数 不能被提前调用
// 针对var声明的变量
// JavaScript会执行 预解析/预解释/预编译
// 如果提前调用这个变量,JavaScript程序会提前告诉程序
// 有 这个变量 ,变量是存在的,只是现在还没有赋值
// 调用执行结果是 undefined
// 没有使用var声明的变量,执行结果是会是 报错,无法执行
// 虽然没有赋值,但是是可以执行的程序
// 可以进行操作,比如 逻辑赋值
console.log( int1 || 10000 ); //10000
var int1 = 100;
// 没有使用var声明的变量,执行直接报错
// 不能做任何的操作
console.log(int2 || 10000); //报错
// 本质上是一个赋值语句
// 但是当前程序中,没有定义 int2变量
// 赋值语句会升级为 声明语句,会声明一个全局作用域变量
int2 = 200;
console.log(int2 || 10000); //200
console.log(int); //undefined
if(false){
// 即时最终不会被执行的程序中,var定义的变量,也会被预解释
// 如果提前调用执行,结果也是undefined
var int = 100;
console.log(1234); //不执行
}
Comments | NOTHING