JS知识点---语法与基本概念

1、语法与基本概念

1.1  区分大小写
变量、函数名、操作符都区分大小写,这意味着test和Test分别表示两个不同的变量,而函数名不能使用typeof,因为它是一个关键字,但typeOf则可以用作为函数名。

1.2  标识符
什么是标识符?
所谓标识符,就是指变量、函数、属性的名字,或者函数的参数名。
标识符的格式:
(1)第一个字符必须是一个字母、下划线"_"或一个美元符号。
(2)其他字符可以是字母、下划线,美元符号或数字。
按照惯例,我们采用驼峰大小写格式,也就是第一个字母小写,剩下的每个有意义的单词的首字母大写。

1.3  注释
//单行注释
/*多行注释*/

1.4  严格模式
严格模式是为JavaScript定义了一种不同的解析与执行模型。在严格模式下,ECMAScript3中的一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错误,要在整个脚本中启用严格模式,可以在顶部添加如下代码:
"use strict";
这行代码看起来像是字符串,而且也没有赋值给任何变量,但其实它是一个编译指示,用于告诉支持的JavaScript引擎切换到严格模式。严格模式下,JavaScript的执行结果会有很大不同。
在函数内部的上方包含这条编译指示,也可以指定函数在严格模式下执行:
function do()
{
 "use strict";
//函数体
}


1.5  关键字和保留字
ECMA-262描述了一组具有特定用途的关键字,这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。关键字是不能用作标识符的。以下就是ECMAScript的全部关键字
break     do     instanceof  typeof
case     else     new         var
catch    finally  return      void
continue  for     switch       while
debugger*  function this        with
delete    if       throw       default
in        try

ECMA-262还描述了另外一组不能用作标识符的保留字,尽管保留字在这门语言中还没有任何特定的用途,但它们有可能在将来被用作关键字。以下是ECMA-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

第5版把在非严格模式下运行时的保留字缩减为下列这些:
class     enum    extends
const     export  import

在严格模式下,第5版还对以下保留字施加了限制:
implements      package      public 
interface       private      static
let             protected    yield


1.6  变量
ECMAScript的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。换句话说,每个变量仅仅是一个用于保存至的占位符而已。定义变量时要使用var操作符。
eg:var message;  //var是一个关键字,变量名message是一个标识符
这行代码定义了一个名为message的变量,该变量可以用来保存任何至,像这样未经过初始化的变量,会保存一个特殊的值--undefined。
ECMAScript也支持直接初始化变量,因此在定义变量的同时就可以设置变量的值
var message="Hello";
此时,变量message中保存了一个字符串值"Hello",但是这样并不代表它被标记为字符串类型,只是在初始化的过程中给变量赋一个值而已。如果在后面加一句message=100;那么之前那个字符串值又被一个数字值取代,这样的操作我们不建议,但是这是被允许的且有效的。
有一点必须注意,var操作符定义的变量将成为定义该变量的作用域中的局部变量,也就是说,如果在函数中使用var定义了一个变量,那么这个变量在函数退出后就会被销毁。
eg: function todo(){
var message="Hello World!"; //message只是一个局部变量
}
todo();
alert(message); //错误

那怎么是message成为一个全局变量?
可以这样写代码:
function TODO()
{
message="Hello Worle!";  //此时message是一个全局变量
}
TODO();
alert(message);
省略了var操作符,message就成了一个全局变量,这样,只要调用过一次TODO()函数,message就有了定义,就可以在函数外部的任何地方被访问到

定义变量时可以使用一条语句定义对个变量,像下面这样把每个变量用逗号分隔开即可,
eg:var message="hello",
        test=100,
        a=8;
适当使用换行和缩进可以提高可读性。
在严格模式下,不能定义名为eval或arguments的变量,否则会导致语法错误。

扫描二维码关注公众号,回复: 2561415 查看本文章

1.7  数据类型
ECMAScript中有5中简单数据类型(基本数据类型):Undefined,Null,Boolean,Number,String.
还有1种复杂类型--Object(由一组无序的名值对组成)。
不支持创建自定义类型。六种数据类型够不够用呢?答案是肯定的,因为ECMAScript数据类型具有动态性。

猜你喜欢

转载自blog.csdn.net/qq_39178993/article/details/81236671