注册 登录

清河洛

javascript语法、关键保留字及变量

qingheluo2016-12-16清河洛341
任何语言的核心都必然会描述这门语言最基本的工作原理。而JavaScript的语言核心就是ECMAScript。一、语法构成区分大小写:ECMAScript中的一切,包括变量、函数名和操作符都是区分大小写的。例如:text和Text表示两种不同的变量。标识符,所谓标识符,就是指变量、函数、属性的名字,或者函数的参数。标识符可以是下列格式规则组合起来的一或多个字符:1.第一字符必须是一个字母、下划线(_)或一个美元符号($)。2.其他字符可以是字母、下划线、美元符号或数字。3.不能把关键字、保留字、true、false和null作为标识符。注释:ECMAScript使用C风格的注释,包括单行...

任何语言的核心都必然会描述这门语言最基本的工作原理。而JavaScript的语言核心就是ECMAScript。

一、语法构成

区分大小写:ECMAScript中的一切,包括变量、函数名和操作符都是区分大小写的。例如:text和Text表示两种不同的变量。

标识符,所谓标识符,就是指变量、函数、属性的名字,或者函数的参数。标识符可以是下列格式规则组合起来的一或多个字符:

1.第一字符必须是一个字母、下划线(_)或一个美元符号($)。

2.其他字符可以是字母、下划线、美元符号或数字。

3.不能把关键字、保留字、true、false和null作为标识符。

注释:ECMAScript使用C风格的注释,包括单行注释和块级注释。

// 单行注释

/*

这是一个多行

注释

*/

二、关键字和保留字

ECMAScript-262描述了一组具有特定用途的关键字,一般用于控制语句的开始或结束,或者用于执行特定的操作等。关键字也是语言保留的,不能用作标识符。ECMAScript全部关键字:

break、else、new、var、case、finally,return,void、catch、for、switch、while、continue、function、this、with、default、if、throw、delete、in、try、do、instanceof、typeof

ECMAScript-262还描述了另一组不能用作标识符的保留字。尽管保留字在JavaScript中还没有特定的用途,但它们很有可能在将来被用作关键字。ECMAScript-262第3版定义的全部保留字:

abstract、enum、int 、short、boolean、export、interface、static、byte、extends、long、super、char、final、native、synchronized、class、float、package、throws、const、goto、private、transient、debugger、implements、protected、volatile、double、import、public

三、变量

ECMAScript的变量是松散类型的,所谓松散类型就是用来保存任何类型的数据。定义变量时要使用var操作符(var是关键),后面跟一个变量名(变量名是标识符)。

定义了变量,但没有对它进行初始化(也就是没有给变量赋值)。这时,系统会给它一个特殊的值undefined(表示未定义),不会报错,但是如果打印输出一个未定义的变量,则会报一个undefined(变量不存在)的错误。

ECMAScript属于弱类型(松散类型)的语言,可以把已经声明并初始化的变量改变数据类型。(虽然可以改变不同类型的量,但这样做对于后期维护带来困难,而且性能也不高,导致成本很高!)

有一种变量声明时不需要前面var关键字即可创建变量。这种变量和var的变量有一定的区别和作用范围。

当每条语句都在不同行的时候,可以省略分号。(这是ECMAScript支持的,但绝对是一个非常不好的编程习惯,不推荐使用)。

可以使用一条语句定义多个变量,只要把每个变量(初始化或者不初始化均可)用逗号分隔开即可,为了可读性,每个变量最好另起一行。

var box= '张三',age=28,height=100;

关于undefined的一个小坑

当我们赋值给一个变量值为undefined时,我们不要直接书写,要通过viod n这种形式

let a = undefined; //不推荐
let a = viod 0;    //推荐

viod关键字后面跟一个表达式,但是不管表达式是什么,都会返回undefined

viod "string" //undefined
void [1,2]    //undefined
void {a:1}    //undefined
void function(){} //undefined
...

也就是说void就是一个用来返回undefined的关键字

但是undefined比较特殊,它不是javascript中的保留关键字,而是window对象的undefined只读属性的值

这就导致了在编写js代码时可以使用undefined作为变量名

let undefined=1;
let a = undefined;
let b = void 0;
console.log(a);
console.log(b);
以上代码我们本来时想给a赋值undefined的,但是由于此时undefined为一个变量名,所以a赋值了1
而变量b是我们预期的值undefined

当然了,实际开发中使用undefined作为变量名的很少,但是这是一个隐患



网址导航