javascript的基础资料

147 阅读3分钟

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(空)   释放内存
引用类型有11array 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(),页面上的一切数据都是字符串,所以此方法很少使用,undefinednull不能使用,因为他们不能操作, 
    转数字 3个方法
      parselnt/float(str) //从左往右依次读取每个字符,碰见非字符就停止,lnt不认识小数点,float认识第一小数点。
      Number(x)//完全等效与隐式转换,不会手动转换,还不如*1 /1 -1.

5 function 需要我们提前创建好的,以后可以返复使用的 时机 程序员掉用几次就执行几次,或者用户点击几次就执行几次。

 1 不希望打开页面立即执行
 2 希望可以反复执行
 3  独立的功能体

6 分支架构

   比较运算符 <  > <= >= == !=
   逻辑运算符 &&  全部满足,才能满足 一个不满足,则不满足
        ||  全部不满足才不满足  一个满足 则满足
        ! 颠倒布尔值
   以上的所有运算结果都是布尔值
   if()
   else if()
   else()

7循环 反复执行相同或者相似的代码 时机 程序员写好的 几乎一瞬间就完成了 但是他是一次次的执行的 只不过速度很快

var 变量=几  i=0; ume=0
fori<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; i<arr.length;i++){
                      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;i<elems.length;i++){
           elems[i].onclick=fuction(){}
           }
  this:关键字:目前只能在(事件)中使用
       单个元素绑定事件this> 这个元素:绑定事件的这个元素
       多个元素绑定事件this.>当前元素:当前触发事件的元素