0输出的三种方式
1 在控制台输出 console.log
2在页面上输出document.wrtie在绑定事件里面了document.wrtie()会把页面上的html de 文件全部替换掉,就白写了。
3alert.在警告框输出。
1变量和常量
1变量var 变量名=值
2常量sonst 变量名=值
2算数运算符
"+" - * / 特殊
3数据的类型
原始类型有五个 1 string 字符串
2 number 数字字符
3undefind 获取到的“空字符串”
4 Boolean 只有两个值 true(对或者真) flase (假或者错)
5 null(空) 释放内存
引用类型有11个array function
4数据类型的装换
隐式转换 算数运算都具有隐式转换
默认转变成数字在运算
true>1 flase>0 undefined> nan null>0
特殊1 +如果碰见字符串则为拼接
2 字符串也能运算前提是必须是纯数字的字符串才行,包含一个非数字字符串,则为nan.
"1000">1000 100px>NaN
NaN:不是一个人数字,但它确实是一个数字类型,
缺点:1参与任何算数运算为NAN 2参与任何比较运算结果认为NaN,无法使用简单的比较运算判断x是不是一个NaN, !isNaN(X).
强制转换
转字符串 xxtostring(),页面上的一切数据都是字符串,所以此方法很少使用,undefined和null不能使用,因为他们不能操作,
转数字 3个方法
parselnt/float(str)
Number(x)
5 function 需要我们提前创建好的,以后可以返复使用的 时机 程序员掉用几次就执行几次,或者用户点击几次就执行几次。
1 不希望打开页面立即执行
2 希望可以反复执行
3 独立的功能体
6 分支架构
比较运算符 < > <= >= == !=
逻辑运算符 && 全部满足,才能满足 一个不满足,则不满足
|| 全部不满足才不满足 一个满足 则满足
! 颠倒布尔值
以上的所有运算结果都是布尔值
if()
else if()
else()
7循环 反复执行相同或者相似的代码 时机 程序员写好的 几乎一瞬间就完成了 但是他是一次次的执行的 只不过速度很快
var 变量=几 i=0; ume=0
for(i<1000){
操作;i++
变量的变化 ume+=i }
while(条件){
操作;
变量的变化}
for(变量=几;条件;变量的变化){
操作}
死循环 while(true){}for(; ;)
break;(退出死循环)
8数组:一个空间可以保存多个数据
如何:
1 var arr[]
var arr=new Array()
2访问arr[i] 下标越界 undefined
3添加 arr[i]="新值” 下标越界:稀疏数组,下标不连续,遍历的时候就会有很多的undefined
4arr length获取数组的长度;
三个固定的套路:
末尾添加arr[arr.length]="新值’
获取末尾第n个元素,arr[arr.length-n]
缩容 arr.length-=n
5 数组三大不限制;不限制类型 长度 下标越界 (缺点)
6 遍历数组for(i=0
arr[i]//当前元
9 DOM Document Object Model 文档对象模型,专门用于操作文档(html)
DOM 树: Dom将html看做了是一个倒挂的树状架构,树根:document对象,不需要创建
DOM 将没一个(元素)、文本、属性、注释,都看为是一个DOM节点/元素/对象
树根作用:找到任何元素,找到元素后就可以操作元素
1、查找元素:
1通过html特性:
id:单个元素 没有找到返回null
标签/slass名:var elems=docment/parent.getElementsByTag/className("标签、class名“)
特殊:1 Dom集合 不允许直接操作,要么拿到某一个下标,要么遍历一边。
2parent :你之前已经找到的某个父元素
3没找到[]
2通过关系 至少找到一个人,才能使用关系网
父元素:elem.parentNode;
子元素:elem.shildren;集合
第一个儿子:elemfirstElementchild
最后一个儿子:elemlastElementshild;
前一个兄弟:elem.previousElementSibling;
后一个兄弟:elem.nextElementsibing
2 操作元素
1 内容innerHTML(能识别标签)、innerText(纯文本)value(专门为input准备的)
获取elem.xxx
设置:elem.xxxx="新内容”
2属性
获得属性值:elem.getAttribute("属性名”)>elem属性名
设置属性elem.setAttribute(“属性名”,"属性值”) elem属性名="属性值"
简化版有缺陷
1class写为className
2自定义属性不能操作。
3 样式 内联样式
获取:elem.style.css属性名
设置:elem.style.css属性值="css属性值"
特殊:1css属性名有下划线的去掉横线换成小驼峰命名法。
2 只能访问内联元素
3绑定事件:
单个元素:elem.onclck=function(){}
多个元素:for(i=0
elems[i].onclick=fuction(){}
}
this:关键字:目前只能在(事件)中使用
单个元素绑定事件this> 这个元素:绑定事件的这个元素
多个元素绑定事件this.>当前元素:当前触发事件的元素