1、区分大小写
ECMAScript中的一切都区分大小写,包括变量、函数名和操作符。
ep:test和Test是两个变量,typeof是一个关键字所以它不能用来做为函数名,但是typeOf则完全可以是一个有效的函数名。
2、标示符
标示符:变量、函数、属性的名字,或者函数的参数。
标示符的命名方式:
第一个字符可以是字母、下划线(_)或是一个美元符号($)。
其他字符可以是字母、下划线、美元符号或数字。
3、注释
- //单行注释
- /* ...代码.... */多行注释
4、严格模式
ECMAScript 5 引入了严格模式的概念。严格模式是为JavaScript定义了一种不同的解析与执行模式。在严格模式下,ECMAScript 3 中的一些不确定的行为将得到处理,而且对某些不安全的操作也会抛出错误。
"use strict";
这是一个编译指示用于告诉支持的JavaScript引擎切换到严格模式。位置:要位于整个脚本顶部。
function doSomething() {
"use strict";
//函数体
}
这种方式是让函数在严格模式下执行。
5、语句
ECMAScript中的语句以一个分号结尾,如果省略分号,则由解析器确定语句的结尾。
var sum = a + b //即使没有分号也是有效的语句——不推荐
var str = a - b; //推荐的书写方式
6、关键字和保留字
关键字
break do instanceof typeof catch finally
case else new var return void
continue for switch while debugger(ECMAScript新增的关键字)
function if this default throw delete
in try
保留字
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 super const export import
第5版严格模式下
implements package public interface private static let protected yield
7、变量
ECMAScript的变量是松散类型的,即,可以用来保存任何类型的数据。
操作符: var
var message; //如果没有初始化,则会保存一个特殊值——undefined。
如果在一个函数内部使用var定义一个变量,当函数执行完以后变量就会被销毁,但是如果没有使用var来定义这个变量,则这个变量就是一个全局变量,即,在函数外面也可以访问到这个变量。
<script> function test() { message = 10; //此时的message就是一个全局变量,这样虽然可以定义全局变量,但是不推荐 } test(); document.write(message); //输出10 </script>
8、数据类型
ECMAScript中有5种基本数据类型:
Undefined、Null、Number、String、Boolean
复杂数据类型——Object(本质是由一组无序的名值对组成的)。
9、typeof操作符
typeof用来检测给定变量的数据类型。
typeof操作符会返回一些令人迷惑但技术上却正确的值。 ep:typeof null; //返回的是“Object”,因为特殊值null被认为是一个空的对象引用。
10、Undefined类型
Undefined类型只有一个值,即,特殊的undefined。
字面值undefined的主要目的是用于比较,在ECMAScript 第3版之前的版本中并没有规定这个,第3版引入这个值(undefined)是为了正式区分空对象指针与未经初始化的变量。
11、Null类型
Null类型也只有一个特殊值,即,null。
null值表示一个空指针对象。如果定义的变量准备在将来用于保存对象,那么,最好将该变量初始化为null而不是其他值。
var car = null; document.write(typeof car); //"Object"
实质上,undefined值是派生自null值。ep:
document.write(null == undefined); //true
虽然null和undefined有这样的关系,但它们的用途完全不同。undefined不用在定义变量的时候显示的将undefined值赋给该变量,但是,null则不一样,只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null值。
12、Boolean类型
Boolean类型有两个值:true和false。
Boolean函数可以将任何数据类型转换为Boolean的一个值。但是,至于是true还是false,则要根据以下规则:
数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空字符串 ""(空字符串)
Number 任何非零数字值 0和NaN(not a number)
Object 任何对象 null
Undefined n/a(not applicable的缩写,即,"不适用") undefined
ep:
<script> var message = "hello world"; if(message) { //这里自动将message转换为Boolean的值,即,Boolean(message) document.write("Value is true"); } document.write(Boolean(message)); //true </script>