ECMAScript中的一切(变量、函数名和操作符)都区分大小写。
比如:变量名test和变量Test分别表示不同的变量。
标识符:指变量、函数、属性的名字,或者函数的参数。一般采用驼峰式。例如:myCar。
注意:不能把关键字、保留字、true、false和null用作标识符。
单行注释:
//单行注释
块级注释:
/*
* 这是一个多行
* (块级)注释
*/
关键字 | |||
---|---|---|---|
break | do | instanceof | typeof |
case | else | new | var |
catch | finally | return | void |
continue | for | switch | while |
debugger | function | this | with |
default | if | throw | |
delete | in | try |
保留字 | |||
---|---|---|---|
abstract | enum | int | short |
boolean | export | interface | static |
byte | extends | long | super |
synchronized | final | native | char |
class | float | package | throws |
const | goto | private | transient |
implements | double | import | volatile |
protected | public |
function test(){
var message ="hi"; //局部变量
}
test();
alert(message); //错误!
注意: 在函数中使用var定义一个变量,这个变量在函数退出后就会被销毁。
function test(){
message ="hi"; //全局变量
}
test();
alert(message); // "hi"
虽然省略var可以定义全局变量,但不推荐,维护很麻烦。
typeof操作符可能返回以下某个字符串:
未初始化的变量会被自动赋予undefined
var message; //这个变量声明后默认取得undefined值
//下面这个变量并没有声明
// var age
alert(message); // "undefined"
alert(age); // 产生错误
alert(typeof message); // "undefined"
alert(typeof age); // "undefined"
Null值表示一个空对象,typeof检测null值时返回“object”。
该类型只有两个字面值:true和false。各数据类型及其对应的转换规则:
数据类型 | 转换成true | 转换成false |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | “”(空字符串) |
Number | 任何非零数值 | 0和NaN |
Object | 任何对象 | null |
var floatNum1 =1.1;
var floatNum2 =3.125e7 //31250000
// e表示的数值等于e前面的数值乘以10的指数次幂
数值范围
最小的数值保存在:Number.MIN_VALUE中
最大的数值保存在:Number.MAX_VALUE中
NaN
NaN,即非数值(Not a Number)
数值转换
有3个函数可以把非数值转换成数值:Number()、parseInt()、parseFloat()
var num1 = Number("Hello world !"); //NaN
var num2 = Number(""); //0
var num3 = Number("000011"); //11
var num1 = Number(true); //1
parseInt() — 返回整数
第一个字符不是数字字符或者负号,返回NaN。
第一个字符是数字字符,继续解析,直到遇到一个非数字字符。
字符串一“0x”开头且后跟数字字符,解析成十六进制整数。
var num1 = parseInt(""); //NaN
var num2 = parseInt("1234blue"); //1234
var num3 = parseInt("0xA"); //10(十六进制)
var num4 = parseInt("10",2); //2(按二进制解析)
var num5 = parseInt("10",8); //8(按八进制解析)
var num6 = parseInt("10",10); //10(按十进制解析)
parseFloat() — 返回小数
toString方法
数值、布尔值、对象和字符串值都有toString()方法。但null和undefined没有。
var num = 10;
alert(num.toString()); //"10"
alert(num.toString(2)); //"1010"(二进制)
alert(num.toString(8)); //"12"(八进制)
alert(num.toString(16)); //"a"(十六进制)
String()
如果有toString()方法,则调用该方法并返回结果;
如果值为null,返回”null”;
如果值为undefined,返回“undefined”;
对象其实就是一组数据和功能的集合,对象可以通过 new 操作符后跟要创建的对象类型的名称来创建。
var o = new Object();
用于操作数据值的操作符,包括算数操作符、位操作符、关系操作符和相等操作符。
递增操作符 ++
递减操作符 - -
布尔操作符有3个:非、与、或。
alert(!false); // true
alert(!"blue"); // false
alert(!0); // true
alert(!"NaN"); // true
alert(!""); // true
alert(!12345); // false
同时使用两个逻辑非(!!),实际会模拟Boolean()转型函数的行为.
逻辑与(&&)
逻辑或(||)
var result = 26 % 5 ; // 等于1
小于、大于、小于等于和大于等于。
null == undefined 返回 true
全等(===)
全等:表示未经转换就相等
不全等(!==)
不全等:表示未转换就不相等
比如:
variable = boolean_expression ? true_value : false_value;
这行代码是基于 boolean_expression 求值的结果,决定给variable赋什么值。
值为true,变量 variable赋 true_value值
值为false,变量 variable赋 false_value值
代码:
var max = (num1 > num2) ? num1 : num2;
// max 会保存一个最大值
var num =10 ;
num+= 10 ; // num = num + 10
使用逗号操作符可以在一条语句中执行多个操作:
var num1=1, num2=2, num=3 ;
if 语句的语法:
if (condition) statement1 else statement2
if(i>25)
alert("大于25.");
else{
alert("小于等于25.");
}
if (condition1) statement1 else if (condition2) statement2 else statement3
if(i>25){
alert("大于25.");
}else if(i<25){
alert("小于25.");
} else {
alert("等于25.");
}
do-while 后循环语句,先执行循环体中代码,再测试出口条件。
do{
statement
} while(expression);
示例:
var i = 0;
do{
i+=2;
} while (i < 10);
alert(i);
var i = 0;
while( i<10 ){
i += 2 ;
}
var count = 10 ;
for( var i= 0; ii++){
alert(i);
}
for-in 语句是一种精准的迭代语句,可以用来枚举对象的属性。以下是语法:
for ( property in expression) statement
for (var propName in window){
document.write(proName);
}
break和continue语句用于循环中精确地控制代码的执行。
break语句:会立即退出循环,强制执行循环后面的语句
continue语句:虽然也是理科退出循环,但退出循环会从循环顶部继续执行。
with语句的作用是将代码的作用域设置到一个特定对象中
比如:
定义with主要是为了简化多次编写同一个对象。
var qs = location.search.substring(1);
var hostName = location.hostname;
var url =location.href;
上面几行都包含location对象,使用with可以改成:
with(location){
var qs = search.substring(1);
var hostName = hostname;
var url = href;
}
switch语句是一种普遍使用的流程控制语句。
比如:
switch (expression){
case value : statement
break;
case value : statement
break;
case value : statement
break;
default : statement
}
switch语句中的每一种情形(case)的含义是:”如果表达式等于这个值(value),则执行后面的语句(statement)“。break 回导致代码执行跳出 switch语句。最后 default关键字表示不匹配前面任意一种情况,执行代码(相当于else)。
switch语句中可以使用任何数据类型,无论字符串,还是对象都可以。
注意: switch语句在比较值是使用的是全等操作符,不会发生类型转换。
比如:字符串
switch ("hello world") {
case "hello" + " world":
alert("Greeting was found.");
break;
default:
alert("Closing was found.");
}
或者:
var num = 25;
switch (true){
case num < 0:
alert("less than 0");
case num > 0:
alert("more than 0");
...
}
函数的基本语法:
function functionName(arg0,arg1,…,argN){
statements
}
function sayHi(name,message){
alert("Hello " + name + "," + message);
}
sayHi("Nicholas","how are you today?");
函数在执行完 return语句之后停止并立刻退出。因此,位于 return语句之后的任何代码都不会执行。例如:
function sum(num1,num2){
return num1 + num2 ;
alert("Hello world"); //永远不会执行
}