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

  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等)

转载于:https://www.cnblogs.com/shulan-hu/p/11479266.html

作用域、变量提升、函数提升、数据类型相关推荐

  1. 浅谈js中的var和function变量提升,var声明变量提升,块级作用域中的函数提升

    1.首先最常见的一种变量提升 console.log(a); //输出 undefinedvar a=10;console.log(a) // 输出 10 var 有提升的作用其实上面的代码会变成会变 ...

  2. js 变量、函数提升

    js 变量.函数提升 先简单理解下作用域的概念,方便对变量与函数提升的概念的理解 function foo() {var x = 1;if (x) {var x = 2;}console.log(x) ...

  3. 关于JavaScript的变量和函数提升

    第一种理解方式:let和const不能被使用,直到他们被声明 对于var定义的变量,解析器会提升其到作用域顶部. // Outputs: undefined console.log(x);var x ...

  4. js 变量提升 函数提升 作用域

    再说这个知识点前,我们先了解下javascript语言的本质.简单来说js是一个脚本语言,是介于标记语言(例html中使用的标签<.. /> 等是一种被动的,被用来浏览\显示的,无行动能力 ...

  5. javascript变量提升/函数提升

    首先 javascript 是一种弱类型.动态的.解释型的脚本语言. 弱类型:类型检查不严格,偏向于容忍隐式类型转换. 强类型:类型检查严格,偏向于不容忍隐式类型转换. 动态类型:运行的时候执行类型检 ...

  6. JS函数简单的底层原理 -变量重复声明无效,隐式申明,变量提升,函数提升,以及堆栈内存的变化

    JS函数简单的底层原理 (个人理解): 1. 已经使用var申明且赋值,若再次申明,则第二次申明(不赋值)无效. 2.在同一个作用域下,只要是发生了同名,且变量完成赋值,后者会覆盖前者.存在两个相同的 ...

  7. js中立即执行函数会预编译吗_js变量提升和函数提升

    把变量提升函数提升拿出来讲,一看就知道是老前端搬砖工了,其实这些js的基础本质的东西,很有必要去了解,可以活跃思维,而且可以在研究这个的过程中,找到当初设计这门语言的人的想法,然后让自己不仅仅是对这个 ...

  8. 变量提升以及函数提升

    目录 例子 变量提升 函数提升 当函数提升遇到变量提升 例子 function a(){var b = 10function b(){}console.log(b) } a() 结果是10 funct ...

  9. 每日一题(开开森森学前端之变量与函数)

    前言 大家好,今天我们来看一下js中的变量与函数提升相关知识点 为什么有变量提升 js和其他语言一样,都要经历编译和执行阶段.而js在编译阶段的时候,会搜集所有的变量声明并且提前声明变量,而不会改变其 ...

最新文章

  1. php+管道+pipe管道,angular2+管道pipe
  2. 【渝粤教育】广东开放大学 会展营销 形成性考核 (56)
  3. 数据库基础知识——数据库的相关概念
  4. 信息安全工程师考试大纲-科目1:信息安全基础知识
  5. jquery子元素过滤选择器
  6. 神经网络自我进化模型,神经网络自我进化方向
  7. k8s搭建v1.18.3高可用集群时添加master节点报错:failure loading certificate for CA: couldn‘t load the certificate fil
  8. 如何搭建个人视频点播服务器
  9. ts获取服务器数据_ts 流服务器
  10. Microsoft Remote Procedure Call Runtime 远程代码执行漏洞(CVE-2022-26809)
  11. 【区块链讲师会前访谈】结合应用场景 区块链共识算法如何选择?
  12. 工程结算款支付比例_工程进度款的支付比例及付款实例分析
  13. RT-Thread Nano移植使用整理
  14. HTML网页设计:周杰伦网站
  15. 黑客利用雅虎通好友列表发动钓鱼攻击
  16. BlueTooth: 蓝牙
  17. Mybatis-plus分页查询不生效之问题排查
  18. 为什么在java中-(2的31次方)*(-1)还是-(2的31次方)(也就是-2147483648)?
  19. 自适应控制学习笔记(2)——自校正PID控制
  20. Android 各国语言缩写-各国语言简称 .

热门文章

  1. (一)深度伪造的视频人脸传输
  2. 使用BaaS更快地构建Xamarin应用程序
  3. php转go注意,PHP转Golang一些感想
  4. 文件夹内的文本行数_重温生物信息重要的文本处理命令(实例命令及解释)
  5. nginx nodejs环境配置_nodejs + nginx + ECS阿里云服务器环境设置
  6. css 垂直居中_CSS 水平+垂直居中的方式
  7. php 标签库,PHP.MVC的模板标签系统之模板标签库
  8. java 批量替换字符串_# Java 一步一步实现高逼格的字符串替换工具(二)
  9. java 压缩二进制流_Java:自己动手写压缩软件,超详细解释(哈夫曼实现)
  10. woe分析_WOE和IV