发展史:
1992年,nombas公司 C–,最早的客户端脚本语言。专门用于表单验证。 后更名为 scriptEarth
网景 scriptlive,后来找到sun公司合作,共同开发出 JavaScript
微软抄袭JavaScript 定义了 JScript
ECMA(欧洲计算机制造商协会)定义了一套客户端脚本语言的规范 ECMAScript规范
JavaScript = ECMAScript规范 + js自己特有的东西(BOM/DOM)
语法:
常量:
基本数据类型:
Java中:
整型:byte short int long
浮点型:float double
布尔型:boolean
字符型:char
js原始数据类型:
number:数字类型,包含整数和小数和 NaN(not a number)
string: 字符串和字符类型 “” ‘’
boolean: true 和 false
null: 空类型。对象的占位符
undefined:未定义,如果一个变量没有初始化值,默认为undefined
变量:
语法:
使用 var定义变量 var i = “abc”;
js是一门弱类型语言:定义变量时,不需要规定其数据类型。
typeof运算符:获取变量的数据类型
var关键字如果不书写,该变量则为全局变量
语句:
运算符:自动类型转换
一元运算符
++ – +(正) -(负)
注意:在js中,如果传递给运算符的值,和 运算符想要接受的 值 的类型不匹配,则会自动类型转换其他类型转为number
string:将字符串的字面值,转为number,如果字面值不是数字,则 转为NaN
boolean: true为1 false 为0
比较运算符
> < >= <=:
NaN参与的运算,结果都为fasle,除了(!=)
字符串比较小大:如果长度一致按照字典顺序比较 长度不一致 那谁的长度长那就谁大
!=:
== ===(全等于):
全等于比较时,先比较类型,如果类型不一致,直接返回false
逻辑运算符
&& || !
其他类型转boolean
number:非0为true,0和NaN为false,
string: 除了空字符串(""),其他都是true
null 和 undefined:转为false
对象:所有对象都为true
算术运算符
+ - * / %
注意:NaN 参与数学运算 结果都为NaN
赋值运算符
= += …
三元运算符
表达式 ? 值1 : 值2;
对象:
js是一门基于对象的语言
基于对象:不能由原生的对象派生出新的对象。换句话说,不存在继承关系
Function(*****): 代表函数
创建方式:
属性:
length:形参的个数
使用:
函数名称(实参列表);
特点:
1.函数的调用,只与函数名称有关,与实参列表无关
2.函数内部有内置对象 arguments 封装实参数组
一:String 对象
1 定义方式1: String str=new String(“abckdddd”);
定义方式2:var str=“我爱你爱你”;
2 属性:length: 字符串的长度
二:Number对象
定义方式:var num=new Number(555.6666);
var num1=Number(5694);
三:Date 对象
定义方式: var myDate=new Date();
四:Math 对象 特点: 该对象不需要创建 直接对象名点上方法
五:数组对象:
定义方式: var arr=new Array(2,6,8);
var arr1=[6,“a”,6];
属性: length 数组的长度
六* Global:全局方法对象
七.RegExp(**):正则表达式对象
正则表达式
位置:
^ 开头
$ 结尾
次数:
* 0或多个
+ 1或多个
? 0或1个
{n} 就是n个
{n,} 至少n个
{n,m} 最少n个,最多m个
通配符:
d 任意数字
D 任意非数字
s 任意空白
S 任意非空白
. 任意字符(除’
’外)
组合:
[a-z]
[0-9]
等
组:
(正则) 匹配括号中正则表达式对应的结果,并暂存这个结果。
(?:正则) 匹配括号中正则表达式对应的结果,但不暂存这个结果。
数字 使用第n个组匹配的结果
使用正则的工具(RegExp类与相关方法)
创建:
// 方式一
var regex = new RegExp(“正则表达式”, “标志”);
// 方式二
var regex = /正则表达式/标志
参数说明:
正则表达式:
参见上面的规则
标志:
g (全文查找出现的所有 pattern)
i (忽略大小写)
方法:
Regexp.test( str )
String.replace( regex, str )
正则表达式对象常用的方法:
test() 使用正则对象去匹配字符串 如果匹配成功返回ture,否则返回false.
exec() 根据正则表达式去查找字符串符合规则的内容。
模式:
g (全文查找出现的所有 pattern)
i (忽略大小写)
查找出三个字符组成的单词。
概念:
将浏览器的各个组成部分封装为对象
特点:
BOM对象不能自己创建,当文档加载进内存,浏览器自动创建。
组成:
* Window(***):窗口对象
* Location():地址栏对象
* History(*):历史记录(当前窗口)对象
* Navigator :浏览器对象 基本不用仅作了解
* Screen:显示器屏幕 基本不用仅作了解
availHeight 获取系统屏幕的工作区域高度,排除 Microsoft Windows 任务栏。
availWidth 获取系统屏幕的工作区域宽度,排除 Windows 任务栏。
height 获取屏幕的垂直分辨率。
width 获取屏幕的水平分辨率。
概念:将标记语言文档的各个组成部分 封装为对象
组成:
* Document:文档对象
* Element:元素对象
* Attribute:属性对象
* Text:文本对象
* Comment:注释对象
* Node:节点对象
Document:文档对象
获取:window.document
Element:元素对象
innerHTML属性:获取或设置 元素的 子内容
innerTEXT属性:获取标签之间的文本内容
事件
概念:
* 事件:一件事
* 事件源:事件发生的组件。
* 监听器:一个对象。当事件源上发生了事件,就执行对象中的某些方法
* 注册监听:将监听器绑定到事件源上,监听事件的发生
js中事件的种类:
焦点事件:
* onfocus 元素获得焦点。
* onblur 元素失去焦点
点击事件:
* onclick 当用户点击某个对象时调用的事件句柄。
* ondblclick 当用户双击某个对象时调用的事件句柄。
键盘事件:
* onkeydown 某个键盘按键被按下。
* onkeyup 某个键盘按键被松开。
* onkeypress 某个键盘按键被按下并松开。
鼠标事件:
* onmousedown 鼠标按钮被按下。
* onmouseup 鼠标按键被松开。
* onmouseover 鼠标移到某元素之上。
* onmouseout 鼠标从某元素移开。
* onmousemove 鼠标被移动。
表单事件:
* onsubmit 确认按钮被点击。
* onreset 重置按钮被点击。
加载与卸载事件
* onload 一张页面或一幅图像完成加载。
* onunload 用户退出页面。 其他浏览器不支持 IE支持