<JavaScript>语法
<script>标签
- 放在</body>之前
-
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"/> <title>my test</title> </head> <body> <script src="example.js"></script> </body> </html>
- <script>标签内没有包含传统的 type="text/javascript" 属性。
- 脚本默认文件就是JavaScript
- JavaScript是解释型语言
语法
- 语句 statement
- 如果不同语句放在不同行,则可以不用在语句末尾加上';',但是最好还是加上分号,便于阅读。
- 注释 comment
- 可以//.... /*... */
- 也可以<!-- ... 可以注释掉一行,但是注意不要在末尾加-->,会被视为注释内容的一部分
- 最好还是用// 或者/* */
- 变量 variable
- 声明 declare
- js允许对变量直接赋值,不事先声明。 //有点像Python
- 赋值操作会自动声明变量
- 虽然可以不事先声明,但是最好还是声明一下,增加可读性。
- 数据类型
- js是弱类型语言
- 强类型语言 必须要明确类型声明。要区别short int long这些的。 如c++ java...
- 弱类型语言 不需要明确类型声明。 变量都用关键字 var 变量的内容的类型可以随时改变。
- 字符串
- 用单引号还是双引号都行
- 用单引号包住的话,里面的单引号就要escape(转义)
- js也是用反斜杠'\'就行转义。
- 最好全文都用单引号或者双引号包住字符串。
- 数值
- 既然都用var这个关键字,那就说明根本没有int float double这些需要区分的类型了
- 因此,变量想存整数存整数,想存小数存小数,而且还是任意位的小数。
- 再说了本身用了var 都不管你这个变量放的是字符串还是数值了,怎么还会要去区别数值的不同类型。
- 布尔值
- true或者false
- 不是字符串
- 数组
- 关键字为 Array //注意是大写
- 同时可以指定数组元素的个数 var beatles = Array(4);
- 也可以不声明数组长度。
- 可以通过下标访问
- 声明数组的时候直接进行填充的方法
- var beatles=Array("John","Paul","George","Ringo");
- var beatles=["John","Paul","George","Ringo"]
- var years=[1940,1941,1942,1943];
- 元素的数据类型可以混在一起
- var mixed=["John",1940,false];
- 数组元素还可以包含其他的数组
- 关联数组
-
var lennon=Array(); lennon["name"]="John"; lennon["year"]=1940; lennon["living"]=false;
- 不推荐使用
-
- 对象
- 关键字Object
- 创建方式1
var lennon=Object(); lennon.name="John"; lennon.year=1940; lennon.living=false;
- 创建方式2--花括号语法
-
var lennon={name:"John",year:1940,living:false};
- 花括号内部也可以什么都不写,然后再通过创建方式1里面通过lennon.year=1940;来初始化。
- js是弱类型语言
- 声明 declare
- 操作 operation
- + - * / ++ --
- +号可以用于字符串的拼接 concatenation
- +号也可以用于字符串与数值的拼接。
- 条件语句 conditional statement
- if语句 花括号不是js的一项语法要求,但是这样可以提高可读性。
- 比较操作符
- > < >= <= == !=
- == !=和 === !==
- == != 不是严格相等判断,只是含义相等,认为空字符和false是含义相等的
- === !=== 严格相等判断,不仅判断含义,而且会比较变量的类型。
- 逻辑操作符
- ! && ||
- 返回boolean类型
- 循环语句
- while
- do while
- for
- 函数
- 语法
-
function name(arguments) { statements; //return.... }
- 创建函数一定要写function 关键字
- 不用写返回类型
- 函数体内可以有return语句也可以没有
- 作用域 scope
- global variable, local variable
-
function square(num) { total=num*num; return total; } var total=50; var num=square(20); alert(num); /* output: 400 */
- 因为函数内部的total没有用var关键字
- 用var可以明确的声明这里产生了一个新的变量
- 如果本身全局变量没有total这个变量,那么不用var这个变量,JS也会认为你创造了一个新的变量,会自动declare.
- 然而,如果全局变量中本身就有total这个同名变量,你又不用var表示你现在要创造一个新的变量,那么js就会以为你在引用那个global variable。
- 因此,在函数里面,声明是local variable,最好就是都用var关键字,明确表示你创造了一个局部作用域的变量,避免二义性。
- 对象 object
- 属性 property 和方法 method
- 用点语法访问
- 创造实例 instance //和java相似
- 内建对象 native object
- JavaScript语言本身提供的预先定义好的对象
- Array
- length属性
- Math
- round方法可以四舍五入 //java也有
- Date
- getDay() getHours() getMonth()...
- 寄主对象 host object
- 是由运行环境提供的预先定义好的对象
- Form Image Element document