第二章 在HTML使用JavaScript

2017-08-27  本文已影响0人  庄海鑫

变量函数声明问题

a,b,c输出是什么?

var a;
console.log(a);
a = 1;

undefined
最后的结果是显示undefined,表示变量a已声明,但还未赋值。

console.log(a);
console.log(b);
var a = 1;

上面的语句将会报错,提示“ReferenceError: b is not defined”,即变量b未声明,这是因为b不是用var命令声明的,JavaScript引擎不会将其提升,而只是视为对顶层对象的b属性的赋值。

  var a, b, c;
    alert(a);
    alert(b);
    alert(c);
    a = 1;
    b = 1;
    c = 1;

undefined undefined undefined

  var a, b, c;
  a();
  b();
  c();
  a=function(){
    alert('123');
  }
  b=function(){
    alert('456');
  }
  c=function(){
    alert('789');
  }

image.png

和变量的声明会前置一样,函数声明同样会前置,如果我们使用函数表达式那么规则和变量一样

    var a, b, c;
  a();
  b();
  c();
  function a(){
    alert('123');
  }
 function b(){
    alert('456');
  }
function c(){
    alert( '789');
  }


如果我们使用函数声明的方式,那么即使函数写在最后也可以在前面语句调用,前提是函数声明部分已经被下载到本地
总结 js代码从上到下按代码块来进行预处理的执行


src属性

带有src属性的<script>元素不应该在其<script></script>标签之间添加额外内容,否则只会下载并执行外部脚本文件。,被嵌入的内容会被忽略。


<script>顺序

一般情况把.js文件放在</body>之前
如果执行的东西要在渲染之前,那就放<head>中


上一篇下一篇

猜你喜欢

热点阅读