JS中有数据类型,但是JS的引用是不区分类型的,所以称JS为弱类型,即,一个引用可以先指向数字类型,后再指向字符类型,还可以再指向对象类型。如下 的代码是没有问题的。
var x = 99;
x = “aa”;
x = true;
x = new Object();
注意: js的变量名区分大小写.
3.5. 运算符 3.5.1. Js中的运算符Javascript中的运算符和Java大致相同。
只是运算过程中需要注意几点:
var x = 3120/1000*1000; x = 3120;而不是3000。
var x = 2.4+3.6 ; x = 6;而不是6.0
var x = “12” + 1; x = “121”; x = “12” – 1 ; x = 11;
加号对于字符串是连接符
&& || 是逻辑运算符 & | 是位运算符。
也支持三元运算符 ? :
特殊运算符 typeof : 返回一个操作表达式的数据类型的字符串。
var x = 3;
var y = “123”;
var z = false;
typeof(x); //number
typeof(y); //string
typeof(z); //boolean
3.6. 语句 3.6.1. 判断结构(if语句)var x = 3;
if(x==4)//可以进行比较运算。
if(x=4)//可以进行赋值运算,而且可以同样进行判断。不报错。
因为在Js中0或者null就是false,
非0或者非null就是true(通常用1表示)。
所以if(x=4)结果是true;
可以通过if(4==y)来解决该问题。因为4=y不会进行判断,而是会报错。
3.6.2. 选择结构(switch语句)语法和Java中的很相似, 并且也支持string类型。
3.6.3. 循环结构(while语句,do…while语句,for语句)。注:和java基本相同,不同的是,没有了具体数据类型的限制,使用时要注意。
3.7. 函数 3.7.1. 普通方法定义函数function 函数名(形式参数...)
{
执行语句;
return 返回值;
}
函数是多条执行语句的封装体,只有被调用才会被运行。
注意:调用有参数的函数,但没有给其传值,函数一样可以运行,或者调用没有参数的函数,给其传值,该函数也一样运行。
说的简单点:只要写了函数名后面跟了一对小括号,该函数就会运行。那么传递的参数呢?
其实,在函数中有一个参数数组对象(arguments),该对象将传递的参数都封装在一个数组中。
例:
function demo()//定义函数。
{
alert(arguments.length);
}
demo(“hello”,123,true);//调用函数。
那么弹出的对话框结果是3,如果想得到所有的参数值,可以通过for循环遍历该数组。
for(var x=0; x<arguments.length; x++)
{
alert(arguments[x]);
}
为了增强阅读性,最好按照规范,按定义好的形式参数传递实际参数。
函数在调用时的其他写法:
var show = demo();//show变量接收demo函数的返回值。
var show = demo;//这种写法是可以的,意为show和demo代表同一个函数。
//那么该函数也可以通过show()的方式运行。
3.7.2. 匿名函数
格式:function(){...}
例:var demo = function(){...}
demo();
通常在定义事件属性的行为时较为常用。
例:
function test()
{
alert(“load ok”);
}
window.onload = test;
可以写成匿名函数的形式:
window.onload = function()
{
alert(“load ok”);
}
匿名函数就是一种简写格式。
3.7.3. 动态函数(了解)通过Js的内置对象Function实现。
例:var demo = new Function(“x” ,”y”,”alert(x+y);”);
demo(4,6);
如同:
function demo(x,y)
{
alert(x+y);
}
demo(4,6);
不同的是,动态函数,参数以及函数体都可以通过参数进行传递,可以动态指定。
3.8. 数组 3.8.1. 定义js数组var arrayObj = new Array(); //创建一个数组
var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值
var arrayObj = [1,2,5,6,3];//数组直接量定义数组
3.8.2. Js中的数组特点Js中数组中的特点:可以存任意元素,长度是可变的。
格式:
var arr = new Array();
arr[0] = “hello”;
arr[1] = 123;
var arr = [‘hello’,123,true,”abc”];
3.8.3. JS数组的包装对象JS中提供了数组的包装对象Array,提供了数组处理相关的属性和方法。
Array对象提供的属性:
length:数组长度
Array 对象提供的方法:
参考JS文档
3.8.4. JS中遍历数组通过遍历即可对数组进行基本操作。
for(var x=0; x<arr.length; x++)
{
alert(arr[x]);
}
3.9. 对象 3.9.1. JS内置对象RegExp 对象
re = /pattern/[flags]
re = new RegExp("pattern",["flags"])
常用方法:
rgexp.test(str)
检索字符串是否符合该正则表达式规则。返回 true 或 false。
修饰符用于执行不区分大小写和全文的搜索。
i - 修饰符是用来执行不区分大小写的匹配。
g - 修饰符是用于执行全文的搜索(而不是在找到第一个就停止查找,而是找到所有的匹配)。
String对象
strVariable.length
返回 String 对象的长度。
strObj.charAt(index)
返回指定索引位置处的字符。
strObj.indexOf(subString[, startIndex])
返回 String 对象内第一次出现子字符串的字符位置。
strObj.lastIndexOf(substring[, startindex])
返回 String 对象中子字符串最后出现的位置。
stringObj.match(rgExp)
使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。
stringObj.replace(rgExp, replaceText)
返回根据正则表达式进行文字替换后的字符串的复制。
stringObj.search(rgExp)
返回与正则表达式查找内容匹配的第一个子字符串的位置。
stringObj.split([separator[, limit]])
将一个字符串分割为子字符串,然后将结果作为字符串数组返回。
stringObj.slice(start, [end])
提取字符串的某个部分。包括字符串 stringObj 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
stringvar.substr(start [, length ])
返回一个从指定位置开始的指定长度的子字符串。
strVariable.toLowerCase( )
返回一个字符串,该字符串中的字母被转换为小写字母。
strVariable.toUpperCase( )
返回一个字符串,该字符串中的所有字母都被转化为大写字母。
Array对象
numVar = arrayObj.length
返回一个整数值,这个整数比数组中所定义的最高位元素的下标大 1。
array1.concat([item1[, item2[, . . . [, itemN]]]])
返回一个新数组,这个新数组是由两个或更多数组组合而成的。
arrayObj.join([separator])
返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。
arrayObj.pop( )
移除数组中的最后一个元素并返回该元素。
arrayObj.push([item1 [item2 [. . . [itemN ]]]])
将新元素添加到一个数组中,并返回数组的新长度值。
arrayObj.shift( )
移除数组中的第一个元素并返回该元素。
arrayObj.unshift([item1[, item2 [, . . . [, itemN]]]])
将指定的元素插入数组开始位置并返回该数组的新长度值。
arrayObj.reverse( )
返回一个元素顺序被反转的 Array 对象。
arrayobj.sort(sortfunction)
返回一个元素已经进行了排序的 Array 对象。
arrayObj.slice(start, [end])
返回一个数组的一段。
arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。
Date(日期)对象 -- 日期对象用于处理日期和时间
dateObj = new Date()
dateObj = new Date(dateVal)
dateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]])
常用方法:
getFullYear() -- 获取日期对象中所表示时间的年份,如:1988
getMonth() -- 返回 Date 对象中用本地时间表示的月份值,返回一个处于 0 到 11 之间的整数,它代表 Date 对象中的月份值,0表示一月。
getDate() -- 返回 Date 对象中用本地时间表示的一个月中的日期值,返回值是一个处于 1 到 31 之间的整数,它代表了相应的 Date 对象中的日期值。