javascript是互联网上最流行的,可以嵌套到html代码中的,一种基于对象和事件驱动的,并具有安全性能的脚本语言。
具有1)向html页面中增加交互行为;
2)脚本语言,语法和java类似;
3)解释性语言,边执行边解释;
4)跨平台,每个浏览器都具有js解释器;
作用:增删HTML和css中的代码,能够动态校验数据
组成:ECMAScript(核心) BOM 浏览器对象模型 DOM文档对象模型
引入方式:
方式一:内嵌式
方式二:内部脚本
方式三:外部引入
首先创建一个js文件
其次在html中引入
变量 var x=6; x="JavaScript"
原始数据类型有:number数字类型、string字符串类型、boolean布尔型、null空类型、underfind未定义类型
数据类型转化:number\boolean转成string:toString();
string转成number:parseInt(),parseFloat() 注意:string可以将数字字符串转换成number 如果“123a3sd5” 转成123
强制转化
1)Boolean() 强转成布尔 数字强转成布尔 非零就是true 零就是false 字符串强转成布尔 非“”(空字符串)就是true 空字符串“”就是false 2)Number() 强转成数字 布尔转数字 true转成1 false转成0 纯字符的字符串转数字 不能强转
引用数据类型:对象、函数等
运算符:
1、赋值运算符:=
2、算数运算符:+ - * / %
3、逻辑运算符:&& || !
4、比较运算符:> < >= <= != ==(判断的是值本身)
===(比较值本身的同时也比较数据类型)
5、三元运算符:a>b?a:b
7、类运算符:typeof:判断数据类型 返回数据类型alert(typeof obj);//object
instanceof:判断数据类型 是否是某种类型 var obj = new Object(); alert(obj instanceof Object);//true
if-else 可以传布尔类型 也可以传其他数据类型 非0即true
switch :选择结构语句
switch(n)
{
case 1:
执行代码块 1
break;
case 2:
执行代码块 2
break;
default:
n 与 case 1 和 case 2 不同时执行的代码
}
普通for循环:循环执行代码块
增强for循环
var person={fname:"John",lname:"Doe",age:25};
//这里x代表脚标和java语言中有所不同
for (var x in person)
{
txt=txt + person[x];
}
while 和do/while循环 条件为true就执行循环体
while (条件) { 需要执行的代码 }
do { 需要执行的代码 }while (条件);至少执行一次循环体
javascript中床架对象
String常用方法
substring(start,end);不包括end位置
split(","):拆分 a,b,c,d
toLowerCase/toUpperCase 转小写/大写
charAt:得到某个位置的字符indexOf/lastIndexOf:
得到某个字符的位置replace(findStr,replaceStr);//替换字符串,实现对应指定字符串的一次替换
复杂用法:
正则表达式 ,在正则表达式中,g:gloab,全局,i:区别大小写match();//匹配,找字符串中匹配的字符串 也可以按照正在表达式匹配 匹配到的字符串以逗号隔开。seach(findStr);查找,返回的是在在字符中的位置 没有找到返回-1
Date时间类创建对象
var myDate=new Date();
var myDate = new Date(毫秒值);//代表从1970-1-1到现在的一个毫秒值
属性与方法
getFullYear():年
getMonth():月 0-11
getDate():日 1-31
getDay():星期 0-6
getTime():返回1970年1月1日午夜到指定日期(字符串)的毫秒数
toLocalString();获得本地时间格式的字符串
Array创建方式
var arr = new Array()和var arr = [];///空数组
var arr = new Array(size);//创建一个指定长度的数组:
var arr = new Array(element0, element1, ..., elementn)和var arr = [1,2,5,"java"]//创建数组直接实例化元素
属性和方法
sort();排序
reverse();反转数组
push():向数组的末尾添加一个或更多元素,并返回新的长度
pop():删除并返回最后元素
join():把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔一个
length:数组长度
数学工具类型
创建方式
Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数,不是某个对象的方法。您无需创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法。
属性和方法
PI圆周率、abs()绝对值、ceil()对数进行向上取舍、floor()对数进行向下取舍
pow(x,y)返回x的y次幂、random生成0-1之间的随机数、round()四舍五入
RegExp(正则表达式)
创建方式:var reg = new RegExp(pattern);var reg = /^正则规则$/;
需求:
校验邮箱:
var email = [email protected]
var reg = /^[A-z]+[A-z0-9_-]*\@[A-z0-9]+.[A-z]+$/;
reg.test(email);
javascript中的函数
自定义函数
格式:
function show(){
语句块;
}
匿名函数
var method=function(){语句块};
对象函数
注意:参数名称必须使用字符串形式、最后一个默认是函数体且函数体需要字符串形式
new function(参数1,参数2,...参数n)
函数的参数
1、形参没有var去修饰
2、形参和实参个数不一定相等
3、arguments对象 是个数组 会将传递的实参进行封装
常用事件
onclick:点击事件
onload:加载完毕的事件
onmouseout:鼠标离开的事件
onmouseover:鼠标悬浮的事件
onblur:失去焦点的事件
onfoucus:获得焦点的事件
onchange:域内容被改变的事件 下拉列表中用
ja中绑定事件
this关键字:this经过事件的函数进行传递的是html标签对象
1、将事件和响应行为都内嵌到html标签中
2、将事件内嵌到html中而响应行为用函数进行封装
3、将事件和响应行为 与html标签完全分离
window对象
弹框方法
提示框 alert("提示信息")
确认框 confirm("确认信息")有返回值点击确认返回true,取消返回false
例 var res=comfirm("你确认要删除吗?") alert(res)
输入框 prompt("提示信息") 有返回值 点击确认就返回文本,取消返回null
例 var res=prompt("请输入?") alert(res)
open方法
open("../jsCore/demo10.html");
window.open("url地址");
定时器
setTimeout(函数,毫秒值); clearTimeout(定时器的名称); setInterval(函数,毫秒值); clearInterval(定时器的名称)
location方法 location.href="url地址"
history 方法
back()下一个网页
forward()上一个网页
go()
html文件加载到内存之后会形成一颗dom树,根据这些节点对象可以进行脚本代码的动态修改, 在dom树当中 一切皆为节点对象
常用方法属性
innerHTML属性
获取元素内容的最简单方法是使用 innerHTML 属性。
getElementsByName() 方法
getElementByName() 返回带有指定name的所有元素。
getElementsByTagName() 方法
getElementsByTagName() 返回带有指定标签名的所有元素。
getElementById() 方法
getElementById() 方法返回带有指定 ID 的元素