一、导读
简介:JavaScript简称js,是基于对象和事件驱动的脚本语言,主要运用于客户端。原名LiveScript,本身和Java没有任何关系,但语法上很类似。
特点:交互性(它可以做的就是信息的互动性);
安全性(不允许直接访问本地硬盘);
跨平台性(只要是可以解释JS的浏览器都可以执行,与平台无关);
二、JavaScript与Java不同
1、JS是Netscape(网景)公司的产品,前身是LiveScript,Java是Sun公司的产品,现在是Oracle公司的产品。
2、JS是基于对象,Java是面向对象。
3、JS只需要解释就可以执行,Java需要先编译成字节码文件,再执行。
4、JS是弱类型,Java是强类型(每种数据都要规定好类型,而每种数据类型都设定好了空间大小)。
三、JavaScript与Html的结合
方式1:将JavaScript代码封装到<script>标签中
方式2:将JavaScript代码封装到js文件中,并通过<script>中的src属性进行导入。注意:如果<script>标签中使用了src属性,那么该标签的JavaScript代码将不会被执行,所以导入js文件都是单独<script>标签来实现。
四、通常高级程序设计语言所包含的语法内容
关键字:被赋予特殊含义的单词
标识符:用于标识数据表达式的符号。通常理解为在程序中自定义的名称。比如变量名、函数名。
注释:注解说明程序。用于调试程序。
变量:用于标识内存中的一片空间,用于存储数据,该空间中的数据是可变的。(当数据不确定时就可以使用)
运算符:让数据参与运算的符号。
语句:用于对程序的运行流程进行控制的表达式。
函数:用于对功能代码的封装,提高复用性。
数组:对多数据进行存储,便于操作。即容器。
对象:只要是基于对象的语言或面向对象的语言,都存在对象的概念。对象就是一个封装体:既可以封装数据,又可以封装函数。
注:这些都是高级设计语言具备的共性内容,只不过表现形式不同而已。
五、js变量:使用关键字var(variable的简写)来定义变量
由于是弱类型非严谨的语言,所以只需使用“var 变量名 = 变量值”的形式就可以进行变量的申明。
如:
var x = 3;//定义一个变量x,并初始化值为number类型3
x = "abc";//将变量x的值改为string类型
x = 3.45;
x = 'c';
x = true;//布尔类型
js变量的类型没有固定的数据类型,所以称为弱类型。若定义时未定义变量值,则为 undefined类型。
六、运算符
算术运算符:+ - * / % ++ --(加减乘除取余自增自减)
注:和其他语言类似,但由于是弱类型,+、-等运算可以在不同类型之间进行:如
var x = 3;
var y = "abc";
var z1 = x+y;//那么z1的值为“3abc”
var z2 = y+x;//z2的值为“abc3” //false用0或null代表,而非0非空就是true,默认是1,所以可以参与运算。
var t = true;
var f = false;
var w = 3+false;//w就等于3
var q = 3 - true;//q就为2 //.....等等不同类型之间的运算,其实是先转换为同类型再运算。
赋值运算 := 、+=、-=、/=、%=
比较运算符 :<、>、==、<=、>=、!=
逻辑运算符 :&(与运算) 、&& 、|(或运算) 、|| 、 !(非)
位运算符:& 、|、 ^(异或) 、>>(带符号右移) 、<<(左移)、 >>>(无符号右移)
三元运算符:表达式?(true)结果a:(false)结果b;
七、语句&结构
顺序结构
判断结构:if/else语句
选择结构:switch/case语句
循环结构:while语句、for语句
其他语句:
注:可以对循环语句进行标号,以便控制。
八、数组
js的数组时可变长度的,且可以存储不同类型的元素,但建议存储同一类型元素。
方式1:var arr = [1,2,3,5,9]; //数组属于object类型
方式2:使用js中的对象Array对象来完成定义。
var arr = new Array();//等价于var arr = [];
var arr1 = new Array(5);//定义长度为5的数组
var arr2 = new Array(5,6,7);//等价于var arr = [5,6,7];
九、函数
通过关键字来定义。function 函数名(参数列表){
函数体;
return 返回值;(没有返回值就不用写返回语句)
}
如:
function add(x,y){
var z = x + y;
return z;
}
细节:1、定义几个实参就传递几个参数。2、函数中传入的参数其实是用一个数组存储起来了:arguments.3、函数本身是一个对象,而函数名就是这个函数对象的引用(打印出来不是地址值,而是该函数的代码体)。
十、动态函数
其实使用的是js内置的一个对象Function.
var add = new Function("x,y","var sum;sum=x+y;return sum;");
var x = add(7,8);
与一般函数的区别在于,动态函数的参数列表和函数体都是通过字符串指定的,可以通过改变字符串来改变函数的定义,但实际用得并不多。
十一、匿名函数
没有名字的函数,函数的简写形式。如:
var add = function(a,b){
return a+b;
}