作用域变量提升函数提升数据类型

Posted shulan-hu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作用域变量提升函数提升数据类型相关的知识,希望对你有一定的参考价值。

一、作用域分类 (作用域范围内定义的变量,整个作用域都可以访问)

  1. 全局作用域

  使用var声明(或者不严格模式下没有声明)且在函数外定义的变量,其作用域范围是全局的,称其为全局作用域。

  2. 函数作用域

  使用var声明且在函数内部定义的变量,其作用域范围是整个函数,称其为函数作用域。

  3. 块作用域(ES6)

  使用let(或者const 常量)声明且在一个花括号(非函数)里面,其作用域范围就是这个花括号以内,称其为块作用域。

二、变量提升 (变量声明会提升至函数或者语句的最前面,位置还在其作用域范围内,let跟const定义的变量不会变量提升)

三、函数提升 (只有函数声明会提升,函数表达式不会提升)

  test()// 正常执行

 

  function test ()

  testOne()// testOne 不是一个函数

  var testOne = function ()

四、数据类型

  1. 六种基本数据类型 (undefined; null; boolean; number; string; symbol) 不能够是new Boolean; new String; new Number (这些的类型是object)

  2. 对象 (Array; Date; Math; RegExp; Function等)

以上是关于作用域变量提升函数提升数据类型的主要内容,如果未能解决你的问题,请参考以下文章

js中的函数提升和变量提升

js中的变量提升和函数提升

js变量提升和函数提升

变量提升和函数提升

js 函数提升和变量提升

js变量提升与函数提升