javascript
- ECMAscript :基本核心语法
- DOM :文档对象模型
- BOM :浏览器对象模型
- DOM与BOM区别: BOM包含DOM,前者顶级对象是window,后者顶级对象是document
一 ECMAscript
变量
var 变量名 = 值;
注意点
- js是一种弱类型语言,可以随意赋值
- 当一个变量没有手动赋值的话,系统默认赋值undefined(这是一个具体存在的值)
- 一个变量既没有声明,有没有定义,直接访问出错
- 全局变量与局部变量名一样,遵循“就近原则”
- 不写var的变量不论位置在哪,都被当做全局变量
- 全局变量生命周期:浏览器打开时声明,浏览器关闭时销毁
- 局部变量生命周期:函数调用时内存空间开辟,函数执行完后销毁
函数
第一种方式:
function 函数名(参数列表){
函数体
}
第二种方式
函数名 = function(参数列表){
函数体
}
函数调用
函数名();
当函数名重名时,后声明的函数会覆盖之前同名函数
数据类型
- 原始类型:
Undefined:只有一个值,可以系统赋值,也可以手动赋值
Number:包括整数,小数,正数,负数,无理数,不是数字(NaN),无穷大(Infinity)
String :可以使用单引号或双引号
创建两种方式:var a = “hehe” ,typeof出来是String,第二种:var a = new String (“hehe”), typeof出来是Obejet类型: true , false
Boolean
Null - 引用类型: Object以及Objectde子类
在ES6之后,添加了一种新的类型:Symbol - 大致的运算符跟Java差不多,值得注意的是
typrof : 可以在程序的运行阶段动态的获取变量的数据类型
语法格式: typrof 变量名
运算结果只有6种字符串: undefined, number , string, boolean , object , function
void(表达式):执行表达式,但不返回任何结果javascript:void(任意),作用是页面不跳转
注意点
- isNaN(): 结果是true表示不是一个数字,结果是false表示是一个数字
- type(null): 结果是"object" ,即使null属于null类型:
- Object有个属性prototype属性:作用是给类动态的扩展属性和函数
- 函数没有new就是函数,加上new ,就相当于类
- null NaN undefined 有什么区别
常用事件
- blur : 失去焦点
- focus : 获得焦点
- click : 鼠标单击
- dblclick : 鼠标双击
- keydown : 键盘按下
- keyup :键盘弹起
- mousedown :鼠标按下
- mouseover :鼠标经过
- mousemove :鼠标移动
- mouseout :鼠标移开
- mouseup :鼠标弹起
- reset : 重置
- submit : 提交
- change :下拉列表选定项改变,或文本框改变
- select :文本被选中
- oad :页面所有的元素全部加载完毕之后发生(JS也是遵循自上而下的顺序执行)
- 注册事件 :
第一种:直接在标签中使用事件句柄:<input type="button" value="hehe" onclick="函数名()"/>
事件句柄:在事件前加on就是一个事件句柄,以属性的形式存在
第二种:纯JS代码完成事件注册
第一步:获取这个节点的对象:var obj = document.getElementById(id属性),一旦获取,可以修改这个节点的所有属性obj.属性
第二步:给这个按钮对象的onclick属性赋值obj.onclick = 函数名,注意这里的函数不加小括号
DOM
- innerTest与innerHTML的区别?
前者是即使后面是一段HTML代码,也将其当作普通字符串看待,后者是当作一段HTML代码解释并执行 - 去除前后的空白 : .trim()
- 正则表达式
- 表单验证
- 显示网页时钟
- 复选框的全选的取消全选
BOM
常用方法
open
close
打开方式:_self(当前窗口) ,_blank(新窗口) ,_parent(父窗口) ;_top(顶级窗口)