javascript中const、var、let定义变量的区别

转载自http://www.cnblogs.com/ksl666/p/5944718.html

js中const,var,let区别

今天第一次遇到const定义的变量,查阅了相关资料整理了这篇文章。主要内容是:js中三种定义变量的方式const, var, let的区别。

1.const定义的变量不可以修改,而且必须初始化。

1 const b = 2;//正确
2 // const b;//错误,必须初始化
3 console.log(‘函数外const定义b:‘ + b);//有输出值
4 // b = 5;
5 // console.log(‘函数外修改const定义b:‘ + b);//无法输出 

2.var定义的变量可以修改,如果不初始化会输出undefined,不会报错。

1 var a = 1;
2 // var a;//不会报错
3 console.log(‘函数外var定义a:‘ + a);//可以输出a=1
4 function change(){
5 a = 4;
6 console.log(‘函数内var定义a:‘ + a);//可以输出a=4
7 }
8 change();
9 console.log(‘函数调用后var定义a为函数内部修改值:‘ + a);//可以输出a=4

3.let是块级作用域,函数内部使用let定义后,对函数外部无影响。

1 let c = 3;
2 console.log(‘函数外let定义c:‘ + c);//输出c=3
3 function change(){
4 let c = 6;
5 console.log(‘函数内let定义c:‘ + c);//输出c=6
6 }
7 change();
8 console.log(‘函数调用后let定义c不受函数内部定义影响:‘ + c);//输出c=3

如有错误,请您指正!

时间: 2024-10-25 15:48:47

javascript中const、var、let定义变量的区别的相关文章

关于Javascript中通过var关键字声明变量和function关键字声明函数的笔记

一.概念 1.变量声明 在JavaScript中,变量一般通过var关键字(隐式声明,let关键字声明除外)进行声明,如下通过var关键字声明a,b,c三个变量(并给其中的a赋值): var a=1,b,c; //关键字显式声明变量a,b,c,并给a赋值console.log(a); //1 //由于b,c未定义变量类型,因此输出"undefined"console.log(b); //undefinedconsole.log(c); //undefined //如果变量未声明,则输出

mysql -- 存储过程中 declare 和 set 定义变量的区别

mysql存储过程中,定义变量有两种方式:1.使用set或select直接赋值,变量名以 @ 开头.例如:set @var=1;可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量. 2.以 DECLARE 关键字声明的变量,只能在存储过程中使用,称为存储过程变量,例如:DECLARE var1  INT DEFAULT 0;  主要用在存储过程中,或者是给存储传参数中. 两者的区别是:在调用存储过程时,以DECLARE声明的变量都会被初始化为 NULL.而会话变量(即@开头的变量)则不

深入分析php中const和define定义常量的区别

const和define在php中都是定义常量了,但是它们的具体区别是什么?其实非常的简单const用于类成员变量定义,一旦定义且不能改变其值.define定义全局常量,在任何地方都可以访问 页define不能在类中定义而const可以了,下面整理了一篇文章. 大家都知道define是定义常量的,如果在类中定义常量呢?当然不能用define,而用const,如下例: <?php define('PHP', 'I love PHP'); // 在类外面通常这样定义常量 if (defined('P

MySQL存储过程中declare和set定义变量的区别

在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅在类中生效.即只在存储过程中的begin和end之间生效. 2.@set定义的变量,叫做会话变量,也叫用户定义变量,在整个会话中都起作用(比如某个应用的一个连接过程中),即这个变量可以在被调用的存储过程或者代码之间共享数据.如何理解呢?可以看下面这个简单例子,很好理解. (1)先执行下面脚本,创建一

javascript中apply、call和bind的区别,容量理解,值得转!

a)  javascript中apply.call和bind的区别:http://www.cnblogs.com/cosiray/p/4512969.html b)  深入浅出 妙用Javascript中apply.call.bind   http://www.admin10000.com/document/6711.html ====================================================== 在JS中,这三者都是用来改变函数的this对象的指向的,他们

js基础面试高频面点2:Javascript中undefined和not defined有什么区别?

二.Javascript中undefined和not defined有什么区别? 一句话:udefined为变量正常的数据类型,不是报错,而not defined是指变量没有定义,是报错. 那么,什么是数据类型?js中数据类型有哪些? 数据类型在数据结构中的定义是一组性质相同的值的集合以及定义在这个值集合上的一组操作的总称. js中变量的数据类型有: 值类型(基本类型):字符串(String).数字(Number).布尔(Boolean).对空(Null).未定义(Undefined).Symb

javascript中三目运算符和if else有什么区别

javascript中三目运算符和if else有什么区别今天写了一个图片轮播的小demo,用到了判断先试了一下if else,代码如下:if(n >= count-1){n =0;}else{n ++;}随后代码写完了,准备优化一下代码,将此段改成了三目运算符的写法n = n >= (count-1) ? n=0 : n++结果完全不同随后研究了一下这两者的区别,总结为一句话:三目运算有返回值,if else没有返回值做了如下测试:var n=1; if(n>1){ n=0;}else

JavaScript中event的x,clientX,offsetX的区别

JavaScript中event的x,clientX,offsetX的区别 请看下面的文字说明,也就是event中x,clientX,offsetX,screenX的区别: x:设置或者是得到鼠标相对于目标事件的父元素的外边界在x坐标上的位置.www.mlybyby.com clientX:相对于客户区域的x坐标位置,不包括滚动条,就是正文区域. offsetx:设置或者是得到鼠标相对于目标事件的父元素的内边界在x坐标上的位置. screenX:相对于用户屏幕. 同时你可以对比下面代码分析 Cl

javascript中使用var定义变量的预编译效果

首先说明一点:javascript语法是非常灵活的,灵活的代价就是很容易导致不规范的编码和各种意想不到的运行结果.ECMAScript 5 引入了 严格模式 (strict mode),今后我们编写javascript代码最好都使用"use strict",规范我们的javascript代码.下面的测试代码不是基于严格模式. alert(a); var a;//已声明未赋值 alert(b);//未声明的变量 执行结果是:a打印undefined,b报错.这说明:var a;这条语句的