想说说变量声明
1,变量声明方法
//有3种方式
const a='123';//常量
var b='123';//变量
let c='123';//变量
首先,js是一门弱类型语言。声明一个变量时,无需指定该变量类型。
var a='123';//这个变量属于字符串类型
var a=123;//这个变量属于数字类型
var a={};//这个变量属于对象类型
可以直接赋值,不管类型。赋值为什么类型,这个变量就属于什么类型,如上。
这类语言编写起来很快,随性。但是和Java这类强类型语言相比,很不严谨。
变量声明之后,可以任意赋值,不需要为同一类型,如下。
var a='123';//这个变量属于字符串类型
a=123;//这个变量属于数字类型
还可以这样
var a='123';
var b=3;
console.log(a-b);//这里等于 120;
声明变量方法说明
const 声明常量,一般常量命名习惯用大写。
const A='123';
const 声明好的常量,是一个只读的,不能再修改他的值,改变类型也不行。
const A='123';
A=123;
//会报错 Uncaught TypeError: Assignment to constant variable.
这个变量名也不能重新声明
const A='123';
var A=123;
const A=123;
//都会报错 Uncaught SyntaxError: Identifier 'A' has already been declared
var 之前一般用他声明变量,用他声明变量,可以提升作用域。
如果是在方法中使用,相当于局部变量。如果在全局中声明,则为全局变量
console.log(a);//undefined 不会报错;
var a;
let 声明的变量为块级变量,只在此代码块内有用。
let a=1;
if(1){
let a=2;
console.log(a);//2
}
console.log(a);//1
如果是var声明的变量,两个地方打印出来都是2.
除了以上几种,还有一种直接使用的。
a=1;
console.log(a);//1
console.log(this.a);//1
delete this.a;
console.log(this.a);//undefined
console.log(a);//Uncaught ReferenceError: a is not defined
这样也是没有问题,不会报错的。
注意!它并不是声明了一个全局变量,而是创建了一个全局对象的属性。
变量声明小技巧
1,声明变量判断赋值。
var a=NaN;
var b=2;
var c=null;
var d=false;
var e=a||b||c||d;
log(e);//2
2,一次声明多个变量。
var a=NaN,b=2,c=null,d=false;
3,变量的解构赋值,这是es6的新特性。
var [a,b,c]=[1,2,3];
console.log(a,b,c);//1 2 3
//或者
var {a,b,c}={1,2,3};
console.log(a,b,c);//1 2 3
//展开符
let {log}=console;
var a=[1,2,3,4,5,6];
var [b,...a]=a;
log(a);//[2, 3, 4, 5, 6]
ok,这一块就写到这里,往深挖掘,还有很多可以研究的,有什么不对的地方,欢迎评论交流。
新年刚过,给大家拜个晚年!
最近新肺炎肆虐,希望大家都平安健康,无病无痛无灾。
谢谢。
网友评论