首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Jsvar let const 区别

一、前言 在ES6(ES2015)出现之前,JavaScript声明变量就只有通过 var 关键字,函数声明是通过 function 关键字,而在ES6之后,声明的方式有 var 、 let 、 const...二、var 如果使用关键字 var 声明变量,那么这个变量就属于当前的函数作用域,如果声明是发生在任何函数外的顶层声明,那么这个变量就属于全局作用域。...举例说明: var a = 1; //此处声明的变量a为全局变量 function foo(){ var a = 2;//此处声明的变量a为函数foo的局部变量 console.log(a)...如下例所示: console.log(a);//undefined var a = 1; 该代码段跟下列代码段是一样的逻辑: var a; console.log(a);//undefined a =...六、总结 var 声明的变量属于函数作用域,let 和 const 声明的变量属于块级作用域; var 存在变量提升现象,而 let 和 const 没有此类现象; var 变量可以重复声明,而在同一个块级作用域

1.8K30
您找到你想要的搜索结果了吗?
是的
没有找到

jsvar、let、const区别

javascript中有三种声明变量的方式:var、let、const 1.var 作用域:全局或局部 var的作用域可以是全局或是局部,以下分四种情况说明: (1).当var关键字声明于函数内时是局部变量...(2)当var关键字声明于函数外时是全局变量,此时不论在函数外部还是内部都可以访问到。...(3)当var关键字第一次声明变量于函数外时是全局变量,并且在函数内又使用var关键字声明了同一名字的变量,那么后声明这个是局部变量只作用于函数内,对函数外第一次声明的变量不影响。...(4)当var关键字第一次声明变量于函数外时是全局变量,并且在函数内直接访问赋值了,那么此变量即是声明的那个变量。 var定义的变量可以修改,如果不初始化会输出undefined,但不会报错。

2.1K20

Mysqlint和varchar类型

int类型int bigint smallint 和 tinyint 类型,如果创建新表时没有指定 int(M) 的M时,默认分别是 : int           -------     int...int(M) 在 integer 数据类型,M 表示最大显示宽度,该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。...在 int(M) ,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系, int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。...上面几种类型的存储范围见下图: 如何计算一个字节能够存储的整数位数?...如果某一项设置的是varchar(50),那么对英文当然是50,那么对中文呢?utf-8的中文占3个字节,那么这个varchar(50)是不是只能存16个汉字了?

1.7K10

jsconst,var,let定义变量的区别

jsconst,var,let定义变量的区别 1.const定义变量不可以修改,而且必须初始化 const b = 2;//正确 // const b;//错误,必须初始化 console.log...('函数外const定义b:' + b);//有输出值 // b = 5; // console.log('函数外修改const定义b:' + b);//无法输出 2.var定义的变量可以修改...,如果不初始化会输出undefined,不会报错 var a = 1; // var a;//不会报错 console.log('函数外var定义a:' + a);//可以输出a...=1 function change(){ a = 4; console.log('函数内var定义a:' + a);//可以输出a=4 } change...(); console.log('函数调用后var定义a为函数内部修改值:' + a);//可以输出a=4 3.let是块级作用域,函数内部使用let定义后,对函数外部无影响。

3.2K30

js全局变量_var变量提升原理

今天说一说js全局变量_var变量提升原理,希望能够帮助大家进步!!!...1、程序的运行结果为:100 10 100 var a = 10; function test(){ a = 100; console.log(a); console.log...2、程序的运行结果为:undefined 10 此代码由Java架构师必看网-架构君整理 var a = 100; function test(){ console.log(a); var...仔细看第1个例子解析的第一句话,Javascript在执行前会对整个脚本文件的声明部分做完整分析(包括局部变量),但是不能对变量定义做提前解析,在这个函数,执行第3行前,可以认为已经声明了变量a,但是并没有定义...a); } test(); console.log(a); 解析:我们知道在函数内部,一般用var声明的为局部变量,没用var声明的一般为全局变量,在test函数内,a=10声明了一个全局变量,所以第3

5.6K30

【JVM】Int类型在栈是否会被缓存?

前些天一位粉丝加微信好友,询问关于int类型的一张存储结构图,主要是对int类型在方法执行的过程是否存在缓存的情况有疑问。在交流、探讨的过程收获很多相关知识。本篇文章就汇总分享一下。...int类型的是否会被缓存 首先看下图(其他公众号文章获得),图中显示int类型在栈中会被复用。 ? 针对引用类型我们知道栈只存储引用地址,而对应的值存储在堆,这没什么问题。...而针对int(等基础)类型,变量和值都是存储在栈(其实也不一定,后面会讲到),那么int类型是否会像字符串常量一样,指向同一个值呢?...经过这一步的分析,我们得知了int类型在JVM操作指令层面的区别,同时也得知即便是int类型,也不一定是变量和值都存储在栈。...原文链接:《【JVM】Int类型在栈是否会被缓存?》

99830

PHP INT类型在内存占字节详解

本教程将介绍输出INT类型在内存占多少个字节 新建一个333.php,如图所示: ? 添加php的界定符(<?php? ),如图所示: ? 声明PHP与浏览器交互的文件类型和编码,如图所示: ?...使用常量PHP_INT_SIZE 来获取INT类型在内存占多少个字节,如图所示: ? 使用 echo 语句输出常量 PHP_INT_SIZE 获取到的字节数,如图所示: ?...内容扩展 phpint类型在不同平台所占不同字节数理解 1.在不同平台上占字节数与最大值 在32位平台上int占4个字节,在64位平台上int占8个字节,PHP_INT_SIZE 在32位平台上int...phpint不支持无符号 2.为什么在不同的平台上int类型所占字节数有差异呢 不管什么类型,编译型语言都会把源码编译成机器码,由于不同平台寄存器位宽不一样, 所以有了自己对int的规定, 导致int...但一般等于机器寄存器位宽(64位平台除外,默认为4字节),如在32位平台上(所谓32位平台是指通用寄存器的数据宽度是32)编写代码,int 类型分配4个字节,而在16位平台是则分配2个字节。

1.2K40

JavaScript(JS)var和let的区别及推荐

以下内容摘自网络多篇文章和自己的一些总结,如有错误望指出与纠正....从以下几个方面解释: 作用域:var是函数作用域,而let是块作用域,也就是说,在函数内声明了var,整个函数内都是有效的,比如说在for循环内定义了一个var变量,实际上其在for循环以外也是可以访问的...也就是说,let必须是先定义,再使用,而var先使用后声明也行,只不过直接使用但是没有却没有定义的时候,其值为undefined,实际上var有一个变量提升的过程。...也就是说,当这个函数的作用域被创建的时候,实际上var定义的变量都会被创建,并且如果此时没有初始化的话,则默认会初始化一个undefined, 补充: var js=function(){} 这种叫做函数表达式...必须先定义后使用 function js(){}这种是函数声明 可以先使用后定义 它会对函数的声明进行一个提升,提升只是相当于提前声明,函数提前声明,在使用的时候不会报错。

1.4K50
领券