Blogger Information
Blog 26
fans 0
comment 0
visits 12174
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
JS中为什么不能用var && JS中变量常量与函数的声明与使用过程[有实例源码](1101)
高空中的云
Original
411 people have browsed it

实例演示JS中变量常量与函数的声明与使用过程

运行结果

  1. // JS中变量的声明
  2. // 常量,const PARAMNAME = value
  3. console.log("-----------常量-----------")
  4. const PARAM_CONSTANT = "这是一个常量"
  5. console.log("这个常量是:"+PARAM_CONSTANT)
  6. console.log("-----------变量--------------")
  7. //变量
  8. const param = {
  9. 'uid':1,
  10. 'username' : "test"
  11. }
  12. console.table(param)
  13. console.log("----------命名函数-------------")
  14. //命名函数
  15. function multiply(a,b){
  16. return "a*b="+a*b
  17. }
  18. console.log("命名函数结果:" + multiply(3,4))
  19. console.log("------------匿名函数-----------")
  20. // 匿名函数
  21. const multiply1 = function(a,b){
  22. return "a*b=" + a*b
  23. }
  24. console.log("匿名函数结果:"+multiply1(4,5))
  25. // 箭头函数
  26. console.log("------------箭头函数-----------")
  27. const multiply2 = (a,b)=>{
  28. return "a*b=" + a*b
  29. }
  30. console.log("箭头函数结果:"+multiply2(5,6))
  31. // 立即执行函数
  32. console.log("------------立即执行函数-----------")
  33. let res = (function(a,b){
  34. return 'a*b='+(a*b)
  35. })(20,30)
  36. console.log("立即执行函数结果是:" + res)

为什么不推荐用var

  • 声明提升:未声明可使用
  1. for(var i = 0; i<5;i++){
  2. console.log("循环第%d次\n",i)
  3. }
  4. console.log(i)
  5. /* i是在循环体定义的,for(){}语句之外,其他语言(如,c语言)会报未定义的错误.但是这里居然会打印结果.*/
  6. var param = 'Global param';
  7. function test(){
  8. console.log(param); // undefined
  9. var param = 'Local param';
  10. }
  11. test() // 打印出undefined
  12. /*
  13. 实际函数内会再添加一个自动声明的语句到console之前
  14. */
  • 重复声明:声明式更新很奇葩
    1. var a = "testvar1"
    2. var a = "testvar2"
    3. var a = "testvar3"
    4. console.log(a)
    5. /*
    6. 朴素的理解,这样应该会产生报错"重复定义",这样允许重复定义,违反常识也容易造成错误
    7. */
  • 变量泄漏
    1. {
    2. var y = 100
    3. }
    4. console.log(y) //会打印100
    5. /*
    6. 这个按照通俗理解,y是定义在代码块里的,作用域也应该仅限于代码块.但是这里却能输出,这个也会给人们带来认知的困扰和编写中的风险
    7. */
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:完成的不错
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post