语法:JavaScript的语法格式类似于C语言以及Java、Perl的语法,如果有以上语言的背景,接收起来是很容易的,下面就具体罗列一下JavaScript的语法格式:
区分大小写,变量、函数名和操作符都区分大小写
下面的内容在以下方面介绍JavaScript的基础概念:
标识符
格式如下:
第一个字符必须是一个字母、下划线(_)或一个美元符号($);
其他字符可以是字母、下划线、美元符号或数字
注释
使用 C 风格的注释,包括单行注释和块级注释
// 单行注释
/*
* 这是一个多行
* (块级)注释
*/
变量
JavaScript是弱类型语言,定义变量仅仅有一个var关键字,系统会自动的判别数据类型,且var关键字可以省略(不推荐),JavaScript的变量也会区分局部变量和全局变量,有一个特殊点是,若在方法中省略var关键字,定义的则是全局变量
var x = 10; //全局变量
function test(){
var y = "hi"; // 局部变量
z = 18.5;
}
test();
alert(x); //正确
alert(y); // 错误!
alert(z); //正确
数据类型
ECMAScript 中有 5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和 String。还有 1 种复杂数据类型——Object,Object 本质上是由一组无序的名值对组成的,不支持自定义类型。
typeof()可以判别数据类型,返回的是上述六种数据类型之一,具体如下:
"undefined" ——如果这个值未定义;
"boolean" ——如果这个值是布尔值;
"string" ——如果这个值是字符串;
"number" ——如果这个值是数值;
"object" ——如果这个值是对象或 null;
"function" ——如果这个值是函数。
下面的几个typeof()实例是比较特殊的:
var car = null;
alert(typeof car); // "object"
alert(null == undefined); //true //因为undefined 值是派生自 null 值
alert(NaN == NaN); //false
再介绍几个函数:
idNAN() 判断是不是非数字
Number() 数据类型转换数值类型
parseInt() 转换成整数
toString() 转换成字符串
String() 转换成字符串,可以转换没有toString()方法的变量
操作符
递增和递减操作符 ++ --
加和减操作符 + -
按位与或非异或 & | ~ ^
左移 有符号右移 无符号右移 << >> >>>
逻辑与或非 && || !
乘和除和求模 * / %
关系操作符(大于 小于 大于等于 小于等于) > < >= <=
比较操作符 (等于 不等于 全等 不全等) == != === !==
赋值运算符 =
条件运算符 ? :
语句
if语句
if(条件)){语句体}
if(条件){语句体}else{语句体}
if(v){语句体}else if(条件)){语句体}else{语句体}
do-while语句
do{语句体}while(条件);
while语句
while(条件){语句体}
for语句
for(迭代变量;迭代条件;迭代变化){语句体}
for-in(foreach)语句
for(迭代变量 in 迭代数据){语句体}
switch语句
switch(一句值){case 可能值: 语句体;default:语句体;}
下面是实例:
//if语句
if (i > 25)
alert("Greater than 25."); // 单行语句
else {
alert("Less than or equal to 25."); // 代码块中的语句
}
if (i > 25) {
alert("Greater than 25.");
} else if (i < 0) {
alert("Less than 0.");
} else {
alert("Between 0 and 25, inclusive.");
}
//do-while语句
var i = 0;
do {
i += 2;
} while (i < 10);
alert(i);
//while语句
var i = 0;
while (i < 10) {
i += 2;
}
//for语句
var count = 10;
for (var i = 0; i < count; i++){
alert(i);
}
//for-in语句
for (var propName in window) {
document.write(propName);
}
//switch语句
switch (expression) {
case value: statement
break;
case value: statement
break;
case value: statement
break;
case value: statement
break;
default: statement
}
函数
函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。ECMAScript 中的函数使用 function 关键字来声明,后跟一组参数以及函数体。下面是格式:
function 函数名(参数列表) {
函数体
}
function sayHi(name, message) {
alert("Hello " + name + "," + message);
}
JavaScript中调用时的参数可以与定义时的个数不一致,且JavaScript的函数没有重载的说法