js基础语法-变量

本文介绍了JavaScript中的变量声明,包括var、let和const的区别。var存在变量提升和函数作用域,let则有块级作用域,不进行变量提升,而const用于声明常量,一旦赋值不可更改。最佳实践推荐使用const优先,let其次,并避免使用var。
摘要由CSDN通过智能技术生成

js基础语法之变量

  1. js中区分大小写
  2. 标识符
    就是变量、函数、属性或函数参数名称。首字母必须是字母、数字、下划线或美元符号($),剩下的字符可以是字母、数字、下划线、$或数字。
  3. 注释
//单行注释

/*
多行注释
*/
  1. 变量
    1、var关键字
//变量名、属性名等标识符要避免 关键字、保留字(自行搜索了解)
//1、var 关键字  声明函数作用域的变量
var x = 123;
function A(){
	//函数内定义省略var 可创建一个全局函数
	a = 123;
}
A();
console.log(a);// 123
 //var 的声明提升
function B(){
	//使用变量在声明之前
	console.log(b);//undefined
	var b = 111;
}
B();
//上边写法等价于
function B(){
	//变量在声明提升
	var b;
	console.log(b);//undefined
	b = 111;
}

function B(){
	var b = 111;
	var b = 222;
	var b = 333;
	//多次申明会覆盖之前的
	console.log(b);//333
}

2、let 声明

//let 声明的是块作用域变量
function C(){
	//let声明迭代变量,JavaScript引擎后台会为每个迭代循环声明一个新的迭代变量
	//适用于所有风格的for循环,如for-in、for-of
	for(var i = 0; i < 5; i++){
		console.log(i)//5 5 5 5 5
	}
	for(let b = 0; b < 5; b++){
	    console.log(b)//1 2 3 4 5
	}
	console.log(i);//5
	console.log(b);//Uncaught ReferenceError: b is not defined
}
C();

//冗余声明报错
let a = 123;
let a = 111;//Uncaught SyntaxError: Identifier 'a' has already been declared

//暂时性死区 b不会被提升
console.log(b);
let b = 123;//Uncaught ReferenceError: b is not defined

/*let 与 var除了作用域、变量提升、重复声明 区别
var 在全局声明 变量会成为window对象的属性,而let不会
*/

3、const声明

//const 与let基本相同,唯一重要区别是声明变量时必须初始化变量,且修改时会报错
const a = 132;
a = 456;//Uncaught SyntaxError: Identifier 'a' has already been declared

//const声明的限制适用于指向的变量的引用。所以变量是对象时改变内部属性不违反规则
const obj = {name:'www',dsc:'这是个对象'}
obj.name = 'object';// ok

声明风格最佳实践

1、不使用var
2、const优先,let次之

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值