zoukankan      html  css  js  c++  java
  • js变量提升

    首先 javascript 是一种弱类型、动态的、解释型的脚本语言。
    弱类型:类型检查不严格,偏向于容忍隐式类型转换。 
    强类型:类型检查严格,偏向于不容忍隐式类型转换。 
    动态类型:运行的时候执行类型检查。 
    静态类型:编译的时候就知道每个变量的类型。 
    解释型:程序不需要编译,程序在运行的时候才翻译成机器语言,每执行一次都要翻译一次,因此效率比较低,但是跨平台性好。 
    编译型:程序在执行之前需要一个专门的翻译过程,把程序编译为机器语言的文件,运行时直接使用编译的结果就行了。 
    标记语言:标记语言的存在就是用来被读取(浏览)的,而其本身是没有行为能力的,在标记语言里你会看到<和>这些尖括号,这是用来写出“层次”和”属性”的,换句话说,它是被动的。并不具备与访问者互动的能力。 
    编程语言:它是具有逻辑性和行为能力,这是主动的。说通俗一点,它是有思想的。
    脚本语言:它介于标记语言和编程语言之间,脚本语言不需要编译,可以直接用,由解释器来负责解释。
     
    JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。
    JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。hoisting(变量提升)
     
    变量提升(把变量声明提升到当前执行环境的最顶端)
    <script type="text/javascript"> console.log(a);//输出结果 undefined var a=10; </script>
     
    函数声明提升 (函数声明提升直接把整个函数提到执行环境的最顶端) 
    foo(); function foo(){ console.log("aaa"); //aaa }
    var的话,只会提升函数名
    变量提升只提升函数名 而函数提升会提升整个函数题 注意:函数提升在变量提升上面。
     
    1、var a //变量声明,提升到作用域顶端
    2、var b = "test" //声明部分提升,赋值部分不会提升(变量定义)
    3、var c = function () {} //函数定义(函数表达式)部分提升
    4、function d(){} //函数声明,全部提升,优先级比变量提升高;名字相同的变量声明会被忽略

  • 相关阅读:
    ubuntu系统下Python虚拟环境的安装和使用
    jquery访问浏览器本地存储cookie,localStorage和sessionStorage
    前端笔记----jquery入门知识点总结
    jquery事件使用方法总结
    ajax和jsonp使用总结
    用python的TK模块实现猜成语游戏(附源码)
    前端笔记----类型转换display
    Java标识符
    Java的关键字
    java环境变量的配置
  • 原文地址:https://www.cnblogs.com/limengyao/p/9549786.html
Copyright © 2011-2022 走看看