1、什么是javascript?
javascript是一种脚本语言。脚本,一条条的文字命令。执行是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,然后执行。常见的脚本:批处理脚本、T-sql脚本、vbscript等。
javascript是解释型语言,无需编译就可以随时运行、即使有语法问题也不提示。
javascript代码放到<script>标签中,script可以放在<head>/<body>等任意位置,而且可以不止一个<script>标签。alert函数是弹出消息窗口,newData()是创建一个Data累的对象,默认值就是当前时间。js是大小写敏感的。 弱类型语言(声明变量都用var)。
2、javascript语法
声明变量只能用var 声明变量,变量命名规则:以字母、下划线或$开头,中间可以包括字母、数字、下划线或$.单双引号都可以使用,目的是为了方便和HTML集成,避免转义符的麻烦。
javascript中的null和undefined区别:1,undefined表示一个未知状态--声明了但没有初始化该变量,变量的值是一个未知状态;方法没有明确返回值,返回值是一个undefined;当对未声明的变量应用typeof运算时,显示为undefined(*)。2,null表示尚未存在的对象,null是一个特殊意义的值。可以为变量赋值为null,此时变量的值为“已知状态”,即null。3,undefined==null 结果为turn,但含义不同。4,undefined===null 为false(*),先判断类型是否一致,然后判断值。 ===严格等于
javascript中判断已声明的变量,参数是否初始化(可用)的方法:if(typeof(x)!='undefined' && x!=unll){alert("可用");}简单方法:if(x){alert('可用');}else{alert('变量不可用');} null undefined 0都认为是false
3、函数的声明
function add(i1,i2){
return i1+i2;
}
不需要声明返回值类型。参数类型。函数定义以function开头
arguments对象 javascript中没有方法重载 动态为方法传递参数,类似于.net中的params关键作用
<script type="text/javascript">
function myFunc(){
for(var i=0;i<arguments.length;i++){
document.write(arcuments[i]);
document.write('<br />');
}
}
myFunc('张三',18,‘李四’,19);
</ script>
4、匿名函数
var fi=function(i1,i2){
return i1+i2;
} alert(fi(1,2));
这种匿名函数的用法在JQuery中的非常多 用匿名函数省得定义一个用一次就不用的函数,而且免了命名冲突的问题,js中没有命名空间的概念,因此很容易函数名字冲突。通过例子发现,一旦命名冲突以最后声明的为准。
5、面向对象基础
函数就是对象,对象就是函数。
方法直接调用为函数,用new调用为对象。javascript中没有类的语法,是用函数闭包(closure)模拟出来的,语法:function Person(){} javascript 同样支持this关键字。
6、String对象
length属性:获取字符串的字符个数。(无论中文符还是英文字符都算1个字符)
charat(index)方法:获取指定索引位置的字符 索引从0开始
indexOf('字符串',startlndex)方法:获取指定字符串第一次出现的位置。starindex表示从第几个开始搜索
split('分隔符',;imit)根据分隔符将一个字符串返回为一个数组
substr(startindex,len)从startindex开始,获取len个字符
substring(startindex,stopindex)从startindex开始,截取到stopindex位置 但不包含stopindex所在的字符
7、Array对象
javascript中的Array对象就是数组,首先是一个动态数组,而且是一个想C#中数组、ArrayList、Hashtable等的超强综合体。
var names = new Array();
names[0] = "tom";
names[1] = "jerry";
names[2] = "lily";
for (var i = 0; i < names.length; i++) {
alert(names[i]);
}
简化赋值var arr = [‘China’, 2008, true, ‘Hello’];
8、Json对象
对象是一个无序的”‘名称/值’对“集合。一个对象一”{“开始”}“结束。每个”名称“后跟一个”:“;”‘名称/值’对“之间使用”,“分隔。
9、for
for循环还可以获得一个对象所有的成员,类似于.NET中的反射
for(var e in doucment){
alert(e);
}
有了它没有文档也可以进行开发。
10、三个小练习
<script type="text/javascript">
1、 求一个数组中的最大值。定义成函数。
var num=[12,23,34,45,56,67,87,5];
function mm(ms){
var temp=num[0];
for(var i=1;i<ms.length;i++){
if(temp<ms[i]{
temp=ms[i];
}
}
return temp;
}
alert(mm(num));
2、将一个字符串数组输出为|分割的形式,比如“梅西|卡卡|郑大世”
var str=["z张三",”李四“,”王五“,”赵六“]
function fun(arr){
var res=arr[0];
for(var i=1;i<arr.length;i++){
res+="|"+arr[i];
}
return res;
}
alert(fun(str));
3、将一个字符串数组的元素的顺序进行反转。{"3","a","8","haha"}
var fanz={"3","a","8","haha"};
function fan(ss){
for(var i=0;i<ss.length/2;i++){
var tep=ss[i];
ss[i]=ss[ss.length-1-i];
ss[ss.length-1-i]=tep;
}
}
fan(fanz);
alert(fanz);