一.语法
(1)区分大小写
(2)标识符:
1.第一个字符必须是字母,下划线或$,其他字符可以是字母,下划线,$或数字。
2.驼峰大小写格式:firstSecond
(3)注释:单行注释// 多行注释/* */
(4)严格模式:“use strict”
(5)语句:分号结尾; 在控制语句中(如if语句)使用代码块{}
二.关键字和保留字: 表示控制语句的开始或结束,不能用于标识符
三.变量
(1)松散类型
(2)局部变量:var name=“hello world”,age=29;变量在函数退出后就会销毁
(3)全局变量:name=“hello world”;局部作用域中定义的全局变量很难维护,不推荐
四.数据类型
(1)typeof操作符:typeof 100;//"number“
(2)typeof返回值:
"undefined” “boolean” ”string” ”number“”object“(这个值是对象或null) "function”(这个值是函数)
(3)数据类型:
Undefined:使用var声明变量但未对其初始化,这个变量的值就是undefined
Null:表示空对象指针,定义的变量还没有真正保存对象,则让该变量保存null值
Boolean:
1.两个值true,false
2.所有类型的值都可以转换为其对应的boolean值
例:
var message=2;
if(2){ //自动执行boolean转换为true
alert("it is 2”);
}
Number:
1.整数字面量格式:十进制var number=55;八进制var number=071;十六进制var number=0x1f;
2.浮点数值: var number=2.1;
ECMAScript将小数点后边带6个零以上的浮点数值转换为以e表示法表示的数值
例:var floatNum=3.1e7; (31000000)
浮点数值最高精度为17位小数,但在算数计算时精确度不如整数
3.数值范围:最小Number.MIN_VALUE 为5e-324 最大Number.MAX_VALUE 为
isFinite()函数:参数位于最小与最大之间会返回true
例:alert(isFinite(2));//true
4.NaN:即非数值,是一个特殊的数值(任何数除以0会返回NaN)
isNaN()函数:将不能转换为数值的值返回true
例:alert(isNaN(NaN));//true Boolean值true可以转换为1
5.数值转换:Number()
parseInt()
parseFloat()
String:
1.toString()方法:
数值,布尔值,对象,字符串都有toString()方法,null和undefined值没有
例:
var message=10;
alert(message.toString());//10
alert(message.toString(2));//1010 通过传递参数 toString(参数)输出二,八,十,十六进制,默认为十进制
2.转型函数 String():
可将任何类型的值转换为字符串
例:
var message=10;
alert(String(message));//"10”
Object()对象类型:
1.Object类型是所有它的实例的基础,Object类型所具有的类型和方法也同样存在于具体对象中
2.创建对象:var o=new Object();
五.操作符
(1)一元操作符: 1.前置递增和递减:在包含语句求值之前执行
var num=1;
var anotherNum=—num + 1;
alert(num);//0
alert(anotherNum);//1
2.后置递增和递减:在包含语句求值之后执行
var num=1;
var anotherNum=num—+ 1;
alert(num);//0
alert(anotherNum);//2
(2)一元加和一元减:+10 -10
(3)位操作符: 1.会求补码
2.按位非:~
3.按位与:& 转换为二进制,每一位对齐,都为1时为1
4.按位或:| 都为0时为0
5.按位异或:^ 相同为0
6.有没有同或???
7.左移:<<
8.有符号右移:>> 以符号位的值填充空位
9.无符号右移:>>> 以零填充空位
(4)布尔操作符: 1.逻辑与:&&
2.逻辑或:|| 避免为变量赋null或undefined var myObject=oneObject || twoObject;
3.逻辑非:!
(5)乘性操作符:* / %
(6)加性操作符:+ —
(7)关系操作符:< > <= >=
(8)相等操作符:相等== 不相等 !=(先转换再比较)
全等===不全等!===(不转换只比较)
(9)条件操作符:var max =(num1>num2)? num1:num2;
(10)赋值操作符:var num=10;
num+=10;
(11)逗号操作符:
六.语句
if switch with break continue等 不详述
七.函数
(1)function functionName(参数1,参数2, …){
声明
}
(2)无须指定函数的返回值,位于return之后的任何代码都不会执行
function functionName(num1,num2){
return num1+num2;
alert("hello world”); //不会执行
}
(3)参数:
1.ECMAScript中的参数在内部是用一个数组表示的,在函数体中可以通过arguments对象来访问参数数组,如arguments[0],arguments[1]对应第一二个参数,且arguments的值与对应命名参数的值保持一致
2.参数的命名不是必须的,length属性可以知道有多少个参数 arguments.length
(4)没有重载,但可以模仿重载:
function myNum(num1,num2){
if(arguments.length==1){
alert(num1+10);
}else if(arguments.length==2){
alert(argumengs[0]+20);
}
}