js基础
二、 JS的基本语法
0. 有两种JavaScript写法:
a. 直接在 html 中嵌入,程序写法:
<script type="text/javascript" language="JavaScript" charset="UTF-8">
<!--
...javaScript程序...
// -->
</script>
b. 调用独立JavaScript文件:在html中写 <script type="text/javascript" src="test1.js"> </script>
<script> 不能用空标志。 JS脚本文件中不需要脚本开始和结束声明,直接写 function
1. 在HTML中大小写是不敏感的,但标准的JavaScript是区分大小写的
2. 分号表示语句结束。有换行,分号允许不加(建议加上,以免错误和歧义)
程序忽略缩进:提倡加上空格或TAB增强程序可读性
3. 标识符:成份是 不以数字开头的字母、数字 和下划线(_)、美元符($)
ECMA v3标准保留的JavaScript的关键字:
break case catch continue default delete do else false finally
for function if in instanceof new null return switch this
throw true try typeof var void while with
4. 变量的声明: var x,y; (变量没类型;未声明的变量也可以用,且是全局的;函数体内声明的变量则是局部的)
x=1; y="hello world!"; (变量的类型由所赋的值决定)
5. 函数: function 函数名 (参数){ 函数体; return 返回值;}
参数没类型或顺序,且可变长;可以使用变量、常量或表达式作为函数调用的参数
声明函数时,参数可不明写,调用时用 arguments[number] 接收。参数是值传递的。
函数由关键字 function 定义; 函数名的定义规则与标识符一致,大小写是敏感的
返回任意类型(不需写返回类型); 返回值必须使用return
//参数数量是可变的,若要限定参数数量,如下做法: (指定参数数量为0)
if ( arguments.length !== 0 ) throw Error.parameterCount();
caller: 调用此函数的函数。没有被调用则此变量为 null
arguments: 此函数的参数列表。
arguments.caller: 调用此函数的参数列表,没有被调用则为 undefined
arguments.callee: 此函数本身的一个引用。在匿名函数里会需要用到。
6. 数据类型:
基本类型: Number:数字、 String:字符串、 Boolean:布尔
特殊类型: Null:空、 Undefined:未定义
组合类型: Array:数组、 Object:对象
7. Number 数值类型:所有数字都采用64位浮点格式存储,相当于Java和C语言中的double格式
能表示的最大值是 ±1.7976931348623157 x 10^308;能表示的最小值是 ±5 x 10^ -324
10进制的整数的精确表达的范围是 -9007199254740992 (-2^53) 到 9007199254740992 (2^53)
16进制数据前面加上0x,八进制前面加0
保留多少位小数: var a = 111.115555; var b = a.toFixed(2); alert(b + ' : ' + typeof b); // 111.12 : string
8. String 类型:字符串常量首尾由单引号或双引号括起
没有字符,只有字符串(所有字符都按字符串处理)
常用转义符: \n换行 \'单引号 \"双引号 \\右斜杆 (字符串中部分特殊字符必须加上右划线\)
汉字常使用特殊字符写,如: \u4f60 -->"你" \u597d -->"好" (可避免乱码)
9. Boolean 类型:仅有两个值:true和false,实际运算中true=1,false=0
也可以看作on/off、yes/no、1/0对应true/false;主要用于JavaScript的控制语句
10.null, undefine 类型:
null 在程序中代表变量没有值;或者不是一个对象
undefined 代表变量的值尚未指定;或者对象属性根本不存在
有趣的比较:
null 与空字符串: 不相等, null 代表什么也没有,空字符串则代表一个为空的字符串
null 与 false : 不相等, 但是 !null 等于 true
null 与 0 : 不相等,(但是在C++等其它语言中是相等的)
null 与 undefined : 相等,但是 null 与 undefined 并不相同
11.数据类型转换:JavaScript属于松散类型的程序语言
变量在声明的时候并不需要指定数据类型;变量只有在赋值的时候才会确定数据类型
表达式中包含不同类型数据则在计算过程中会强制进行类别转换(优先级:布尔-->数字-->字符)
数字 + 字符串:数字转换为字符串
数字 + 布尔值:true转换为1,false转换为0
字符串 + 布尔值:布尔值转换为字符串true或false
函数 parseInt: 强制转换成整数(如果包含字符串,则转换到字符串为止,后面不再理) //如 parseInt("13a2")=13
函数 parseFloat: 强制转换成浮点数
函数 eval: 将字符串强制转换为表达式并返回结果,亦可将字节或变量转成数值。
函数 typeof: 查询数据当前类型(string / number / boolean / object ) ,未定义则返回“undefined”
12.运算符:(同java)
算术运算符: 加/字符连接(+)、 减/负号(-)、 乘(*) 、除(/)、 余数(% ); 递增(++)、 递减(--)
逻辑运算符: 等于( == )、 不等于( != ) 、 大于( > ) 、 小于( < ) ; 大于等于(>=) 、小于等于(<=)
与(&&) 、或(||) 、非(!) ; 恒等(===)、不恒等(!==)
位运算符: 左移(<<) 、有符号右移(>>);无符号右移(>>>)
位与(&) 、位或(|)、异或(^) 、NOT (~)
赋值运算符: 赋值(=) 、复合赋值(+= -= *= /= %= &= )
(先运行完右边的,再跟左边的进行赋值运算;如 var i=10;i-=5-3;结果8)