js入门要点(小白入门)

<!DOCTYPE html>
Document

js运行三部曲:
1.语法分析;2.预编译;3.解释执行;

闭包:多个函数互相嵌套,里面的函数保存到了外部
就生成闭包,里面的函数在外面执行一定能调用原来
它在那个函数环境的变量。闭包会导致作用域链不释放,造成内存泄露。
逻辑运算符: && || !
undefined,null,NaN,"",0,false,==>false

对象的创建方法;
1,var obj = {} 简称对象字面量 对象直接量。
2,构造函数;
1)系统自带的构造函数 new object()
2)自定义
对象名字要符合大驼峰命名规则 例:TheFirstName

数组常用方法;
1,改变原数组
push(后面增加数值),pop(后面减少数值),shift(前面减少数值),
unshift(前面增加数值),sort(数值的排序),reverse(数值反过来),
splice(数据中添加删除项目 // 添加经常用)

2,不改变原数组
concat,join --》split,toString,slice(从该位开始截取,截取到该位)

一旦经历了var的操作,所得出的属性,window,这种属性叫不可配置的属性,
delete不掉。

this指向四大特点;
1,预编译 this --> window
2, 全局模式 this -->window
3, 可使用call,apply属性
4, 谁调用的 this 指向谁

数据类型分成两大类;
1,原始值(不可改变,栈数据)
Number,String,Boolean,undefined,null
2,引用值 (堆数据)
array,object,function

es5.0严格模式
“use strict”
一,不再兼容es3的一些不规则语法。使用全新的es5规范。

二,两种用法
1,全局严格模式 2,局部函数严格模式

三,“use strict” 就是一行字符串,不会对不兼容严格模式的浏览器产生影响。

四,不支持with,arguments.callee,func.caller,变量赋值前必须声明,局部this
必须被赋值(Person.call(null/undefined)赋值什么就是什么),拒绝重复属性和参数。

节点类型;
元素节点 --1
属性节点 – 2
文本节点 --3
注释节点 --8
document --9
DocumentFragment --11

遍历节点数:
parentNode -》父节点(最顶端的pa rentNode为document)
childNodes --》子节点们
firstChild --》第一个子节点
lastChild --》最后一个子节点
nextSibling --》后一个兄弟节点 previousSibling 前一个兄弟节点

针对遍历元素节点树15:32 2019/4/115:32 2019/4/115:32 2019/4/115:32 2019/4/115:32 2019/4/115:32 2019/4/115:32 2019/4/115:32 2019/4/115:32 2019/4/115:32 2019/4/1i
parsentElement–》返回当前元素的父元素节点(IE9以下不兼容)
children --》只返回当前元素的元素子节点(就这个浏览器兼容)
node.children.length -->当前元素节点子元素的长度(IE9以下不兼容)
firstElementChild–》返回第一个元素节点(IE9以下不兼容)
lastElementChild–》返回最后一个元素节点(IE9以下不兼容)
nextElementSibling/previousElementSibling --》返回后一个元素兄弟节点/返回
前一个元素兄弟节点(IE9以下不兼容)

节点的四个属性
nodeName : 元素的标签名,以大写形式表示,只读。

nodeValue :Text节点(文本节点)或Comment(注释节点)节点的文本内容,
可读写。

nodeType : 可显示该节点的类型,只读。

attributes : Element 节点的属性集合。(例:id ,class)

所有节点的一个方法 Node.hasChildNodes(); (检测有没有子节点)

date对象方法;
Date()返回当日的日期和时间。
getDate()从date对象返回一个月中的某一天。
getDay()从date对象返回一周中的某一天。
getMonth()从date对象返回月份。
getFullyear()从date对象以四位数返回年份。
getHours()返回对象的小时。
getMinutes()返回对象的分钟。

定时事件
setInterval ()指定定时循环代码;
setTimeout()暂停指定毫秒数定时代码;

Dom基本操作;
1,查看滚动条的滚动距离
window.pageXOffset/pageYOffset(IE8以及一下不兼容)
document.body/documentElement.scrollLeft/scrollTop
兼容性比较混乱,用时取两个值相加,因为不可能存在两个同时有值

2,查看视口的尺寸;
window.innerWidth/innerHeight(IE8以及一下不兼容)
document.documentElement.clientWidth/clientHeight
(标准模式下,任何浏览器都兼容)
document.body.clientWidth/client.Height(适用于怪异模式下的浏览器)

3,查看元素的几何尺寸;
dom.offsetWidth, dom.offsetHeight
查看元素的位置
dom.offsetLeft,dom.offsetTop
(对于无定位的元素,返回相对文档的坐标。对于有定位的元素,返回相对于最近的有定位的父级的坐标)

dom.offsetParent(返回最近的有定位的父级,如无,返回body,body.offsetParent返回null)

4,让滚动条滚动
window上有三个方法 : scroll(),scrollTo() (这两个是一模一样的效果) scrollBy() (会在之前的数据基础上做累加)

三个方法功能类似,用法都是将x,y坐标传入。即实现让滚动轮滚动到当前位置。

脚本化CSS;
1,读写元素css属性:dom.style.prop
(可读写行间样式,没有兼容性问题,碰到float这样的保留字属性,前面应加css 例:float->cssFloat)
复合属性必须拆解(如border属性),组合单词变成变成小驼峰式写法。
写入的值必须是字符串格式。

2,查询计算样式:window.getComputedStyle(ele,null);
计算样式只读不写
返回的计算样式的值都是绝对值,没有相对单位。
IE8以及IE8一下不兼容
IE8以下的查询样式:ele.currentStyle
计算样式只读
返回的计算样式的值不是经过转换的绝对值
IE独有的属性

事件;
1,ele.onclick = function (event){
}(兼容性很好,但是同一个元素的同一个事件只能绑定一个处理程序。 基本等同于写在html行间上)
2,ele.addEventListener(‘click’,function(){},false);(ie9一下不兼容,可以为一个事件绑定多个处理程序)
3,ele.attachEvent(‘onclick’,function(){})(ie独有,一个事件同样可以绑定多个处理程序)

解除事件处理程序;
1, ele.onclick = null;
2,ele.remoEventListener(type,fn,false);
3,ele.detachEvent(‘on’+type,fn);
(注:若绑定匿名函数,则无法解除)

事件处理模型,事件冒泡、捕获;
1,事件冒泡:
结构上(非视觉上)嵌套关系的元素,会存在事件冒泡功能,即同一个事件,自子元素冒泡向父元素。(自底向上)
2,事件捕获:
结构上(非视觉上)嵌套关系的元素,会存在事件捕捉功能,及同一个事件,自父元素捕获至子元素(事件源元素)。(自顶向下)
注:ie没有捕获事件。

触发顺序:先捕捉后冒泡。
2
focus,blur,change,submit,reset,select等事件不冒泡。

取消冒泡阻止默认事件;
1,取消冒泡:
w3c标准:event.stopPropagation();(但不支持ie9以下的版本)
ie独有: event.cancelBubble =true;

取消默认事件;
1,return false;以对象属性的方式注册的事件才生效。
2,event.preventDefault();W3C标准,ie9以下不兼容。
3,event.returnValue = false;兼容ie;

事件对象;
1,event||window.event用于IE
事件源对象:
event.target 火狐只有这个
event.srcElement IE只有这个
这辆chrome都有

事件委托;
1,利用事件冒泡,和事件源对象进行处理。
优点:
1.性能 不需要循环所有的元素一个个绑定事件。
2.灵活 当有新的子元素时不需要重新绑定事件。

鼠标事件;
click mousedown mousemove mouseup contextmenu mouseover mouseout
mouseenter mouseleave
1,用button来区分鼠标的按键,0是左键 1是滚动键 2是右键
2, DOM3标准规定:click事件只能监听左键,只能通过mousedown和mouseup来判断鼠标键。

键盘事件;
keydown,keypress,keyup
keydown>keypress>keyup
keydown和keypress的区别:
keydown可以响应任意键盘按键,keypress只可以相应字符类键盘按键。

事件分类:
1,文本操作事件;
input,focus,blur,change

toggle(切换代码)

Math.ceil 将浮点数向大于的方向取得与之最近的数。
Math.floor 将浮点数向小于的方向取得与之最近的数。

值 = Math.floor(Math.random()*可能值的总数+第一个可能的数)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值