Javascript概述
a.一种基于对象和事件驱动的脚本语言
b.作用: 给页面添加动态效果
c.历史: 原名叫做livescript.W3c组织开发的标准叫ECMAscipt.
d.特点:
1). 弱势语言
2). 由浏览器直接解析执行。(函数不能直接执行)
3). 是一个解释性语言
4). 交互性(它可以做的就是信息的动态交互)
5). 安全性(不允许直接访问本地硬盘)
6). 跨平台性(只要是可以解释Js的浏览器都可以执行,和平台无关
javascript和java的一些区别:
1). javascript是一个解释性语言,java是编译解释性语言
2). javascript是一个弱势语言,Java是一个强势语言
3). 在页面上引入的方式不同javascript代表用<script>引入,Java代码<%>
4). JS是基于对象,Java是面向对象。
JavaScript语言组成
EcMAScript + BOM + DOM
ECMAScript: 规定了一些语法,变量,for循环等等结构
BOM: Browser object Model 浏览器对象模型
DOM: Document object Model 文档对象模型
JavaScript与Html的结合方式
Javascript与HTML的结合方式有三种:
1.采用事件来调用,代码写在字符串中
<button onclick = "alert("大家好")">点击</button>
2.采用定义函数的方式: 用function来定义函数
function fun(){ alert('你好')} ;
3.采用外部js文件.
利用<script type="text/javascript" src = "a.js"></script>引入
JavaScript基本语法
定义变量:采用var关键字来定义.定义的变量的类型是由给定的值来决定的。
数据类型:
a. undefined,表示未定义类型。
Number类型。代表了一切数字类型
String类型。字符串类型
Boolean类型。布尔类型
Function类型。函数类型
Null类型。
b. object :对象类型.
判断变量的类型 :
1. typeof(变量) : 返回的是类型的tostring方法(类型的小写字符串)
2. instanceof : 判断的是变量是不是由类型new出来的
三大结构
a.顺序结构
b.选择结构
c.循环结构 for,while,do...while
运算符
1.一元运算符 +(正号) - ++ --
2.二元运算符 +(加法) - * / %
3.三元运算符 ? :
4.等号 == 判断的是内容,=== 全等于 ,判断类型和内容
类型的转换
1. Number转String : 3 + ""
2. Number转Boolean :在javascript中,非0为真,0为假。如果变量为null或者undefined,也为假.
3. String转Number:
a. parseInt,parseFloat
b. 乘以1即可
JavaScript 函数的定义
函数的定义有三种方式:
1. 采用关键字function定义:
2. 采用匿名函数的方式: 用function关键字充当函数名字
3. (了解) new Function()的方式: 最后一个参数字符串是函数体,其他的参数都是形参
函数的调用:
1.函数调用的时候参数可以传递多个,可以和函数定义的形参个数不符合
2.如果函数重名了,那么调用的时候一定是调用最后一个,与参数无关。
***** 推荐: 定义函数的不要重名。
函数的劫持 : 即改变函数本身的作用。
例:window.alert = function fun(e){
document.write(e);
}
alert("注意,函数已被劫持!!!");
JavaScript全局函数
1.isNaN (not a Number):用来判断变量是否是数字类型的字符串
例: var v= "536";
alert(isNaN(v));
2.parseInt,parseFloat
例:var v= "536";
alert(parseInt(v));alert(parseFloat(v));
3.eval: 把字符串转换成数字
例: var v= "5*5";
alert(eval(v));
4.escape(): 编码
例: var v= "中国";
alert(escape(v));
5.unescape(): 解码
例:var v= "中国";
document.write(escape(v));alert(unescape(v));
6.encodeURI(): 对网址(URL)进行编码
例: var v= "http://www.baidu.com?a=中国";
alert(encodeURI(v));
7.decodeURI(): 对网址(URL)进行解码
例:var v= "http://www.baidu.com?a=中国";
var en = encodeURI(v);
alert(decodeURI(en));
JavaScript常用对象
Array对象 数组对象,进行数组操作,数组的长度可以随时改变,里面可以存放任意不同种元素。
定义方式:
1.采用new的方式
例:var arr = new Array(); arr数组长度为0;
var arr1 = new Array(3); arr1数组长度为3;
var arr2 = new Array(5,6,7); arr2数组长度为3,里面元素为5,6,7
2.采用中括号[]来定义
例: var arr = [3];
alert(arr.length);
alert(arr[0]); 定义一个arr数组长度为1,0角标元素为3。
二维数组的定义方法,javascript不能直接定义二维数组。
例: var arr = ["中国","美国","日本"];
arr["中国"] = ["北京","上海","山东"];
特点:
1.javascript中数组的大小可以随时改变
2.javascript中数组的下标可以是任意对象。
方法:
1.join() : 把数组的所有元素放入一个字符串. 默认用逗号连接
例: var str = ["东营","烟台","青岛","济南"];
alert(str.join());
alert(str.join("---"));
2.push() : 向数组的末尾添加一个元素
例: var str = ["东营","烟台","青岛","济南"];
alert(str.push("china"));
alert(str.join());
3.reverse() :反转
例: var str = ["东营","烟台","青岛","济南"];
alert(str.reverse());
4.shift() : 删除并返回数组的第一个元素
例: var str = ["东营","烟台","青岛","济南"];
alert(str.shift());
alert(str.join());
练习:标题的轮播
function fun(){//获得title的对象var title = document.title;//拆分成数组var arr = title.split("");//删除第一个元素var first = arr.shift();//把删除的元素放到最后arr.push(first);//合并元素为一个字符串title = arr.join("");//设定titledocument.title = title;//设定0.5秒运行一次setTimeout("fun()",500);}fun();
String对象 ----- 字符串类型的引用类型
String对象:
方式: substr: 截取字符串 两个参数第一个是下标,第二个是长度
例: var str = "hello";
alert(str.substr(1,3))
substring: 截取字符串 两个参数第一个是下标,第二个是下标
例: var str = "hello";
alert(str.substring(1,3));
toUppercase:转换成大写
例: var str = "hello";
alert(str.toUpperCase());
toLowercase:转换成小写
例:var str = "Hello";
alert(str.toLowerCase());
indexOf:返回括号里面的角标
例: var str = "Hello";
alert(str.indexOf("e"));
charAt() :返回制定角标的字符
例: var str = "Hello";
alert(str.charAt(2));
replace():替换
例: var str = "Hello";
alert(str.replace("e","o"));
例:改变字体大小粗细
<!doctype html>
<html lang="en"><head><meta charset="UTF-8"><meta name="Generator" content="EditPlus®"><meta name="Author" content=""><meta name="Keywords" content=""><meta name="Description" content=""><title>javascript</title><script type="text/javascript"><!--function fun(){var str = document.getElementById("china").innerHTML;string = str.big();document.getElementById("china").innerHTML = string;}function fun1(){var str = document.getElementById("china").innerHTML;string = str.bold();document.getElementById("china").innerHTML = string;}//--></script></head><body><p id = "china">china</p><input type="button" value="big" onclick="fun()"><input type="button" value="bold" onclick="fun1()"></body></html>
Number对象 ---- 数字原始类型引用类型
Num对象:
1. random() : 获得随机数[0,1)
例:alert(Math.random());
2. ceil() : 返回大于等于次数的最大整数
例:alert(Math.ceil(Math.random()*3));
3. floor() : 返回小于等于次数的最大整数
例:alert(Math.floor(Math.random()*3));
4. round(): 返回四舍五入后的整数
例:alert(Math.round(Math.random()*3));
Boolean对象 ---- 布尔原始类型引用类型
Math对象 ---- 执行数学任务
Date对象 用于处理日期和时间
Date对象: 代表一个时间
例: var date = new Date();
alert(date); //返回带有时区的时间字符串alert(date.toLocaleString()); //返回按照时区格式化之后的时间字符串alert("年份:"+date.getYear());//返回第几年alert("月份:"+date.getMonth()+1); //返回月份,符合中国人习惯要加1alert("周"+date.getDay());//返回周几alert("今天是一个月的"+date.getDate()+"号");//返回第几天
RegExp 对象正则表达式对象
正则表达式
写法: 1. new的方式
例: var reg = new RegExp("\d");
var str = "536good";alert(reg.test(str));//是否包含alert(reg.exec(str));//返回一个数组,长度为一,数组里面装的是满足正则里面的第一个字符串。
2. 采用/正则表达式/ (推荐)
例: var reg = /.../;
var str = "536";
alert(reg.test(str));
alert(reg.exec(str));
var reg = /(..)./;
var str = "536";
alert(reg.exec(str)[0]+"....."+reg.exec(str)[1]);//当正则表达式中存在子表达式时,数组长度不为1 ()代表子表达,子表达式的含义是对匹配的结果进行下一次匹配