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); 清除定时器