JavaScript(js)es6学习路程2

2020-01-30  本文已影响0人  青爱的宝贝

想说说变量声明

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,这一块就写到这里,往深挖掘,还有很多可以研究的,有什么不对的地方,欢迎评论交流。

新年刚过,给大家拜个晚年!

最近新肺炎肆虐,希望大家都平安健康,无病无痛无灾。

谢谢。

上一篇 下一篇

猜你喜欢

热点阅读