JavaScript总结
JavaScript定义:
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎。
引入HTML文件方式:
<script type="text/javascript" src="helloworld.js"></script>
变量声明:
Var
基本数据类型:
- number:数字类型
- string:字符串类型
- boolean:布尔类型
- null:空类型
underfind:未定义
运算符:
=
+ - * / %
+: 遇到字符串变成连接
-:先把字符串转成数字然后进行运算
*: 先把字符串转成数字然后进行运算
/: 先把字符串转成数字然后进行运算
&& || < > >= <= != ==
===:全等:判断类型与值是否都相等
? :
typeof:判断并返回变量的数据类型
instanceof:判断变量是否是某种数据类型
void运算符:用户点击不跳转
<a href="javascript:void(0);">点我不跳转</a>
控制语句:
If else/switch case/for/ for in
对象:
内建对象
Number
创建方式:
var num=new Number(8);
var num=Number(6);
属性和方法:
toString():转成字符串
valueOf():返回一个 Number 对象的基本数字值
Boolean
创建方式:
var boo = new Boolean(true);
var boo = Boolean(false);
属性和方法:
toString():转成字符串
valueOf():返回一个 Boolean 对象的基本值(boolean)
String
创建方式:
var str = new String("monkey");
var str = String("script");
属性和方法:
length:字符串的长度
charAt():返回索引字符
charCodeAt:返回索引字符unicode
indexOf():返回字符的索引
lastIndexOf();字符串中该字符最后出现的索引号
split();将字符串按照特殊字符切割成数组
substr():从起始索引号提取字符串中指定数目的字符
substring():提取字符串中两个指定的索引号之间的字符
toUpperCase();转大写
Array:
创建方式:
var arr = new Array();//空数组
var arr = new Array(10);//创建一个长度为10的数组
var arr = new Array(element0, element1, ..., elementn);//创建数组直接实例化元素
var arr = [];//空数组
var arr = [9,8,5,"java"];//创建数组直接实例化元素
属性和方法:
length:数组长度
join():把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔一个
pop():删除并返回最后元素
push():向数组的末尾添加一个或更多元素,并返回新的长度
reverse();反转数组
sort();排序
Date:
创建方式:
var d = new Date();
var d = new Date(毫秒值);//代表从1970-1-1到现在的一个毫秒值
属性和方法
getFullYear():年
getMonth():月 0-11
getDate():日 1-31
getDay():星期 0-6
getTime():返回1970年1月1日午夜到指定日期(字符串)的毫秒数
toLocaleString();获得本地时间格式的字符串
Math
创建方式:
使用Math时无需创建对象直接使用即可,例如:Math.PI
其实Math中的方法就像Java中的静态方法,可以通过类名.方法名的方式使用
属性和方法
PI:圆周率
abs():绝对值
ceil():对数进行上舍入
floor():对数进行下舍入
pow(x,y):返回 x 的 y 次幂
random():0-1之间的随机数
round():四舍五入
正则式RegExp
创建方式:
var reg = new RegExp(正则);
var reg = /^正则规则$/;
规则的写法:
[0-9]
[A-Z]
[a-z]
[A-z]
\d 数字
\D 非数字
\w 查找单词字符
\W 查找非单词字符
\s 查找空白字符
\S 查找非空白字符
n+ 出现至少一次
n* 出现0次或多次
n? 出现0次或1次
{5} 出现5
{2,8} 2到8次
方法:
test(str):检索字符串中指定的值。返回 true 或 false
需求:
校验邮箱:
var email = aaannn2222@163.com
var reg = /^[A-z0-9_-]+\@[A-z0-9]+\.[A-z]+$/;
reg.test(email);
函数定义:
function method(){
alert("monkey1024");
}
method();
匿名函数
var method = function(){
alert("1024");
};
method();
对象函数
语法:new Function(参数1,参数2,…,函数体);
注意:参数名称必须使用字符串形式的写法、最后一个默认是函数体,也需要使用字符串形式
var fn = new Function("a","b","alert(a+b)");
fn(10,5);
函数参数:
形参不用使用var去修饰,直接写参数即可
形参和实参个数不一定相等
arguments对象 是个数组 会将传递的实参进行封装
function fn(a,b,c){
//var sum = a+b+c;
//alert(sum);
//arguments是一个内置的数组对象,会将传递的所有实参封装到里面
for(var i=0;i<arguments.length;i++){
alert(arguments[i]);
}
}
fn(6,9,5,8);
JS全局函数
编码和解码
encodeURI() decodeURI()
encodeURIComponent() decodeURIComponent()
escape() unescape()
三者区别:
进行编码的符号范围不同,实际开发中常使用第一种
强制转换
Number()
String()
Boolean()
转成数字
parseInt()
parseFloat()
eval()函数
将字符串当作javascript脚本进行解析运行
function print(str){
eval(str);
}
print("var a=2;var b=3;alert(a+b)");
javascript的常用事件
- onclick:点击事件
- onchange:域内容被改变的事件
- onfoucus:获得焦点的事件
- onblur:失去焦点的事件
- onmouseover:鼠标悬浮的事件
- onmouseout:鼠标离开的事件
- onload:加载完毕的事件
绑定事件的方式:
var btn = document.getElementById("btn");
btn.onclick = function(){
alert("事件绑定3");
};
BOM对象
Window对象
window.alert("提示信息");
弹框方法:
提示框
Alert(“abc”)
确认框
var res = confirm("delete?");
alert(res);
输入框
var res = prompt("input:");
alert(res);
打开新网页
open方法:
window.open("url地址");
Location对象
获取当前浏览器url
alert(location.href);
跳转到新的地址(不产生浏览记录)
location.replace("http://www.qq.com");
定时器
//只执行一次
var timer = setTimeout(function() {
alert(1);
}, 1000);
//clearTimeout(timer); 清除定时器
//定时器多次
var i=0;
var timer = setInterval(function() {
alert(i++);
}, 1000);
//clearInterval(timer); 清除定时器