• 预解析


    /*
    * 预解析:提前解析代码
    *就是在解析代码之前,把变量声明提前了,提前到当前所在的作用域的最上面
    *函数的声明也会被提前,提前到当前所在的所用于的最上面
    *
    * */
    // //例如: -----> 预解析:
    // var num=10; f1();//调用
    // function f1() { var num;//变量声明提前
    // console.log(num); function f1() {
    // } console.log(num);
    // f1(); }
    // num=10;//值不变
    // //打开页面结果显示:undefined


    /*
    * 预解析中,变量的提升,只会在当前的作用域中提升提前到当前的作用域的最上面
    *函数的变量只会提前到函数的作用域中的最前面,不会出去
    *预解析会分段(多对的script标签中函数重名,预解析不会发生冲突)
    *
    * */
    //案例:
    // var a=25;
    // function abc() { -------> function abc(){
    // alert(a);//undefined var a;
    // var a=10; alert(a);
    // } a=10;
    // abc(); }
    // console.log(a);//25



    //案例:
    // console.log(a);//此时这个a是函数a,所以显示是function a(){console.log('aaaaa');}这个代码
    // function a() {
    // console.log('aaaaa');
    // }
    // var a=1;
    // console.log(a);//1



    // //案例:
    // var a=18;
    // f1();
    // function f1() { ------> function f1(){
    // var b=9; var b;
    // console.log(a);//undefined var a;
    // console.log(b);//9 b=9;
    // var a='123'; console.log(a);
    // } console.log(b);
    // a='123';



    //案例:
    // f1(); ------->
    // console.log(c);//9 ---全局变量
    // console.log(b);//9 ---全局变量
    // console.log(a);//报错 ---局部变量
    // function f1() { function f1(){
    // var a=b=c=9; var=a;
    // console.log(a);//9 a=9; //此时a是局部变量--->函数以外不显示
    // console.log(b);//9 b=9; //b,c是隐式全局变量
    // console.log(c);//9 c=9;
    // } console.log(a);
    // console.log(b);
    // console.log(c);


    // //注意:
    // f1();//---报错
    // var f1=function () { ----> var f1 是已赋值的函数,不能被调用,值是function以下的代码
    // console.log(a); 即:
    // var a=10; var f1;
    // } f1=function(){
    // console.log(a);
    // var a=10;
    // }
    // f1();
  • 相关阅读:
    oracle数据段详解
    监听静态注册与动态注册
    Oracle网络相关概念与常用配置文件
    pycharm社区版安装及遇到的问题
    强化学习-K摇臂赌博机
    概率图模型
    半监督学习
    卷积神经网络
    递归神经网络
    玻尔兹曼机及其相关模型
  • 原文地址:https://www.cnblogs.com/lujieting/p/10040346.html
Copyright © 2020-2023  润新知