作用域、变量提升、函数提升、数据类型
一、作用域分类 (作用域范围内定义的变量,整个作用域都可以访问)
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
作用域、变量提升、函数提升、数据类型相关推荐
- 浅谈js中的var和function变量提升,var声明变量提升,块级作用域中的函数提升
1.首先最常见的一种变量提升 console.log(a); //输出 undefinedvar a=10;console.log(a) // 输出 10 var 有提升的作用其实上面的代码会变成会变 ...
- js 变量、函数提升
js 变量.函数提升 先简单理解下作用域的概念,方便对变量与函数提升的概念的理解 function foo() {var x = 1;if (x) {var x = 2;}console.log(x) ...
- 关于JavaScript的变量和函数提升
第一种理解方式:let和const不能被使用,直到他们被声明 对于var定义的变量,解析器会提升其到作用域顶部. // Outputs: undefined console.log(x);var x ...
- js 变量提升 函数提升 作用域
再说这个知识点前,我们先了解下javascript语言的本质.简单来说js是一个脚本语言,是介于标记语言(例html中使用的标签<.. /> 等是一种被动的,被用来浏览\显示的,无行动能力 ...
- javascript变量提升/函数提升
首先 javascript 是一种弱类型.动态的.解释型的脚本语言. 弱类型:类型检查不严格,偏向于容忍隐式类型转换. 强类型:类型检查严格,偏向于不容忍隐式类型转换. 动态类型:运行的时候执行类型检 ...
- JS函数简单的底层原理 -变量重复声明无效,隐式申明,变量提升,函数提升,以及堆栈内存的变化
JS函数简单的底层原理 (个人理解): 1. 已经使用var申明且赋值,若再次申明,则第二次申明(不赋值)无效. 2.在同一个作用域下,只要是发生了同名,且变量完成赋值,后者会覆盖前者.存在两个相同的 ...
- js中立即执行函数会预编译吗_js变量提升和函数提升
把变量提升函数提升拿出来讲,一看就知道是老前端搬砖工了,其实这些js的基础本质的东西,很有必要去了解,可以活跃思维,而且可以在研究这个的过程中,找到当初设计这门语言的人的想法,然后让自己不仅仅是对这个 ...
- 变量提升以及函数提升
目录 例子 变量提升 函数提升 当函数提升遇到变量提升 例子 function a(){var b = 10function b(){}console.log(b) } a() 结果是10 funct ...
- 每日一题(开开森森学前端之变量与函数)
前言 大家好,今天我们来看一下js中的变量与函数提升相关知识点 为什么有变量提升 js和其他语言一样,都要经历编译和执行阶段.而js在编译阶段的时候,会搜集所有的变量声明并且提前声明变量,而不会改变其 ...
最新文章
- php+管道+pipe管道,angular2+管道pipe
- 【渝粤教育】广东开放大学 会展营销 形成性考核 (56)
- 数据库基础知识——数据库的相关概念
- 信息安全工程师考试大纲-科目1:信息安全基础知识
- jquery子元素过滤选择器
- 神经网络自我进化模型,神经网络自我进化方向
- k8s搭建v1.18.3高可用集群时添加master节点报错:failure loading certificate for CA: couldn‘t load the certificate fil
- 如何搭建个人视频点播服务器
- ts获取服务器数据_ts 流服务器
- Microsoft Remote Procedure Call Runtime 远程代码执行漏洞(CVE-2022-26809)
- 【区块链讲师会前访谈】结合应用场景 区块链共识算法如何选择?
- 工程结算款支付比例_工程进度款的支付比例及付款实例分析
- RT-Thread Nano移植使用整理
- HTML网页设计:周杰伦网站
- 黑客利用雅虎通好友列表发动钓鱼攻击
- BlueTooth: 蓝牙
- Mybatis-plus分页查询不生效之问题排查
- 为什么在java中-(2的31次方)*(-1)还是-(2的31次方)(也就是-2147483648)?
- 自适应控制学习笔记(2)——自校正PID控制
- Android 各国语言缩写-各国语言简称 .
热门文章
- (一)深度伪造的视频人脸传输
- 使用BaaS更快地构建Xamarin应用程序
- php转go注意,PHP转Golang一些感想
- 文件夹内的文本行数_重温生物信息重要的文本处理命令(实例命令及解释)
- nginx nodejs环境配置_nodejs + nginx + ECS阿里云服务器环境设置
- css 垂直居中_CSS 水平+垂直居中的方式
- php 标签库,PHP.MVC的模板标签系统之模板标签库
- java 批量替换字符串_# Java 一步一步实现高逼格的字符串替换工具(二)
- java 压缩二进制流_Java:自己动手写压缩软件,超详细解释(哈夫曼实现)
- woe分析_WOE和IV