博客列表 >JS中为什么不能用var && JS中变量常量与函数的声明与使用过程[有实例源码](1101)

JS中为什么不能用var && JS中变量常量与函数的声明与使用过程[有实例源码](1101)

高空中的云
高空中的云原创
2022年11月02日 16:04:46408浏览

实例演示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. */
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议