JS的基本概念

JS的基本概念

任何语言的核心都必然会描述这门语言最基本的工作原理。而描述的内容通常都要涉及这门语言的语法,操作符,数据类型,内置功能等用于构建复杂解决方案的概念。Ecma-262通过叫做EcmaScript的“伪语言”,为我们描述javascript的多有这些基本概念。

3.1语法

EcmaScript的语法大量借鉴了C语言的语法。因此熟C语言的开发人员在接受ECMAScprit,会有一种轻松的感觉。

3.1.1 区分大小写

要理解的第一个概念就是ECMAScript中的一切(变量,函数名和操作符)都区分大小写。这就意味着test和TEST分别表示两个不同的变量,而函数名称不能使用typeof,因为是一个关键字。

3.1.2标示符

所谓标示符,就是指变量,函数,属性的名字,或者函数的参数,标示符可以按照系列格式规则

☆ 第一个字符必须是一个字母,下划线,或者一个美元符号($);

☆ 其他字符可以是字母,下划线,美元或数字。

3.13 注释

EcmaScript使用C风格的注释,包括单行注释和块计注释,单行注释一两个斜杠开头,

//单行注释

块级注释

/*

*这是一个多行注释

*

*

*/

3.14 严格模式

ECMAScript5 引入了严格模式的概念。严格模式是为Javascript定义了一种不同的解析和执行。在严格模式下,ECMAScript3中一种不确定的行为将得到处理,而且对某些不安全的操作也会抛出异常。要在整个脚本中启用严格模式,可以再顶部添加如下代码:

“USE STRICT”;

这行代码看起来像字符串,而且也没有赋值给任何变量,但其实他只是一个编译指示,用于告诉浏览器javascript引擎切换到严格模式。也可以指定在函数在严格模式下执行:

function Dosomthing()

{

"use strict";

//函数体

}

严格模式下,javascript的执行结果会有很大不同,因此我将会随时指出严格严格下的区别。

3.15语句

EcmaScript中的语句是以一个分号结尾;如果省略分号,则有解析器确定语句的结尾,如下列所示,

 var a = 1,b=2;

        var sum = a + b//即使没有分号也没有推荐有效的语句-不推荐   

      var diff = a - b;//有效的语句-推荐

这个分号可以避免很多错误,开发人员可以放心的通过删除多余的空格来压缩ECMAscript代码。另外,加上分号也会在某些情况下增加代码的性能。

3.2关键字和保留字

3.3变量

EcmaScript的变量是松散型的,所谓松散型就是用来保存任何类型的数据。换句话说,每个变量仅仅是一个保存值的占位符而已。定义变量时要使用var操作符,后跟变量名称,如下所示:

var message;

这行代码定义了一个Message的变量,该变量可以保存用来使用保存任何值,像上面也支持直接初始化一个变量  var message="123";

3.4

EcmaScript有五中数据类型:undefined,null,boolen,Number和string。还有一种复杂数据类型-object.object本质上就是一组无序的。所有的值都属于上述6种类型数据。

3.4.1

☆ "undefined" 如果这个值未定义

☆ “boolean” 如果这个值布尔值

☆ “string” 如果这个值是字符串

☆ “number” 如果这个值是数值

☆ ”object“ 如果这个值对象或Null.

☆ function 这个值是函数

下面是几个实用typeof 操作符的例子

     var message = "some string";
        alert(typeof message);
        alert(typeof message);
        alert(typeof 95);

有时候,typeof操作符的操作符可以是变量,比如说typeof null 会返回“object”,因为特殊值null被认为是一个空的对象。

3.4.2

undefined类型只有一个值,在使用var声明变量但未对其初始化,这个变量就是undefined,例如

 var mes;
        alert(mes==undefined);

记住 初始化为赋值就是undefiend.对未声明的变量执行typeof操作符同样也会返回undefined。

     var msg;
        alert(typeof msg);//undefined
        alert(typeof message);//undefined

 
 
原文地址:https://www.cnblogs.com/Leo_wl/p/3293811.html