Java 之 JavaScript (一)
1.JavaScript
a.定义:JavaScript 是脚本语言,是一种轻量级的编程语言
b.实现:①直接通过标签里面的onXX属性驱动js的执行
<input type="button" value="测试" onclick="alert('hello')">
②引入外部js文件——JavaScript File
<script src="my.js"></script>
③可被放置在 HTML 页面的 <body> 和 <head> 部分中
<script type="text/javascript"> alert("script"); </script>
2.数据类型:
a.数据类型:字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、Null、Undefined
var num = 1; var str = "hello"; var flag = true; var str1;
注:加了var声明变量,代表的是局部变量,不加则代表的是全局变量
b.通过 new Number 可以进行与字符串和布尔的转换:
var num = new Number(1); var num = new Number(true); //结果为1 var num = new Number("12"); //如果字符串不为数字,则结果为NaN
c.通过 new String 可以进行与数字和布尔的转换:
var str = new String("hello"); var str = new String(12); var str = new String(ture); //结果为true
d.通过 new Boolean 可以进行与数字和字符串的转换:
var flag = new Boolean("123"); //非空为真 var flag = new Boolean(2); //非0为真
注:字符串:“”空为false,非空为true
数字:非0为true,0为false
e.null 与 undefined 的区别:
①undefined :声明了变量并未初始化
②null:当在文档中找不到这个元素的时候
f.对象(Object):
①初始化:
//对象初始化方式一: var person = { userName:"张三", userPwd:"123", userAge:18 } //对象初始化方式二: var user = new Object(); user.userName = "李四"; user.userAge = 18;
②属性访问:
//对象的属性访问方式一: 对象名.属性名; alert(user.userName); //对象的属性访问方式二: 对象名["属性名"]; alert(user["属性名"]);
g.数组
声明:
var array = new Array(); //声明方式一 var array = new Array(3); var nums = [1,2,"张三"]; //声明方式二 var strs = new Array("张三","李四"); //声明方式三 var strs = new Array(new Number(2));
3.运算符
a.算数运算符:+ - * / % ++ --
b.赋值运算符:+= -= *= /= %=
c.比较运算符:== === > < >= <= !=
①===:表示类型和值都一样
②==:表示值一样
在js中字符串的比较一般用==来代替.equal
d.逻辑运算符:&& || !
e.三目运算符:
var num = 判断表达式 ? 真执行表达式 : 假执行表达式
4.判断语句:if-else switch
5.循环语句:while do-while for for-each
for(i = 0; i < 100; i++){ alert(i); }
for(index in names){ document.write(names[xindex]); }
6.方法
a.声明:
function test(a,b){ //声明方式一 return a+b; } var test1 = function(){ //声明方式二 } var test2 = new Function( function (){ //声明方式三 })
注:函数默认返回值未定义(undefined)
函数如果需要返回值,直接return
b.访问:
test();
7.String (String的方法与Java类似,详见API)
str.substr(1,3) //截取从下标为1的元素开始取3个 str.substring(1,3) //截取下标1到2的元素(前闭后开)
注:js字符串的length是属性,而java中是方法
8.时间(Date)
var date = new Date(); //声明 var date = new Date("2015/01/01"); getDay(); //一周的第几天(0-6) getDate(); //一月的第几天(1-31) getMonth(); //月份(0-11) getFullYear(); //以四位数字返回年份 getHours(); //小时 (0 ~ 23) getMinutes(); //分钟 (0 ~ 59) getSeconds(); //秒数 (0 ~ 59) getMilliseconds(); //毫秒(0 ~ 999) getTime(); //返回1970年1月1日至今的毫秒数
Date.parse("2015/01/01"); //指定日期的毫秒数
9.数学(Math)(方法与Java类似,详见API)
10.全局函数
isNaN(); //检查某个值是否是数字 Number(); //把对象的值转换为数字 String(); //把对象的值转换为字符串 parseInt(); //解析一个字符串并返回一个整数 parseFloat(); //解析一个字符串并返回一个实数 eval(); //计算 JavaScript 字符串,并把它作为脚本代码来执行
11.事件(Events)
a.UI相关:onload、onunload、onresize、onselect
b.焦点相关:onblur、onfocus
c.鼠标与滚轮相关:onclick、ondblclick、onmousedown、onmousemove、onmouseout、onmouseover、onmouseup
d.键盘相关:onkeydown、onkeyup、onkeypress
e.其他:onabord、onchange
12.正则表达式(RexExp)
var regex = /^[a-z]$/ g; ///pattern/attributes var regex = new RegExp ("[a-z]","g"); //new RegExp(pattern, attributes); regex.text(str); //检索字符串中指定的值。返回 true 或 false regex.exec(str); //检索字符串中指定的值。返回找到的值,并确定其位置
注:str.match(regex);
返回的是根据正则表达式匹配的结果
如果全局匹配,返回的是数组
如果没有匹配成功,则返回null