首页 > 代码库 > JavaScrit全面总结

JavaScrit全面总结

   前端技术的发展变化太快了,各种各样的框架。再变也离不开js。所以,在此把js的高级语法总结一遍。    js解析和执行包括:全局和函数

一:全局预处理

<script type="text/javascript">var a=1;function xx(){alert(a);}</script> 

  这段代码会正常输出a=1;

<script type="text/javascript">var a=1;function xx(){alert(a);var a=5;}</script> 

  输出 undefined   为什么呢?  不报错  输出undefined 。   这就是js的解析执行过程

js执行过程分为:预处理的阶段和执行阶段  

预处理阶段:

一:创建一个词法环境  LexicalEnvironment==window

二:扫面js代码:

1.用声明的方法创建的函数

2.用var   定义的变量

 

 预处理js处理命名冲突:

先扫描函数声明后扫描变量(var声明)

处理函数声明有冲突会覆盖

处理变量声明有冲突,会忽略

下面为例子:

 <script type="text/javascript">alert(a);    //undefinedalert(b);  //报错alert(f);  //字符串的表达式alert(g);   //undefinedvar a=5;b=6;alert(b);function f(){	console.log(‘f‘);}//表达式创建的函数 var g=function(){console.log(‘g‘);}alert(g); </script>js分为两个阶段:一:预处理阶段  1.var  定义的变量   2.声明的方式创建的函数window{   f:指向函数   a:undefined    g:undefined    (表达式创建的函数可以当成变量)}二:执行时    没有定义var  就一次性赋值window{    f:输出函数的值    a:5  变量的定义    b: 6  函数赋值    g:指向函数}

  函数:

 

JavaScrit全面总结